MySQL基础-DDL

95 阅读2分钟

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 表名;

变量类型

数值类型

数值类型名内存大小无符号(不需要负数时使用)
int4 Byteint unsigned
float4 Bytefloat unsigned
double8 Bytedouble unsigned

字符串类型

char比varchar效率高

字符串类型名描述
char定长字符串
varchar变长字符串

时间类型

时间类型名格式
dateYYYY-MM-DD
timeHH:MM:SS
datetimeYYYY-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;