1. 数据库操作
1.1 显示所有数据库
show databases;
示例:
1.2 创建数据库
create database [if not exists] 数据库名 [charset 字符集];
示例:
1.3 使用数据库
use 数据库名;
示例:
1.4 删除数据库
drop database 数据库名;
示例:
2. 数据类型
2.1 数值类型
数据类型 | 大小 | 说明 |
---|---|---|
bit[(M)] | M指定位数,默认为1 | 二进制数,M的范围从1到64,存储数值范围从0~2^M-1 |
tinyint | 1字节 | |
smallint | 2字节 | |
int | 4字节 | |
bigint | 8字节 | |
float(M,D) | 8字节 | 单精度,M表示长度,D表示小数位,会发生精度丢失 |
double(M,D) | 8字节 | |
decimal(M,D) | M/D的最大值+2 | 双精度,M表示长度,D表示小数位,精确数值 |
numeric(M,D) | M/D的最大值+2 | 和decimal一样 |
2.2 字符串类型
数据类型 | 大小 | 说明 |
---|---|---|
varchar(SIZE) | 0~65535字节 | 可变长度数据 |
text | 0~65535字节 | 长文本数据 |
mediumtext | 0~16777215字节 | 长文本数据 |
blob | 0~65535字节 | 二进制形式数据 |
2.3 日期类型
数据类型 | 大小 | 说明 |
---|---|---|
datatime | 8字节 | 范围1000~9999年,不会进行时区检索和转换 |
timestamp | 4字节 | 范围1970~2038年,自动检索当前时区并进行转换 |
3. 表的操作
需要操作数据库中的表是,首先使用该数据库!
3.1 创建表
create table 表名 (字段1 类型 , 字段2 类型 ……);
示例:
可以使用comment添加字段说明:
3.2 查看表结构
desc 表名;
示例:
3.3 删除表
drop table 表名;
示例:
4. 表的增删改查
4.1 新增(create)
4.1.1 单行全列插入
insert into 表名 [(字段1,字段2……)] values (值1,值2……) ,(值1,值2……);
示例:
4.1.2 多行全列插入
示例:
4.1.3 指定列插入
示例:
4.1.4 插入时间
示例:
- 插入指定时间:
- 插入当前时间:
4.2 查询(select)
select
[distinct] { * |(字段1,字段 2……)}
[as 字段名]
from 表名
[where…]
[order by 字段名 [ asc | desc ] ,…]
limit [offset];
4.4.1 全列查询
示例:
4.2.2 指定列查询
示例:
4.2.3 查询字段为表达式
示例:
4.2.4 别名(as)
示例:
4.2.5 去重(distinct)
示例:
- 去重前:
- 去重后:
4.2.6 排序(order by)
asc为升,desc为降序,默认为asc
示例:
- 升序:
- 降序:
- 对多个字段进行排序:
示例:
4.2.7 条件查询(where)
比较运算符:
运算符 | 说明 |
---|---|
> , >= , < , <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
between x and y | 范围匹配,[x , y] , 如果 x >= value <= y 则返回true |
in (option, …) | 如果是 option 中的任意一个,返回 true |
is null | 是null |
is not null | 不是null |
like | 模糊匹配,%表示多个任意字符(包括0个),_表示一个任意字符 |
逻辑运算符:
运算符 | 说明 |
---|---|
and | 多个条件必须都为 true,结果才是 true |
or | 任意一个条件为 true, 结果为 true |
not | 条件为true时,结果为false |
示例: |
-
英语成绩小于60分的同学
-
语文成绩比英语好的同学
-
总分在200分以下的同学
-
语文大于80,并且英语大于80的同学
-
语文大于80,或英语大于80的同学
-
语文成绩在80~90之间的同学
-
查询语文成绩是 59 或 56 或 89 或 92 的同学
-
查询姓孙的同学
-
查询语文成绩为null的同学
4.2.8 分页查询(limit)
示例:
-
查询前3条记录:
-
从第3条开始向下查找3条记录:
分页查询也可以和前面那些查询搭配使用的
示例: -
查询总分前三名同学的信息:
4.3 修改(update)
update 表名 set 字段 = [值1,值2……] [where…] [order by…] [limit…];
示例:
- 把孙悟空的数学成绩变更为80分
- 把孙权的语文成绩改为70分,数学成绩改为60分
- 将总成绩倒数前三的 2 位同学的数学成绩加上 10 分
- 将所有同学的语文成绩更新为原来的0.5倍
4.4 删除(delete)
delete from 表名 [where…] [order by…] [limit…];
- 删除孙悟空的成绩
- 删除表里所有元素