1 -------------------------------------
2 --创建数据库表
3 CREATE TABLE table_name (column_name column_type);
4
5 CREATE TABLE IF NOT EXISTS `runoob_tbl`(
6 `runoob_id` INT UNSIGNED AUTO_INCREMENT,
7 `runoob_title` VARCHAR(100) NOT NULL,
8 `runoob_author` VARCHAR(40) NOT NULL,
9 `submission_date` DATE,
10 PRIMARY KEY ( `runoob_id` )
11 )ENGINE=InnoDB -- 数据库存储引擎
12 DEFAULT CHARSET=utf8; --设置默认字符值
13
14 CREATE table student5 ( id int(10) primary key comment'学生ID',
15 name char(30) comment'学生姓名', age int(10) comment'年龄', sex char(10) comment'性别')engine=INNODB DEFAULT CHARSET=utf8 comment'学生表'
16
17 --如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL --,就会报错。
18 AUTO_INCREMENT--定义列为自增的属性,一般用于主键,数值会自动加1。
19 PRIMARY KEY--关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
20 ENGINE --设置存储引擎,CHARSET 设置编码。
21 -------------------------------------
22
23 约束
24 约束用于对表中字段进行限制,保证表中数据的正确性和唯一
25 约束类型
26 primary key 主键约束
27 说明:非空,唯一,用于唯一标识对应的记录。类似身份证。
28 foreign key 外键约束
29 说明:用于表与表建立关系模型,使表与表紧密的结合起来。
30 not null 非空约束
31 说明:字段值不能为Null
32 default 默认值约束
33 说明:默认给字段指定默认值
34 auto_increment 自增约束
35 说明:作用在整数类型,字段默认从1开始自增
36
37
38 -- 备注
39 comment
40 例如 comment='说明'
41 -- 指定存储引擎
42 engine
43 engine=innodb
44 -- 默认设置字符编码
45 default charset=utf8
1 -- 修改表
2 -- 修改表本身的选项
3 ALTER TABLE 表名 表的选项
4 EG: ALTER TABLE 表名 ENGINE=MYISAM; -- 修改表的存储引擎
5 -- 对表进行重命名
6 RENAME TABLE 原表名 TO 新表名
7 RENAME TABLE 原表名 TO 库名.表名 (可将表移动到另一个数据库)
8 -- RENAME可以交换两个表名
9 -- 修改表的字段结构
10 ALTER TABLE 表名 操作名
11 -- 操作名
12 ADD[ COLUMN] 字段名 -- 增加字段
13 AFTER 字段名 -- 表示增加在该字段名后面
14 FIRST -- 表示增加在第一个
15 ADD PRIMARY KEY(字段名) -- 创建主键
16 ADD UNIQUE [索引名] (字段名)-- 创建唯一索引
17 ADD INDEX [索引名] (字段名) -- 创建普通索引
18 DROP[ COLUMN] 字段名 -- 删除字段
19 MODIFY[ COLUMN] 字段名 字段属性 -- 支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上)
20 CHANGE[ COLUMN] 原字段名 新字段名 字段属性 -- 支持对字段名修改
21 DROP PRIMARY KEY -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)
22 DROP INDEX 索引名 -- 删除索引
23 DROP FOREIGN KEY 外键 -- 删除外键
24
25 -- 删除表
26 DROP TABLE[ IF EXISTS] 表名 ...
27 -- 清空表数据
28 TRUNCATE [TABLE] 表名
29 -- 复制表结构
30 CREATE TABLE 表名 LIKE 要复制的表名
31 -- 复制表结构和数据
32 CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名