首页 / MYSQL / MySQL(三)——约束
MySQL(三)——约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL(三)——约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4034字,纯文字阅读大概需要6分钟。
内容图文
![MySQL(三)——约束](/upload/InfoBanner/zyjiaocheng/523/cdb2b2cd88f64ed5973a1ba601198b30.jpg)
约束constraint
- 完整性约束条件,简称约束,用于保证表中数据的完整性和安全性。
- 约束是对表进行的一种强制性的校验规则。
- 在进行DML操作时,必须符合约束条件,否则不能执行。
非空约束 not null
-
非空约束:not null,简称NN
-
如果对字段设置了not null,在DML操作,不能为空。
-
建表写法:
create table tableName(
tid int,
tname varchar(20) not null,
tage int
);
- 建表后写法:
#格式
alter table tableName modify colName type not null;
#例子:
create table t_person(
id int primary key,
pname varchar(255)
);
alter table t_person modify pname varchar(255) not null;
唯一性约束 unique
-
唯一性约束:unique,简称 UK
-
如果字段设置了唯一性约束,那么在表中此字段的值不能重复,但是可以为null(无穷大不等于无穷大)
-
建表写法
create table tableName(
tid int,
tname varchar(20) not null,
username varchar(20) unique
);
主键约束 primary key
-
主键约束:primary key,简称PK
-
主键约束是非空约束和唯一性约束的组合形式,表示字段的值不能为null且唯一。通常用于作为记录的唯一标识来 使用。
-
选择主键约束的字段要求:
1.对业务需求没有意义的字段,比如序号
2.如果设置了主键约束,那么此字段最好不好人为的修改。而是自动生成。使用auto_increment(自增序列)
3.不建议对动态赋值的字段进行设置,比如时间戳。 -
建表时写法:
create table tableName(
tid int primary key auto_increment,
tname varchar(20) not null
);
- 建表后设置:
alter table tableName add primary key(colName);
#一个主键的情况
create table t_person(
id int primary key,
pname varchar(255)
);
#多个主键
create table t_person(
id int,
pname varchar(255),
primary key(id, pname)
);
#先建表,后添加主键
create table t_person(
id int,
pname varchar(255)
);
alter table t_person add primary key (id, pname);
自增约束 auto_increment
create table t_person(
id int primary key auto_increment,
pname varchar(255)
);
insert into t_person values (0, ‘张三丰‘);
select * from t_person;
insert into t_person values (5, ‘张无忌‘);
select * from t_person;
insert into t_person (pname) values (‘周芷若‘);
select * from t_person;
insert into t_person values (100, ‘乔峰‘);
select * from t_person;
insert into t_person values (0, ‘虚竹‘);
select * from t_person;
delete from t_person;
insert into t_person values (0, ‘扫地僧‘);
select * from t_person;
truncate t_person;
insert into t_person values (1, ‘王语嫣‘);
select * from t_person;
外键约束
-
外键约束:foreign key,简称FK
-
外键约束是指 字段A的值,依赖于字段B的值。这两个字段可以在同一张表中,也可以在不同的表中。字段A所在的
表称之为从表(副表),字段B所在的表称之为主表(父表)。字段A的值也可以为null. 字段B必须为主键约束。 -
建表时写法
create table tableName(
tid int primary key auto_increment,
tname varchar(20),
tmgr int,
constraint constraintName Foreign key(tmgr) references tableName(tid)
);
建表后写法:
alter table tableName add constraint constraintName foreign key(colName1) references tableName2(colName2)
#建表时添加外键
# 学生表: (学号、姓名、性别、年龄、班级)
# 班级表: (班级号、班级名称)
create table t_cls(
cid int primary key auto_increment,
cname varchar(255) not null
);
create table t_stu(
sid int primary key auto_increment,
sname varchar(255) not null,
sage int default 0,
cid int,
-- 添加外键
constraint fk_stu_cls_cid foreign key(cid) references t_cls(cid)
);
-- 建表之后追加外键
alter table t_stu add constraint fk_stu_cls_cid foreign key(cid) references t_cls(cid);
-- 外键的删除
alter table t_stu drop foreign key fk_stu_cls_cid;
检查约束
-
检查约束:check,简称ck。
-
mysql不支持,可以使用枚举代替。
-
建表语句:
create table tableName(
tid int,
tname varchar(20),
tgender char(1) check(tgender in(‘f‘,‘m‘))
);
#案例:
create table temp_5(
tid int,
tname varchar(20),
tgender char(1) check(tgender in(‘f‘,‘m‘)) #语法通过,但是不生效
);
insert into temp_5 values (1001,‘zs‘,‘a‘);
select * from temp_5;
#案例:
create table temp_6(
tid int,
tname varchar(20),
tgender enum(‘f‘,‘m‘) #枚举写法
);
insert into temp_6 values (1001,‘zs‘,‘m‘);
MySQL(三)——约束
标签:src 形式 写法 unique 操作 姓名 mysql 生成 主表
本文系统来源:https://www.cnblogs.com/dch-21/p/12885818.html
内容总结
以上是互联网集市为您收集整理的MySQL(三)——约束全部内容,希望文章能够帮你解决MySQL(三)——约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。