1 列
1.1 约束
用于限制表中的数据,避免无效的数据进入到表中,保证表中的数据的准确性和可靠性.
(1) 非空约束:约束该字段的值不能为null.
-- 新增
-- 在建表时设置约束
<字段名> <数据类型> not null
-- 在修改表时添加约束
alter table <表名> change column <字段名> <字段名> <数据类型> not null;
-- 删除
alter table <表名> change column <字段名> <字段名> <数据类型> null;
(2) 默认值约束(default):约束该字段有默认值,即该字段不输入值时,会给一个默认值.一般结合非空约束使用.
-- 新增
-- 在建表时设置约束
<字段名> <数据类型> default <默认值>;
-- 在修改表时添加约束
alter table <表名> change column <字段名> <数据类型> default <默认值>;
-- 删除
alter table <表名> change column <字段名> <字段名> <数据类型> default null;
(3) 检查约束:检查字段值是否有效.
-- 新增
-- 在建表定义完所有字段之后设置约束
check(<检查约束>)
-- 如 check(salary > 0 and salary < 100)
-- 在修改表时添加约束
alter table <表名> add constraint <检查约束名> check(<检查约束>);
-- 删除
alter table <表名> drop constraint <检查约束名>;
(4) 唯一约束:约束该字段的值具有唯一性,最多有一个为空,可以有多个null.
-- 新增
-- 在建表时设置约束
<字段名> <数据类型> unique
-- 在修改表时添加约束
alter table <表名> add constraint <唯一约束名> unique(<列名>);
-- 删除
alter table <表名> drop index <唯一约束名>;
(5) 主键约束:约束该单字段(或字段组)的值具有唯一性,不为null且不为空,且只有一个主键约束.如主键是整数型,可配合auto_increment实现主键自增长.
-- 新增
-- 在建表时,在定义字段的同时指定主键
<字段名> <数据类型> primary key
-- 在建表时,在定义完所有字段之后指定主键
primary key [字段名,...]
-- 在修改表时添加约束
alter table <表名> add primary key(字段名,...);
-- 删除
alter table <表名> drop primary key;
(6) 外键约束:限制两个表的关系,保证该字段的值必须来自于主表的关联列的值.使用时在从表添加外键约束,用于引用主表中某列的值.要求主键和外键的数据类型必须一致.
-- 新增
-- 在建表定义完所有字段之后设置约束
[constraint <外键名>] foreign key(列名]) references <主表名>(主键列名);
-- 在修改表时添加约束
alter table <表名> add constraint <外键名> foreign key(<列名>) references <主表名> (<列名>);
-- 删除
alter table <表名> drop foreign key <外键约束名>;
2 数据
2.2 修改
update 表名 set 列名 = 值 where 条件;
2.3 查询
(1) 分页查询
①limit
-- 查询第m到n行
select
列名
...
from table_name
order by 列名
-- limit offset,row
limit m-1,n-m+1
;
-- 分页:查询第pageNum页,每页展示pageSize条数据
select * from 表名 order by 列名 limit (pageNum-1)*pageSize,pageSize;
②row_number
-- 查询第m到n行
select
*
from (
select
*
-- 排序
,row_number() over( order By 字段) as num
from 表名
)
as t1
where num >= m and num <= n;
-- 分页:查询第pageNum页,每页展示pageSize条数据
select
*
from (
select
*
-- 排序
,row_number() over( order By 字段) as num
from 表名
)
as t1
where num > (pageNum-1)*pageSize and num <= pageNum*pageSize;