MYSQL(基本命令5)

1.SQL约束

1.主键约束

特点不可重复 唯一非空
作用用来表示数据库中的每一条记录

1.添加主键约束

字段名 字段类型 primary key
# 方式 1 创建一个带主键的表
CREATE TABLE emp2(
-- 设置主键 唯一 非空
eid INT PRIMARY KEY ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 )
);
-- 删除表
DROP TABLE emp2;
-- 方式 2 创建一个带主键的表
CREATE TABLE emp2(
eid INT ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 ),
-- 指定主键为 eid 字段
PRIMARY KEY (eid)
);
-- 方式 3 创建一个带主键的表
CREATE TABLE emp2(
eid INT ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 )
)
-- 创建的时候不指定主键 , 然后通过 DDL 语句进行设置
ALTER TABLE emp2 ADD PRIMARY KEY (eid);
-- 查看表的详细信息
DESC emp2;

 2.测试主键的唯一性 非空性

# 正常插入一条数据
INSERT INTO emp2 VALUES ( 1 , ' 宋江 ' , ' ' );
# 插入一条数据 , 主键为空
-- Column 'eid' cannot be null 主键不能为空
INSERT INTO emp2 VALUES ( NULL , ' 李逵 ' , ' ' );
# 插入一条数据 , 主键为 1
-- Duplicate entry '1' for key 'PRIMARY' 主键不能重复
INSERT INTO emp2 VALUES ( 1 , ' 孙二娘 ' , ' ' );
3.删除主键约束
-- 使用 DDL 语句 删除表中的主键
ALTER TABLE emp2 DROP PRIMARY KEY ;
DESC emp2;

2.主键的自增

1. 创建主键自增的表
-- 创建主键自增的表
CREATE TABLE emp2(
-- 关键字 AUTO_INCREMENT, 主键类型必须是整数类型
eid INT PRIMARY KEY AUTO_INCREMENT ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 )
);
2.添加数据 观察主键的自增
INSERT INTO emp2(ename,sex) VALUES ( ' 张三 ' , ' ' );
INSERT INTO emp2(ename,sex) VALUES ( ' 李四 ' , ' ' );
INSERT INTO emp2 VALUES ( NULL , ' 翠花 ' , ' ' );
INSERT INTO emp2 VALUES ( NULL , ' 艳秋 ' , ' ' );

3.修改主键自增的起始值

-- 创建主键自增的表 , 自定义自增其实值
CREATE TABLE emp2(
eid INT PRIMARY KEY AUTO_INCREMENT ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 )
) AUTO_INCREMENT = 100 ;
-- 插入数据 , 观察主键的起始值
INSERT INTO emp2(ename,sex) VALUES ( ' 张百万 ' , ' ' );
INSERT INTO emp2(ename,sex) VALUES ( ' 艳秋 ' , ' ' );
4. DELETE TRUNCATE对自增长的影响
1.删除表中所有数据有两种方式

 

清空表数据的方式
特点
DELETE
只是删除表中所有数据 , 对自增没有影响
TRUNCATE
truncate 是将整个表删除掉 , 然后创建一个新的表
自增的主键 , 重新从 1 开始

1.1 命令

-- 目前最后的主键值是 101
SELECT * FROM emp2;
-- delete 删除表中数据 , 对自增没有影响
DELETE FROM emp2;
-- 插入数据 查看主键
INSERT INTO emp2(ename,sex) VALUES ( ' 张百万 ' , ' ' );
INSERT INTO emp2(ename,sex) VALUES ( ' 艳秋 ' , ' ' );
1.2 truncate 删除 表中数据
-- 使用 truncate 删除表中所有数据 ,
TRUNCATE TABLE emp2;
-- 插入数据 查看主键
INSERT INTO emp2(ename,sex) VALUES ( ' 张百万 ' , ' ' );
INSERT INTO emp

 

3. 非空约束

非空约束的特点: 某一列不予许为空

1.命令

# 非空约束
CREATE TABLE emp2(
eid INT PRIMARY KEY AUTO_INCREMENT ,
-- 添加非空约束 , ename 字段不能为空
ename VARCHAR ( 20 ) NOT NULL ,
sex CHAR ( 1 )
);

 

4.唯一约束

唯一约束的特点 : 表中的某一列的值不能重复 ( null 不做唯一的判断 )
1.添加唯一约束
# 创建 emp3 表 为 ename 字段添加唯一约束
CREATE TABLE emp3(
eid INT PRIMARY KEY AUTO_INCREMENT ,
ename VARCHAR ( 20 ) UNIQUE ,
sex CHAR ( 1 )
);
2.测试唯一约束
-- 测试唯一约束 添加一条数据
INSERT INTO emp3 (ename,sex) VALUES ( ' 张百万 ' , ' ' );
-- 添加一条 ename 重复的 数据
-- Duplicate entry ' 张百万 ' for key 'ename' ename 不能重复
INSERT INTO emp3 (ename,sex) VALUES ( ' 张百万 ' , ' ' );

 

主键约束与唯一约束的区别:
1. 主键约束 唯一且不能够为空
2. 唯一约束,唯一 但是可以为空
3. 一个表中只能有一个主键 , 但是可以有多个唯一约束

5.默认值

默认值约束 用来指定某列的默认值
1. 创建 emp4 , 性别字段默认 女
-- 创建带有默认值的表
CREATE TABLE emp4(
eid INT PRIMARY KEY AUTO_INCREMENT ,
-- ename 字段添加默认值
ename VARCHAR ( 20 ) DEFAULT ' 奥利给 ' ,
sex CHAR ( 1 )
);
2. 测试 添加数据使用默认值
-- 添加数据 使用默认值
INSERT INTO emp4(ename,sex) VALUES ( DEFAULT , ' ' );
INSERT INTO emp4(sex) VALUES ( ' ' );
-- 不使用默认值
INSERT INTO emp4(ename,sex) VALUES ( ' 艳秋 ' , ' ' );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值