mysql 基本知识--约束以及修改数据表

时间:2022-02-05 14:29:53

mysql 基本知识--约束以及修改数据表

mysql 基本知识--约束以及修改数据表

mysql 基本知识--约束以及修改数据表

1.表级以及列级约束

对一个数据列建立的约束称为列级约束;
对多个数据列建立的约束称为表级约束;
列级约束既可以在列定义时声明,也可以在列定义后声明;
例如:主键既可以在id这个字段定义时声明,也可以在id这个字段定义后声明;PRIMARY KEY ('id'),
表级约束只能在列定义后声明。
列级约束用的最多,表级约束很少用到;并不是每一种约束都存在表级和列级约束;其中NOT NULL、DEFAULT约束只有列级约束;主键、唯一、外键约束表级跟列级约束都存在。

2.修改数据表

1.ALTER TABLE tb_1 ADD username VARCHAR(20) NOT NULL DEFAULT 10 FIRST [AFTER id];<br>
这是添加列操作,也就是添加字段的操作, default是字段的一个参数,first意思是将新建的字段插在所有字段的前面,after id-->意思是将username字段插在id的后面!<br>
以上是添加一个,如果添加两个列就只会排在所有字段的后面!
2.删除列操作
ALTER TABLE tb_1 DROP username;(一次性删一个)
ALTER TABLE tb_1 DROP username,DROP id;(一次性删两个)

3.添加约束

添加约束<br>
1.ALTER TABLET tb_1 ADD PRIMARY KEY (字段名称)//为某一字段添加主键
2.ALTER TABLET tb_1 ADD UNIQUE KEY (字段名称)//为某一字段添加唯一约束
3.2.ALTER TABLET tb_1 ADD FOREIGN KEY (字段名称) REFERENCR tb_2(id)//为某一字段添加外键
删除默认约束
1.ALTER TABLE tb_1 ALTER age SET DEFAULT 10;//设置age字段默认值为10;
2.ALTER TABLE tb_1 ALTER age DROP DEFAULT 10;//删除age字段默认值为10;

4.删除约束 删除主键约束:
ALTER TABLE users2 DROP PRIMARY KEY;//后面不加字段名称是因为主键只有一个
查看约束的名字:SHOW INDEXES FROM tb_name\G;// \G网格显示数据
删除唯一约束:ALTER TABLE users2 DROP INDEX username;//这里的username是被添加 了唯一约束的字段。
查看外键约束的名称:SHOW CREATE TABLE tb_name;
这里得到系统赋予的外键约束的名称为:user2_ibfk_1;
删除外键约束:ALTER TABLE user2 DROP FOREIGN KEY user2_ibfk_1;
顺便删除索引:ALTER TABLE user2 DROP INDEX pid;







5.修改数据表 修改列定义(位置):ALTER TABLE tbl_name MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;
修改列名称:ALTER TABLE user2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL ;
数据表更名1:ALTER TABLE user2 RENAME [TO/AS] user3;
数据表更名2:ALTER TABLE user2 TO user3;
尽量少使用数据更名操作,创建过索引或者说曾经使用过视图或存储的过程,可能导致视图和存储过程无法正常工作。