show databases;
use 数据库名;
show tables;
create database 数据库名;
drop database 数据库名;
drop table 表名;
insert into 表名(字段)values(数据);
select * from 表名; select * from 表名 where 字段='条件';
update 表名 set 字段='修改的数据' where 字段='选择的字段';
delete from 表名 where 字段='选择的字段'; 注意事项: 若是没有where,MySQL会删除全部数据。
select * from 表名 where name LIKE 'java%';(查询以Java开头的信息) select * from 表名 where name LIKE '%java';(查询以Java结尾的信息) select * from 表名 where name LIKE '%java%';(查询包含Java的信息) 索引:%开头的模糊查询会令索引失效。 %:表明多个字符。 _:表明单个字符。
select 字段 from 表名1 union(distinct | all) select 字段 from 表名2; DISTINCT:删除结果集中重复的数据。默认状况下 UNION 操做符已经删除了重复数据。 ALL:返回全部结果集,包含重复数据。
select * from 表名 order by 字段 ASC;(根据升序字段排序) select * from 表名 order by 字段 desc;(根据字段倒序排序) 默认状况下升序排序,因此ASC能够省略。
select 字段1,字段2 from 表名 group by 字段1; select 字段1,字段2 from 表名 group by 字段1 WITH ROLLUP; WITH ROLLUP:以null进行汇总。
select distinct * from 表名;
select * from table1 limit 当前页,数据条数
INNER JOIN(内链接或等值链接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左链接):获取左表全部记录,即便右表没有对应匹配的记录。 RIGHT JOIN(右链接):获取右表全部记录,即便左表没有对应匹配的记录。 select * from 表名1 a INNER JOIN 表名2 b on a.字段1=b.字段2; select * from 表名1 a LEFT JOIN 表名2 b on a.字段1=b.字段2; select * from 表名1 a RIGHT JOIN 表名2 b on a.字段1=b.字段2; INNER JOIN(内链接):取两表中的交集 LEFT JOIN(左链接):取左表和两表的交集 RIGHT JOIN(右链接):取右表和两表的交集 多表查询: select * from 表1 a inner join 表2 b on a.字段=b.字段 left join 表3 c on b.字段=c.字段;
内链接 | 左链接 | 右链接 |
---|---|---|
![]() |
![]() |
![]() |
类型 | 大小 | 用途 |
---|---|---|
TINYINT | 1byte | 小整型值 |
SMALLINT | 2byte | 大整型值 |
MEDIUMINT | 3byte | 大整型值 |
INT或INTEGER | 4byte | 大整型值 |
BIGINT | 8byte | 极大整型值 |
FLOAT | 4byte | 单精度浮点数值 |
DOUBLE | 8byte | 双精度浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,若是M>D,为M+2不然为D+2 | 小数值 |
类型 | 大小(byte) | 格式 | 用途 |
---|---|---|---|
DATE | 3 | YYYY-MM-DD | 日期值 |
TIME | 3 | HH:MM:SS | 时分秒 |
YEAR | 1 | YYYY | 年份值 |
DATETIME | 8 | YYYY-MM-DD HH:MM:SS | 日期时间 |
TIMESTAMP | 4 | YYYYMMDD HHMMSS | 日期时间 |
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
一、mysql中只有使用innodb数据库引擎的数据库或表才支持事务。 二、mysql中的myisam数据库引擎不支持事务。 三、事务处理能够用来维护数据库的完整性,保证成批的SQL语句要么所有执行, 要么所有不执行。 四、事务用来管理insert、update、delete
事务是必须知足4个条件(ACID):java
一、原子性:要么所有完成,要么所有不完成。 二、一致性:在事务开始以前和事务结束之后,数据库的完整性没有被破坏。 三、隔离性:事务之间相互不影响。 四、持久性:事务处理结束以后,对数据进行一个永久的保存。
事务的隔离级别:mysql
一、读已提交 二、读未提交 三、可重复读 四、串行化
MySQL事务处理实现:sql
BEGIN 开始一个事务 ROLLBACK 事务回滚 COMMIT 事务确认
一、mysql索引是排序好的数据结构(B+树结构)。
二、创建索引会占用磁盘空间的索引文件。
三、对常常修改的数据,不适合建立索引,会破环B+树结构。数据库
建立普通索引:没有任何限制 create index 索引名 on 表名(字段); 建立惟一索引:索引列的值必须惟一,容许有空值。 create unique index 索引名 on 表名(字段); 删除索引 drop index 索引名 on 表名; 显示索引信息 show index from 表名;