创建 / 删除表
drop table if EXISTS course;
create table course
(
cid TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10)
)
或者
create table course
(
cid TINYINT UNSIGNED NOT NULL auto_increment,
name VARCHAR(10),
PRIMARY KEY(cid)
);
mysql常用五类约束类型:
not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复、唯一
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check:检查,指定一个表达式,用于检验指定数据
注: MySQL不支持check约束,但可以使用check约束,而没有任何效果;
【问题记录】
删除自增列主键时,MySQL错误:
Incorrect table definition;there can be only one auto column and it must be defined as a key
(只能存在有一个自增列,必须将其定义为主键)
解决方法:去除主键之前,先除去自增列属性
ALTER TABLE student MODIFY column sid int unsigned not null;
ALTER TABLE student drop PRIMARY KEY;
ALTER TABLE student add PRIMARY KEY(sid);
重命名表
重命名表使用关键字RENAME TABLE
RENAME TABLE table_name_1 TO table_name_2;
更新表
使用 ALTER TABLE 语句
1.增加列 add / add column(column 可写可不写,下同)
alter table 表名 add 列名 类型[(长度) 约束条件];
给指定位置加列需要两个关键字: first 和 after
ALTER table user add PASSWORD varchar(8);
或者
ALTER table user add column PASSWORD varchar(8);
在test表a列后面增加一列c:
ALTER TABLE test ADD COLUMN c INT NOT NULL AFTER a
在test表的第一列增加字段id:
ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST
2.修改列类型 modify / modify column
alter table 表名 modify 列名 类型[(长度) 约束条件];
ALTER TABLE student MODIFY column sid int unsigned not null AUTO_INCREMENT;
3.修改现有列名称 change / change column
alter table表名 change 旧列名 新列名 类型[(长度) 约束条件];
ALTER TABLE student CHANGE column id sid int;
4.删除现有列 drop / drop column
alter table 表名 drop 列名;
ALTER table `user` DROP column `password`