MySQL数据约束
2018-06-18 01:26:52来源:未知 阅读 ()
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束。
代码:
1.默认值 : default ' '
作用:当用户对使用默认值的字段不插入值的时候,就使用默认值(自动填充)。
注意:(1) 对默认值字段插入null是可以的
(2) 对默认值字段可以插入非null
create table student( id int, name varchar(20), address varchar(20) default '山东淄博' /*默认值*/ );
2.非空 : not null
作用: 限制字段必须赋值, ' ' 空字符也是值
注意: (1)非空字符必须赋值
(2)非空字符不能赋null
create table student( id int, name varchar(20), address varchar(20) not null /*非空*/ );
/*非空字段必须赋值*/
insert into student(id,name)values(1,'张三') /*添加失败,因为没有赋值*/
/*非空字符不能插入null*/
insert into student values(1,'张三',NULL) /*添加失败,因为赋值NULL*/
3.唯一 : unique
作用: 对字段的值不能重复
注意:(1)唯一字段可以插入null
(2)唯一字段可以插入多个null
create table student( id int unique, /*int 唯一*/ name varchar(20), address varchar(20) ); insert into student(id,name)values(1,'张三') insert into student values(1,'张三','山东淄博') /*添加失败,因为id重复了*/
4.主键: primary key
作用:非空 + 唯一
注意: (1)通常情况下,每张表都会设置一个主键字段。用于标记表中的每条记录的唯一性。
(2)建议不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的id字段。
create table student( id int unique, /*int 唯一*/ name varchar(20), address varchar(20) ); insert into student(id,name)values(1,'张三') insert into student values(1,'张三','山东淄博') /*添加失败,因为id重复了 错误代码:Duplicate entry '1' for key 'PRIMARY'*/ insert into student values(null,'张三','山东淄博') /*添加失败,因为id没有赋值 错误代码:ERROR 1048 (23000): Column 'id' cannot be null*/
5.自增长:zerofill primary key auto_increment
create table student( id int ZEROFILL PRIMARY KEY AUTO_INCREMENT, /*自增长,从0开始 zerofill :l填充 */ name varchar(20) ); insert into student(name)values('张三'); insert into student(name)values('李四'); insert into student(name)values('王五'); /*id 自动对应为 0,1,2*/
6.外键: constraint 副表名称_主表名称_fk foreign key(副表中的某字段名) references 主表名称(主表主键)
作用:约束两种表的数据,副表中的外键字段必须与主表主键相对应
/*部门表(主表)*/ CREATE TABLE dept( id INT PRIMARY KEY, deptName VARCHAR(20) ) /* 修改员工表(副表/从表)*/ CREATE TABLE employee( eid INT PRIMARY KEY, empName VARCHAR(20), deptId INT,/* 把部门名称改为部门ID */ /* 声明一个外键约束 /* CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) /* 外键名称 外键 参考表(参考字段)*/ )
注意:(1)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!
(2)主表的参考字段通用为主键!
(3)添加数据: 先添加主表,再添加副表
(4)修改数据: 先修改副表,再修改主表
(5)删除数据: 先删除副表,再删除主表
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash