mysql约束
来源:互联网 发布:4glte网络优化前景如何 编辑:程序博客网 时间:2024/05/18 01:07
约束
保持数据一致性,完整性。
约束分为表级约束和列(字段)级约束;
约束类型包括:
NOT NULL(非空约束);
PRIMARY KEY(主键约束);
UNIQUE KEY(唯一约束);
DEFAULT(默认约束);
FOREIGN KEY(外键约束);作用实现一对一或者一对多关系;
添加约束
ALTER table_name ADD
外键约束
-保持数据一致性,完整性。实现一对一或一对多关系。
创建外键约束要求
1)父表跟子表必须使用相同的存储引擎,且必须为INNODB;
2)外间列跟参照列必须具有相同的数据类型,且数字的长度跟是否有符号位必须相同;
3)外间列跟参照列必须创建索引(id在设置为primary key的时候就创建了索引),如果外键列不存在索引的话,mysql将自动创建索引;
创建外键约束
创建父表:provinces;
mysql>CREATE TABLE provinces(
>id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
>pname VARCHAR(20) NOT NULL
>);
创建子表:users;
>CREATE TABLE users(
>id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
>username VARCHAR(10) NOT NULL,
>pid(外键) SMALLINT(与参照键类型相同) UNSIGNED
>FOREIGN KEY (pid) PREFERENCES provinces (id)
>);
展示数据表的索引:SHOW INDEX FROM tb_name\G;
SHOW CREATE TABLE table_name
外键约束的参照操作(作用)
FOREIGN KEY (child_id) REFERENCES dad_tbname(dad_id) ON DELETE CASCADE
//ON DELETE 在删除时,父表与子表关系为:CASCADE 一起删除或更新,该行。
//ON DELETE SET NULL: 父表被操作,子表外键列自行设空,不能存在NOT NULL属性
//ON DELETE RESTRICT: 父表被操作,子表不跟着操作,独立性。NO ACTION与RESTRICT,类似。
//外键约束后,子表要增加记录需要父表先存在参照。
少用物理外键,逻辑外键常用
- 查看表的字段信息:desc 表名;
- 查看表的所有信息:show create table 表名;
- 添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
- 添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
- (alter table 主表名 add foreign key (字段 ) references 从表名(字段) on delete cascade)
- 添加唯一约束:ALTER table 表名 add unique key 约束名 (字段);
- 删除主键约束:alter table 表名 drop primary key;
- 删除外键约束:alter table 表名 drop foreign key 外键(区分大小写);
- 修改表名:alter table t_book rename to bbb;
- 添加列:alter table 表名 add column 列名 varchar(30);
- 删除列:alter table 表名 drop column 列名;
- 修改列名MySQL: alter table bbb change nnnnn hh int;
- 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
- 修改列名Oracle:alter table bbb rename column nnnnn to hh int;
- 修改列属性:alter table t_book modify name varchar(22);
sp_rename:SQLServer 内置的存储过程,用与修改表的定义。
- Mysql约束
- Mysql约束
- mysql约束
- MySQL约束
- mysql约束
- mysql约束
- mysql约束
- mysql约束
- MYSQL约束
- MySQL约束
- MySQL约束
- MySQL---约束
- MySQL 约束
- [Mysql] 约束
- MySQL-约束
- Mysql 约束
- mysql--约束
- mysql约束
- 解决百度地图找不到SDKInitializer,无法解析的问题
- MySQL重要但容易被忽略_MySQL自定义函数&存储过程
- 信号驱动式I/O模型,以终端I/O为例写个demo
- FileInputStream FileOutputStream
- 出发吧
- mysql约束
- android文件
- Android实现微信录制小视频的计时动画
- 网络爬虫:利用Selenium实现登录
- mysql 多表 查询
- 仿支付宝支付成功动画
- 最长上升子序列
- 集合的划分问题(二)
- LeetCode Longest Palindromic Substring