mysql之字段约束-第五篇
数据库的完整性约束是为了在数据库应用中保证数据的一致性和正确性。所以在创建数据表时定义其字段的约束是非常有必要的。
主键约束
主键(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之字段约束-第五篇的更多相关文章
- MySQL:字段约束与索引
字段约束 MySQL的字段约束共四种: 约束名 关键字 描述 主键约束 PRIMARY KEY 字段值唯一,且不能为NULL 非空约束 NOT NULL 字段值不能为NULL 唯一约束 UNIQUE ...
- 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...
- mysql第五篇 : MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
第五篇 : MySQL 之 视图.触发器.存储过程.函数.事物与数据库锁 一.视图 视图是一个虚拟表(非真实存在的),其本质是‘根据SQL语句获取动态的数据集,并为其命名‘ ,用户使用时只需使用“名称 ...
- 2-16 MySQL字段约束-索引-外键
一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...
- mysql字段约束-索引-外键---3
本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table wo ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- Mysql优化(出自官方文档) - 第五篇
目录 Mysql优化(出自官方文档) - 第五篇 1 GROUP BY Optimization 2 DISTINCT Optimization 3 LIMIT Query Optimization ...
- mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题
1. 在已存在的表中添加字段约束AUTO_INCREMENT修饰符 mysql> alter table user modify uid int auto_increment primary k ...
- 我的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 别人的的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
随机推荐
- Keil51单片机解决数字显示不稳的问题
Keil51单片机解决数字显示不稳的问题 数字显示不稳,就是我们人眼的特点决定的,0.1秒的残留现象,低于这个值人眼发现不了其中变化,大于这个值就会出现同一个数字闪烁的现象.解决的方法就是所有数字,第 ...
- Jenkins拉取GitHub上代码
1.github 生成 Personal Access Token 2.github 设置 GitHub webhooks (具体需要持续集成的项目),新建或者设置现有项目的 webhooks 选项, ...
- Java期末课程设计--购物车的GUI(编辑中)
实现的功能 基本功能 使用admin登录 对商品表内的商品添加至购物车 结算价格 扩展功能 用户的登录注册(基于数据库) 钱包功能 结算前录入地址信息 丰富GUI(指插入图片) 管理员界面(对商品进行 ...
- 使用pip安装PySide6
https://www.perfcode.com/p/pip-install-pyside6.html 要求 在安装PySide6之前,你必须先安装Python 3.6 以上版本: 安装PySide6 ...
- linux清除恶意程序流程-kdevtmpfsi清除
TOP命令查看发现kdevtmpfsi进程跑满CPU, 处理如下: 解决过程 1.清除被新增的用户名和密码# 找到账户ID和权限组都是0跟root同级别的和不认识的, 删掉保存. more /va ...
- leetcode-152乘积最大子数组(两个转移方程的正确性证明)
1.dp数组的含义 maxDP[i]中存储 以nums[i]为结尾元素的子数组的最大乘积minDP[i]中存储 以nums[i]为结尾元素的子数组的最小乘积 注意到:maxDP[i] >= mi ...
- python处理word、ppt、excel
介绍采用python_docx模块处理word文档的基本技巧,特别是图片如何提取和写入. python_docx模块只能处理docx,不支持doc,如需使用,要进行转换.代码入下: from win3 ...
- Cocoapods的简单介绍和使用
1.Cocoapods运行环境和gem命令 1.1 Ruby运行环境和gem命令 Mac自带Ruby环境.如果gem版本太旧,可以使用以下指令升级到最新: sudo gem update --syst ...
- mac 查看本机ip
创建 ip.sh 文件,文件内容为 ifconfig -a | grep -e "inet[^6]" |\ sed -e "s/.*inet[^6][^0-9]*\([0 ...
- TexturePacker基本使用
生成后