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

主键约束

主键(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. 在java路径上找不到javax.servlet.http.HttpServlet

    1.将写好的网页代码导入Java中会发现index.jsp文件开头部分出现报错 2.错误提示是找不到java路径问题 3.在项目中鼠标右键进行找到Build Path选项点击进去 4.找到Librar ...

  2. GreenDao操作本地db文件(使用greendao 新版3.2.2 )

    项目需求:省市区使用本地db文件,数据库使用greendao框架.现在不想使用SQL语句,用greendao直接查询本地数据库表(至于为啥使用GreenDao,可以百度一下它的优势). https:/ ...

  3. 为什么用postman

    1,  保存测试的记录, 就是确保访问的地址,数据什么的,得到的结果是有效的2,  假设开始一个访问, 然后方便在本地debug, 因为有些访问是不能通过本地的浏览器来访问的, 比如前后端分离的情况, ...

  4. RSS经典教程

    RSS经典教程 作者:OLD HELPSoldhelps@126.com RSS 指 Really Simple Syndication(真正简易联合) RSS 使您有能力聚合(syndicate)网 ...

  5. BIP弹框内容显示的隐藏

    viewModel.on("customInit", function (data) {         // 关闭或取消关原因详情--页面初始化         viewMode ...

  6. SED fitting

    Using the Robitaille (2017) YSO SED models https://notebook.community/hyperion-rt/paper-2017-sed-mod ...

  7. 一键部署redis-5.0.5

    #!/bin/bash echo "-------------------------------------" echo -e "\e[1;33m 下面开始部署redi ...

  8. python pip的使用

    1.导出安装包 pip freeze > requirements.txt 2.安装requirements.txt文件中指定的扩展库:pip install -r requirement.tx ...

  9. mybatis原理探究

    jdbc数据库运行流程: JDBC有哪三种statement接口: Statement 1.Statement接口提供了执行语句和获取结果的基本方法: 2.Statement继承自Wrapper:3. ...

  10. python装饰器中高级用法(函数加参)

    在上一章我们说到装饰器的原则和基本用法,下面来补充一下:如果函数加参,装饰器该如何变化 1,还是用上一章的源代码 2,给test2加个参数name 报错了,本来给test2加一个name参数,为了实现 ...