本文整理自网络,侵删。
目录
- 约束
- 1. not null(非空约束)
- 2. unique(唯一性约束)
- 3. primary key (主键约束)
- 4. foreign key(外键约束)
- 5. 级联更新与级联删除
由于增删改了emp表中的记录,因此这里重新创建了一个脚本并使用
create database bjpowernnode; use bjpowernode; source C:\Users\Administrator\Desktop\bjpowernode.sql;
约束
1.什么是约束?
- 约束就是表中的限制条件
- 约束的关键字是:constraint
2. 约束的分类
- 非空约束
not null
- 唯一性约束
unique
- 主键约束
primary key
- 外键约束
foreign key
- 检查约束 MySQL数据库不支持,Oracle数据库支持
1. not null(非空约束)
not null约束的字段,不能为null值,必须给具体的数据
创建表,给字段添加 非空约束【用户的邮箱地址不能为空】
drop table if exists t_user; create table t_user( ?? ??? ?id int(10), ?? ??? ?name varchar(32) not null, ?? ??? ?email varchar (32) );
2. unique(唯一性约束)
创建表,保证邮箱地址唯一
create table t_user( id int(10), name varchar(32) not null, email varchar(128) unique );
unique约束的字段不能重复,但是可以为null
以上的约束属于列级约束
表级约束:
?create table t_user( ?? ? id int(10), ?? ? name varchar(32), ?? ? email varchar(128), ?? ? unique(email) ?);
1.使用表级约束给多个字段添加约束
?create table t_user( ?? ? id int(10), ?? ? name varchar(32), ?? ? email varchar(128), ?? ? unique(name,email) );
2.表级约束可以给约束起名,以后通过这个名字来删除约束
? ?create table t_user( ?? ? ? id int(10), ?? ? ? name varchar(32), ?? ? ? email varchar(128), ?? ? ? constraint t_user_email_unique unique(email) ?);
not null 和unique可以联合使用
3. primary key (主键约束)
1.主键涉及到的术语:
- 主键约束
- 主键字段
- 主键值
2.以上三者之间的关系:
- 表中的某个字段添加主键约束之后,该字段称为主键字段
- 主键字段中出现的每一个数据都被称为主键值
3.给某个字段添加主键约束以后,该字段不能重复,也不能为空
- 主键约束效果和''not null unique'' 相同,但是本质不同,
- 主键约束除了可以做到''not null unique''之外
- 主键字段还会默认添加''索引-index''
4. 一张表应给有主键字段,如果没有,表示这张表是无效的
- 主键值是当前行数据的唯一标识
- 主键值是当前行数据的身份证号码
- 即使表中的两行记录数据是完全相同的,
- 但是由于主键值不同,就认为这是两行完全不同的字段
5.无论是单一主键还是复合主键,一张表的主键约束只能有一个
- 给一个字段添加主键约束,被称为单一主键约束
- 给多个字段联合添加主键约束,被称为复合主键
6.主键根据性质分类:
- 自然主键:主键值是一个自然数,这个主键和当前的业务没有关系
- 业务主键:主键值和当前业务紧密相关
- 当业务发生改变的时候,主键值通成会受到影响,所以业务主键之用很少。
单一主键,列级约束
create table t_user( ?? ?id int(10) primary key, ?? ?name varchar(32) );
单一主键,表极约束
?create table t_user( ?? ? id int(10), ?? ? name varchar(32), ?? ? primary key(id) );
复合主键:只能用表级约束
mysql> create table t_user( ? ? -> id int(10), ? ? -> name varchar(32), ? ? -> primary key(id,name) ? ? -> );
auto_increment:主键自增
MySQL数据管理系统中提供了一个自增的数字,专门用来自动生成主键值
主键值不需要用户维护,也不需要用户提供了,自动生成的,
相关阅读 >>
解决mysql报错this function has none of deterministic问题
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL约束(创建表时的各种条件说明)
标签:mysql
相关推荐
评论
管理员已关闭评论功能...