2016-04-04
MySQL基础学习(2)
首先创建一个,因为之后的操作都需要一个表格。
CREATE TABLE tb1(
name VARCHAR(20),
age TINYINT UNSIGNED NOT NULL,
salary float(8,2) UNSIGNED
);
创建出如下的表格
1. 添加列
ALTER TABLE tb1 ADD sex ENUM('1', '2', '3') NOT NULL DEFAULT '3' AFTER age;
该命令表示在age之后增加一行性别,默认为3,非空的一列,效果如下。
2. 删除列
删除列的命令比较简单,
ALTER TABLE tb1 DROP sex;
3. 添加主键约束
有的时候,我们最开始创建表格的时候忘了设置主键,在这种情况下我们可以在之后添加主键。
我们先添加一列id,之后将其设为主键。
ALTER TABLE tb1 ADD id SMALLINT NOT NULL FIRST;
ALTER TABLE tb1 ADD PRIMARY KEY (id);
通过这两行代码,我们成功插入id并将其设置为主键。
4. 添加唯一约束
由于主键每个表格只能拥有一个,但是有的时候需要检验唯一性。我们确认不会有重复的人名。
ALTER TABLE tb1 ADD UNIQUE (name);
5. 添加/删除默认约束
有的时候,我们需要在已经设定的情况下再次修改列的默认约束。
比如,我们设定默认工资为5000元。
ALTER TABLE tb1 ALTER salary SET DEFAULT 5000;
如果需要启用默认值,则需要在对应列输入 DEFAULT。
比如,
INSERT tb1 VALUES(1, 'Jason', 20, 3, DEFAULT);
6. 删除列约束
1)主键约束
ALTER TABLE tb1 DROP PRIMARY KEY;
2)唯一约束
ALTER TABLE tb1 DROP INDEX name;
3)外键约束
ALTER TABLE tb1 DROP FOREIGN KEY pid;
7. 修改列定义
比如,当我们需要把原来的id上加入自动增加,我们就需要
ALTER TABLE tb1 MODIFY id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;
你会发现如果在上面加入PRIMARY KEY字段就会报错,因为修改列定义时并不会撤销PRIMARY KEY
8. 修改名称
1)列名称
比如说,我们把表格中sex换成gender:
ALTER TABLE tb1 CHANGE sex gender ENUM('1','2','3') NOT NULL DEFAULT 3;
此时要注意,如果只填写两个名字 sex和gender则会报错。
2)数据表
ALTER TABLE tb1 RENAME table1;