一、创建表
CREATE TABLE 表名(属性名 数据类型[完整性约束条件],属性名 数据类型[完整性约束条件]......属性名 数据类型);
e.g CREATE TABLE example0
id INT.
完整性约束条件
primary key 标识该属性为该表的主键,可以唯一的标识对应的元组
foreign key 标识该属性为该标的外键,是与之联系的某表的主键
not null 标识该属性不能为空
unique 标识该属性的值是唯一的
auto_increment 标识该属性的值自动增加,这是MySQL的SQL语句的特色
default 为该属性设置默认值
1、主键(唯一的,任意两条记录的主键字段的值不能相同,主键的值是非空值。主键可以是单一的字段,也可以是多个字段。)
单字段 -> stu_id INT PRIMARY KEY,
多字段 -> stu_id INT
-> course_id INT
-> grade FLOAT
-> PRIMARY KEY<stu_id,course_id>
->>;
2、外键(可以为空)
CONSTRAINT 外键别名 FOREIGN KEY(属性1.1,属性1.2,.......属性1.n)
REFERENCES 表名(属性2.1,属性2.2,......属性2.n)
3、非空约束
属性名 数据类型 NOT NULL
4、表的唯一性的约束
唯一性是指所有记录中该字段的值不能重复出现。
属性名 属性类型 UNIQUE
5、表的属性值自动增加
AUTO_INCREMENT是MySQL数据库中一个特殊的约束条件。其主要用于为表中插入的新纪录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束的字段,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT,SMALLINT,INT,BIGINT等)。默认的情况下,该字段的值是从1开始增加。
属性名 数据类型 AUTO_INCREMENT
6、表的属性默认值
属性名 数据类型 DEFAULT 默认值
7、查看表结构
是指查看数据库中已经存在的表的定义。查看表结构的语句也包括DESCRIBE语句和SHOW CREATE TABLE 语句。可以查看标的字段名、字段的数据类型、完整性约束条件等。
DESCRIBE 表名 (查看表结构)
SHOW CREATE TABLE 表名 \c(查看详细结构)
二、修改表
1、修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
2、修改字段的数据类型(整数型、符点属型、字符串型、二进制类型、日期和时间类型)
ALTER TABLE 表名 MODIFY 属性名 数据类型;
3、修改字段名
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
“新数据类型”参数修改后的数据类型,如不修改,则将新数据类型设置成与原来一样。
4、添加字段
AKTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST/AFTER 属性名2];
a、增加无完整性约束条件的字段
无后面[][]里的内容,默认位置为表的最后
b、增加有完整性约束条件的字段
有[完整性约束条件]无后一个[]
c、表的第一个位置增加字段
[FIRST]
d、表的制定位置之后增加字段
[AFTER 属性名2]
5、删除字段
ALTER TABLE 表名 DROP 属性名;
6、修改字段的排列位置
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST/AFTER 属性名2;
“属性名1”参数指需要修改位置的字段的名称;“数据类型”参数指“属性名1”的数据类型;“FIRST”参数指定位置为表的第一个位置;"AFTER 属性名2"参数指定“属性名1”插入在“属性名2”之后。
7、更改表的存储引擎
MySQL存储引擎是指MySQL数据库中表的存储类型。包括InnoDB、MyISAM、MEMORY等。(MyISAM不支持外键,若要改变引擎需先删除外键。)
ALTER TABLE 表名 ENGINE=存储引擎名;
8、删除表的外键约束
外键是一个特殊的字段,其将某一表与其父表建立关联关系。
ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
三、删除表(注意父表的删除)删除没有被关联的普通表和被其他表关联的父表的方法。
没有被关联的普通表
DROP TABLE 表名;
被关联的父表,先删除关联外键,再删除表。