MySQL数据约束
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束。
代码:
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)删除数据: 先删除副表,再删除主表
MySQL数据约束的更多相关文章
- Mysql数据约束 整理
数据约束 1.默认值: 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以插入非null CREATE TABLE ...
- Java基础87 MySQL数据约束
1.默认值 -- 创建表student1,设置address字段有默认值 create table student1 ( id int, name ), address ) default '广东省深 ...
- MySQl数据约束练习
默认值约束 1 CREATE TABLE USER( 2 uid INT, 3 uname VARCHAR(10), 4 address VARCHAR(30) DEFAULT '山东省' 5 ) ...
- MySQL数据约束和关联查询
1 默认值deafult:在建表的时候字段后使用 default ,默认值字段允许为null. 2 非空 not null:在建表的时候字段后使用 not null. 非空字段必须赋值,并且不能是n ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- mysql 数据操作 单表查询 where 约束 目录
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...
- mysql之约束以及修改数据表
数据约束的分类: ———————————————————————————————————————————————————— 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq index2 3. ...
- MySQL 之存储引擎与数据类型与数据约束
一.存储引擎场景 1.InnoDB 用于事务处理应用程序,支持外键和行级锁.如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那 ...
随机推荐
- LDAP 原理图解
来自为知笔记(Wiz)
- How do I use the API correctly
1:打开帮助文档2:点击显示,找到索引,看到输入框3:你要学习什么内容,你就在框框里面输入什么内容 举例:Random4:看包 java.lang包下的类在使用的时候是不需要导包的5:看类的描述 Ra ...
- Mysql:1236常见错误
常见的error 1236 报错一, logevent超过max_allowed_packet 大小 1. Got fatal error 1236 from master when reading ...
- 企业级Nginx基于虚拟主机别名的设置
生活中访问www.baidu.com和baidu.com是一个效果,同理也可以用rewrite 301跳转的思路(多发了一次请求过去)配置nginx.conf文件或者include里面的引用的文件,道 ...
- Linux 硬件RAID详解系统功能图
RAID-0(条带模式) 特点: 在读写的时候可以实现并发,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快. 因为没有冗余,一个硬盘坏掉 ...
- 关于CSS中的元素定位
---恢复内容开始--- CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定 ...
- 音乐mp4网站 汽车服务工程 张旭
- windows下sqli-labs的搭建及学习(POST篇)
windows下sqli-labs的搭建及学习(GET篇): http://blog.csdn.net/sherlock17/article/details/64454449 Less-11:基于错误 ...
- 二进制安装mariaDB
1.获取二进制安装包 获取二进制格式MariaDB安装包,可去官网下载. 因为是实验环境,所以选择了最新版. mariadb-10.2.12-linux-x86_64.tar.gz 2.解压 解压到 ...
- phpMyAdmin提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”
这是以前学生在使用phpwamp时遇到的一个问题(其他环境或是自己搭建时遇到此问题,解决方式同理) 其实这个问题与PHPWAMP本身无关,是电脑设置的问题,一般正常情况下不会出现这个问题. 现在把学生 ...