版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LeonWang_Fly/article/details/82192601
mysql英文原版refman,详尽DDL见13.1 Data Definition Statements 传送门
一、创建数据库
-
示例
CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8 COLLATE utf8_general_bin;
-
关键参数说明:
- 数据库名
- 字符集 charset
- 字符序/排序规则 collate
二、建表语句
-
完整示例
--删除原表 DROP TABLE IF EXISTS `person`; --建表
CREATE TABLE person
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(16) COLLATE utf8_bin NOT NULL COMMENT ‘姓名’,
sex
enum(‘F’,‘M’) COLLATE utf8_bin DEFAULT NULL COMMENT ‘性别’,
pid
varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT ‘身份id’,
birthday
date DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
```
* 说明
* 建表时可以指定表默认使用的引擎,字符集和字符序,每个char/varcharß字段可以单独设置这些属性
三、修改表
-
重命名表名
格式: RENAME TABLE 原表名 TO 新表名; 示例: RENAME TABLE person TO people;
-
新增列
示例:给person表新增列address ALTER TABLE person ADD COLUMN address VARCHAR(255) COMMENT '地址' NOT NULL;
-
修改列
示例:修改person表的sex列数据类型为enum ALTER TABLE person CHANGE COLUMN sex enum('M','F') NOT NULL;
-
新增注释
示例:给表person增加注释[个人信息表] ALTER TABLE person COMMENT='个人信息表'
-
删除列
示例:删除person表的birthday列 ALTER TABLE person DROP COLUMN birthday;
四、索引
-
增加索引
示例:给表person的pid创建唯一 CREATE UNIQUE INDEX ind_person_pid ON person(pid); ---------------------------- UNIQUE为索引类型,可替换索引类型为: UNIQUE|FULLTEXT|SPATIAL,mysql 支持的其他索引类型分别为primary key,非唯一索引(默认)
-
删除索引
示例:删除表person的ind_person_pid索引 DROP INDEX ind_person_pid ON person;