MySQL学习笔记(三)
2018-03-20 22:32
267 查看
与MySQL的零距离接触_慕课网_第三章
一.常用约束
(1).
(2).主键约束
a.每张表只能存在唯一主键约束;
b.保证记录唯一性;
c.主键自动为NOT NULL;
d.自动编号:AUTO_INCREMENT,默认起始值为1,递增1;
(3).唯一约束
a.保证记录的唯一性;
b.字段可以为空;
c.每张表可以存在多个唯一约束;
(4).默认约束
a.插入记录时,若没为其赋值,则自动赋为默认值;
(5).外键约束
a.父表子表需使用相同存储引擎-InooDB;
b.禁止使用临时表;
c.外键列和参照列需使用相似数据类型,数字长度及有无符号位必须相同,而字符长度可以不同;
d.外键列和参照列需创立索引,若外键不存在索引,将自动创建;
e.CASCADE:从父表删除或更新时,自动删除或更新子表中匹配的行;
# eg: FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE;
f.SET NULL:从父表删除或更新时,设置子表中的外键列为NULL;
g.RESTRICT:拒绝对父表的删除更新;
h.NO ACTION:在MySQL中与RESTRICT相同;
二.约束分类
列级约束:对一个数据列建立的约束;可在列定义前后声明;
表级约束:对多个数据列建立的约束;只能在列定义后声明;
三.修改数据表
(1).添加单列:ALTER TABLE tb_name ADD col_name col_definition FIRST/AFTER;(不声明位置则在表最后)
(2).添加多列:ALTER TABLE tb_name ADDcol_name col_definition,col_name2 col_definition2,...(只能位于表最后)
(3).删除一列:ALTER TABLE tb_name DROP col_name
(4).删除多列:ALTER TABLE tb_name DROP col_name1,col_nmae2...
(5).添加主键约束:ALTER TABLE tb_name ADD /*CONSTRAINT PK_user2_id*/ PRIMARY KEY (key_name);(CONSTRAINT为可选项 给主键项起名)
(6).删除主键约束:ALTER TABLE tb_name DROP PRIMARY KEY ;
(7).添加外键约束:ALTER TABLE tb_name ADD FOREIGN KEY (pid) REFERENCES province (id);
(8).删除外键约束:ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;
【fk_symbol为外键标记 查看方法为 SHOW COLUMNS FROM tb_name;】
(9).添加唯一约束:ALTER TABLE tb_name ADD UNIQUE (username);
(10).删除唯一约束:ALTER TABLE tb_name DROP INDEX index_name;
【index_name为索引名 查看方法为 SHOW INDEXES FROM tb_name;】
(11).添加默认约束:ALTER TABLE tb_name ALTER col_name SET DEFAULT 值;
(12).删除默认约束:ALTER TABLE tb_name ALTER col_name DROP DEFAULT;
(13).修改列定义:ALTER TABLE tb_name MODIFY col_name col_definition FIRST\AFTER;(14).修改列名称:ALTER TABLE tb_name CHANGE old_col_name new_col_name col_definiton FIRST\AFTER; (15).修改数据表名称:ALTER TABLE tb_name RENAME new_name;【或 RENAME TABLE tb_name TO new_name;】
一.常用约束
(1).
约束名 | 非空约束 | 主键约束 | 唯一约束 | 默认约束 | 外键约束 |
语句 | NOT NULL | PRIMARY KEY | UNIQUE KEY | DEFAULT 值 | FOREIGN KEY (值) REFERENCES 表名 (值) |
a.每张表只能存在唯一主键约束;
b.保证记录唯一性;
c.主键自动为NOT NULL;
d.自动编号:AUTO_INCREMENT,默认起始值为1,递增1;
(3).唯一约束
a.保证记录的唯一性;
b.字段可以为空;
c.每张表可以存在多个唯一约束;
(4).默认约束
a.插入记录时,若没为其赋值,则自动赋为默认值;
(5).外键约束
a.父表子表需使用相同存储引擎-InooDB;
b.禁止使用临时表;
c.外键列和参照列需使用相似数据类型,数字长度及有无符号位必须相同,而字符长度可以不同;
d.外键列和参照列需创立索引,若外键不存在索引,将自动创建;
e.CASCADE:从父表删除或更新时,自动删除或更新子表中匹配的行;
# eg: FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE;
f.SET NULL:从父表删除或更新时,设置子表中的外键列为NULL;
g.RESTRICT:拒绝对父表的删除更新;
h.NO ACTION:在MySQL中与RESTRICT相同;
二.约束分类
列级约束:对一个数据列建立的约束;可在列定义前后声明;
表级约束:对多个数据列建立的约束;只能在列定义后声明;
三.修改数据表
(1).添加单列:ALTER TABLE tb_name ADD col_name col_definition FIRST/AFTER;(不声明位置则在表最后)
(2).添加多列:ALTER TABLE tb_name ADDcol_name col_definition,col_name2 col_definition2,...(只能位于表最后)
(3).删除一列:ALTER TABLE tb_name DROP col_name
(4).删除多列:ALTER TABLE tb_name DROP col_name1,col_nmae2...
(5).添加主键约束:ALTER TABLE tb_name ADD /*CONSTRAINT PK_user2_id*/ PRIMARY KEY (key_name);(CONSTRAINT为可选项 给主键项起名)
(6).删除主键约束:ALTER TABLE tb_name DROP PRIMARY KEY ;
(7).添加外键约束:ALTER TABLE tb_name ADD FOREIGN KEY (pid) REFERENCES province (id);
(8).删除外键约束:ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;
【fk_symbol为外键标记 查看方法为 SHOW COLUMNS FROM tb_name;】
(9).添加唯一约束:ALTER TABLE tb_name ADD UNIQUE (username);
(10).删除唯一约束:ALTER TABLE tb_name DROP INDEX index_name;
【index_name为索引名 查看方法为 SHOW INDEXES FROM tb_name;】
(11).添加默认约束:ALTER TABLE tb_name ALTER col_name SET DEFAULT 值;
(12).删除默认约束:ALTER TABLE tb_name ALTER col_name DROP DEFAULT;
(13).修改列定义:ALTER TABLE tb_name MODIFY col_name col_definition FIRST\AFTER;(14).修改列名称:ALTER TABLE tb_name CHANGE old_col_name new_col_name col_definiton FIRST\AFTER; (15).修改数据表名称:ALTER TABLE tb_name RENAME new_name;【或 RENAME TABLE tb_name TO new_name;】
相关文章推荐
- MySQL学习记录笔记
- Hibernate 学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
- 马哥学习笔记十四——MySQL进阶之数据类型和sql模型
- mysql存储过程学习笔记2
- mysql-学习笔记1
- MySQL学习笔记之四:并发控制和事务机制
- MYSQL学习笔记(二十三)字符集和校对
- 学习笔记-mysql_备份与还原
- Mysql DBA 高级运维学习笔记-MySQL备份与恢复实战案例及生产方案
- 50.笔记 MySQL学习——利用事务处理保证语句
- MySql官方手册学习笔记2 MySql的模糊查询和正则表达式
- 马哥学习笔记十六——MySQL进阶之事务和隔离级别
- linux+python+djiango+mysql编译安装学习笔记
- mysql学习笔记——显示&插入
- linux 学习笔记 mysql安装总结
- Entity Framework with MySQL 学习笔记一(拦截)
- MySQL学习笔记(一)
- mysql学习笔记之基础知识
- MySQL学习笔记2:数据类型与操作数据表
- PHP+MySQL开发技术详解—学习笔记