MySQL_语法

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值