MySQL数据定义语言(Data Definition Language, DDL)的基本语句,DDL主要用于定义数据库对象,例如数据库、表和字段
数据库操作
查询
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
创建
CREATE [ IF NOT EXISTS ] DATABASE 数据库名; #方括号为可选项
删除
DROP DATABASE [ IF EXISTS ] 数据库名; #方括号为可选项
使用
USE 数据库名;
表操作
查询
查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC TABLES;
查询建表时使用的SQL语句
SHOW CREATE TABLE 表名;
创建
CREATE TABLE 表名(
变量名1 变量类型 [COMMENT 变量注释],
变量名2 变量类型 [COMMENT 变量注释],
...
变量名n 变量类型 [COMMENT 变量注释],
) [COMMENT 表注释];
修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型 [ COMMENT 注释 ];
修改字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 类型;
修改字段名和类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 [ COMMENT 注释 ];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除
删除表
DROP TABLE [ IF EXISTS ] 表名;
删除表,并重新创建
TRUNCATE TABLE 表名;
变量类型
数值类型
| 数值类型名 | 内存大小 | 无符号(不需要负数时使用) |
|---|
| int | 4 Byte | int unsigned |
| float | 4 Byte | float unsigned |
| double | 8 Byte | double unsigned |
字符串类型
char比varchar效率高
| 字符串类型名 | 描述 |
|---|
| char | 定长字符串 |
| varchar | 变长字符串 |
时间类型
| 时间类型名 | 格式 |
|---|
| date | YYYY-MM-DD |
| time | HH:MM:SS |
| datetime | YYYY-MM-DD HH:MM:SS |
案例
#创建表
CREATE TABLE employee(
id int comment '编号',
workno char(10) comment '工号',
name char(10) comment '姓名',
gender char(1) comment '性别',
age int unsigned comment '年龄', #年龄没有负数
idcard char(18) comment '身份证号',
entrydate date comment '入职时间'
)comment '员工表';
#在表中添加nickname字段
alter table employee add nickname varchar(20) comment '昵称';
#将nickname字段修改为username
alter table employee change nickname username varchar(30) comment '用户名';
#删除username字段
alter table employee drop username;
#修改表名
alter table employee rename to emp;
#删除表
DROP TABLE emp;