一、列表型
1.数值型(使用时可以不加引号)
-
tinyint 微整性, 1个字节,-128~127
-
smallint 小整型, 2个字节
-
int 整型,4个字节
-
bigint 大整型,8个字节
-
decimal(M,D) 定点小数,16个字节 M(总有效位数),D(小数点后有效位数)
-
boolean 布尔型 true,false (使用时会转为tinyint)
float 单精度浮点型 4个字节
double 双精度浮点型 8个字节
2.字符串型
-
date 日期型
-
time 时间型
-
datetime 日期时间型
-
year() 获取日期中年的部分
3.日期时间型
-
varchar(M) 变长字符串
-
char(M) 定长字符串,M最大值为255,储存手机号、身份证号……
-
text(M) 大型变长字符串
二、列约束
-
主键约束——primary key
声明了主键约束的列,不允许插入重复的值,常和auto_increment联合使用
auto_increment 自增 声明了自增列,在插入数据的时候,只需提供值为null,就会获取最大值然后 +1 插入
-
非空约束—— not null
null 空,是暂时无法确定的值。关键字 not null 非空,声明了非空约束的列,不允许插入空
-
唯一约束——unique
声明了唯一约束的列,不允许插入重复的值,可以插入null,多个null
-
默认值约束——default
插入一条数据,如果不提供值,会使用默认值
-
先设置默认值,使用default设置默认值
-
然后调用默认值
指定的列提供值,没有出现的列会自动调用默认值
insert into 数据表名称(列名称...) values(值);*
哪个列要使用默认值,只需提供关键字default就会自动调用默认值
insert into 数据表名称 values(值, default);****
-
外键约束——foreign key
为了确保两个表直接建立关联
声明了外键约束的列插入的值必须在另一个表的主键列中出现过,两者类型要一样
要用逗号隔开,另起一行,一般放在表中的最下面
,
foreign key(外键列) references 另一个表(主键列)
检查约束——check MySQL不支持
三、简单查询
-
查询特定的列
select 列名称,列名称... from 表名称;
-
查询所有的列
select * from 表名称;
select 所有的列名称 from 表名称;
-
给列起别名 as
select 列名称 as 新起的列名称 from 表名称;* as可省略,
-
显示不同的记录 distinct
select distinct 列名称 from 表名称;
-
查询时执行计算
-
查询结果排序 order y
select * from 表名称 order by 列名称asc; 升序
select * from 表名称 order by 列名称desc; 降序
默认 升序
-
条件查询
select * from 表名称 where 列名称 not in(列名称中内容,列名称中内容);
条件 where is null;
where in();
-
模糊条件查询 like
以e结尾:select * from 表名称 where 列名称 like'%e';
倒数第二个为e:select * from 表名称 where 列名称 like'%e_';
-
分页查询1. ——查询结果太多,数据多,分页显示
需要两个已知数据:当前的页码,每页的数据量
每页开始查询的值=(当前的页码-1)*每页的数据量
select * from 表名称 limit 开始查询的值,每页的数据量
limit 后(有空格)的开始查询的值不能写运算,只能写值
开始查询的值,每页的数据量必须是数值型,不能加引号
四、复杂查询
-
聚合查询/分组查询
聚合查询 函数
select count() from 表名称; count()/sum()/avg()/max()/min()
分组查询 group by列名称
-
子查询
是多个查询命令的组合,把其中一个的结果作为另一个的条件来使用
-
多表查询
要查询的列分布在多个表中,前提表之间已经建立了关联
防止列名称相同,在列名称的前边加上表名称
-
内连接 inner join... on
inner join 要连接的表名称 on 列名称=主键列名称
-
左外连接 left outer join...on
-
右外连接 right outer join...on
显示副表中的所有记录,outer 可省略
-
全连接 full join … on MySQL不支持
union 联合后,合并相同记录
union all 联合后,不合并相同记录
将左外连接和右外连接进行联合,合并相同记录。