数据库的完整性约束是为了在数据库应用中保证数据的一致性和正确性。所以在创建数据表时定义其字段的约束是非常有必要的。

主键约束

主键(primary key)是一个列或者列的组合,其值能唯一地标识表中的每一行。且一张表只能定义一个主键。主键是通过PRIMARY KEY 关键字来指定的。

create table employee (
empId INT(11) primary key,
emp_name VARCHAR(25),
orgId INT(11),
salary DECIMAL
);

外键约束

外键用来在两个表的数据之间简历连接,对应着另一张表的主键。

新建一张dept表:

 create table dept
(
id int(11) primary key,
dept_name varchar(22) not null,
location varchar(50)
);

删除之前创建的employee表

drop table if exists employee;

再创建deptId为外键的employee表:

create table employee (
empId INT(11) primary key,
emp_name VARCHAR(25),
orgId INT(11),
salary DECIMAL,
CONSTRAINT emp_dept
FOREIGN key(orgId) REFERENCES dept(id)
);

唯一约束

唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。新建dept1表,指定部门名称唯一:

 create table dept1
(
id int(11) primary key,
dept_name varchar(22) UNIQUE,
location varchar(50)
);

默认值约束

默认值约束指定某列的默认值,创建dept3,指定部门位置为深圳;

 create table dept2
(
id int(11) primary key,
dept_name varchar(22) UNIQUE,
location varchar(50) DEFAULT '深圳'
);

非空约束

非空约束在表中,某个列的定义后加上关键字NOT NULL 作为限定词,来约束该列的取值不能为空:

 create table dept3
(
id int(11) primary key,
dept_name varchar(22) not null,
location varchar(50)
);

mysql之字段约束-第五篇的更多相关文章

  1. MySQL:字段约束与索引

    字段约束 MySQL的字段约束共四种: 约束名 关键字 描述 主键约束 PRIMARY KEY 字段值唯一,且不能为NULL 非空约束 NOT NULL 字段值不能为NULL 唯一约束 UNIQUE ...

  2. 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

    1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...

  3. mysql第五篇 : MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁

    第五篇 : MySQL 之 视图.触发器.存储过程.函数.事物与数据库锁 一.视图 视图是一个虚拟表(非真实存在的),其本质是‘根据SQL语句获取动态的数据集,并为其命名‘ ,用户使用时只需使用“名称 ...

  4. 2-16 MySQL字段约束-索引-外键

    一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...

  5. mysql字段约束-索引-外键---3

    本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符   我们通过这个例子来看看 mysql> create table wo ...

  6. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  7. Mysql优化(出自官方文档) - 第五篇

    目录 Mysql优化(出自官方文档) - 第五篇 1 GROUP BY Optimization 2 DISTINCT Optimization 3 LIMIT Query Optimization ...

  8. mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题

    1. 在已存在的表中添加字段约束AUTO_INCREMENT修饰符 mysql> alter table user modify uid int auto_increment primary k ...

  9. 我的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  10. 别人的的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

随机推荐

  1. JSR 133

      JSR 133是Java语言规范的一个JSR(Java Specification Request),全称为Java Memory Model and Thread Specification R ...

  2. 【转载】Adobe Acrobat XI Pro闪退原因及解决办法

    https://www.cnblogs.com/zohoo/p/12704689.html https://www.cnblogs.com/zohoo/p/12704689.html

  3. SAP 附件功能 PRD环境无法删除 VIEW_ATTA

    如图:界面上面没有打勾确认按钮 解决方案:来源网址 How to disable, delete and edit buttons function in attachment list. | SAP ...

  4. MySQL半一致读实验

    参考资料: https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html https://www.y ...

  5. centos7.6安装rz命令上传文件

    centos7.6安装rz命令 1.执行安装命令:yum -y install lrzsz 2.进行上传操作:rz   跳转到本地文件选择后即可上传

  6. Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation

    Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=M ...

  7. 初识Node

    Node的定义:一个搭建在Chrome JavaScript运行时上的平台,用于构建高速.可伸缩的网络程序.   Node构建与JS之上,在服务器端,Node使用V8虚拟机,执行的是本地机器码,省去了 ...

  8. jmeter取样器之KafkaProducerSampler(往kafka插入数据)

    项目背景 性能测试场景中有一个业务场景的数据抽取策略是直接使用kafka队列,该场景需要准备的测试数据是kafka队列里的数据,故需要实现插入数据到kafka队列,且需要实现控制每分钟插入多少条数据. ...

  9. 选择/插入/冒泡/快速排序之R语言实现

    题目来自于<R语言的科学编程与仿真>第9章第7题. 选择排序法.这是一种最简单,但是效率最低的排序算法.算法步骤如下: 对于给定的一个向量x,令最初的未排序向量u等于x,并且最初的已排序向 ...

  10. .Net Core WebApi 控制器自动创建文件夹上传图片

    /// <summary> /// 异步图片或文件上传 /// </summary> /// <param name="formFile">&l ...