MYSQL数据库-约束
来源:互联网 发布:农村淘宝服务站佣金 编辑:程序博客网 时间:2024/05/22 00:48
MYSQL数据库-约束
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
MYSQL中,常用的几种约束:
NOT NULL
===================================================
主键(PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键要求这一行的数据不能有重复且不能为空。
还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识
===================================================
默认值约束(DEFAULT)规定,当有DEFAULT约束的列,插入数据为空时该怎么办。
DEFAULT约束只会在使用INSERT语句(上一实验介绍过)时体现出来,INSERT语句中,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充
===================================================
唯一约束(UNIQUE)比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。
当INSERT语句新插入的数据和已有数据重复的时候,如果有UNIQUE约束,则INSERT失败.
===================================================
外键(FOREIGN KEY)既能确保数据完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须REFERENCES(参考)另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
在INSERT时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列(department表的dpt_name)中没有dpt3,则INSERT失败
===================================================
非空约束(NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。
在MySQL中违反非空约束,不会报错,只会有警告.
附: SQL语句
1 CREATE DATABASE mysql_shiyan; 2 3 use mysql_shiyan; 4 5 CREATE TABLE department 6 ( 7 dpt_name CHAR(20) NOT NULL, 8 people_num INT(10) DEFAULT '10', 9 CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)10 );11 12 CREATE TABLE employee13 (14 id INT(10) PRIMARY KEY,15 name CHAR(20),16 age INT(10),17 salary INT(10) NOT NULL,18 phone INT(12) NOT NULL,19 in_dpt CHAR(20) NOT NULL,20 UNIQUE (phone),21 CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)22 );23 24 CREATE TABLE project25 (26 proj_num INT(10) NOT NULL,27 proj_name CHAR(20) NOT NULL,28 start_date DATE NOT NULL,29 end_date DATE DEFAULT '2015-04-01',30 of_dpt CHAR(20) REFERENCES department(dpt_name),31 CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)32 );
- mysql数据库约束分类
- MySQL数据库的约束
- mysql数据库约束基础知识
- MySQL数据库:完整性约束
- MYSQL数据库-约束
- MYSQL数据库-约束
- MySql数据库-09数据库约束
- mysql数据库 check约束无效
- 数据库基础--MySQL中的约束
- MySQL数据库-约束与分页
- mysql数据库 check约束无效
- MySQL数据库的完整性约束
- mysql数据库的约束(三)
- MySQL数据库 -- 数据库约束(详解)
- MySQL数据库中的外键约束详解
- mysql 数据库中 常用数据类型,约束
- MySql数据库数据类型及约束介绍
- MySQL数据库(操作表的约束)
- Python 调试工具 PDB(Linux 环境下调试)
- Spring学习笔记(一)-控制反转
- Spring学习笔记(二)-@Resource注解的使用规则
- xshell连接本机vmware上的linux
- Spring学习笔记(三)-类扫描的注解
- MYSQL数据库-约束
- 不错的Spring学习笔记(转)
- 几秒后刷新页面
- Java 使用BigDecimal实现精确计算
- myeclipse 8.5-10.0 安装 svn 方法
- SVN使用&CVS使用
- 超越最常用的快捷键
- FutureTask获取线程返回值
- myeclipse快捷键大全