DDL (数据定义语言)
SHOW/ CREATE/ DESC/ USE/ SELECT/ ALTER/ ADD MODIFY CHANGE RENAME TO DROP 用来定义数据库对象(数据库、表、字段)
数据库操作
(1) 查看所有数据库(注意复数S): SHOW DATABASES;
(2) 查询当前数据库(注意无复数): SELECT DATABASE();
(3) 创建数据库: CREATE DATABASE 数据库名
(4) 删除数据库: DROP DATABASE 数据库名
(5)使用数据库: USE 数据库名;
注意事项
UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
表操作
(1)创建表:
创建MySQL数据表需要以下信息:
-- 字段间用逗号分隔,最后一个字段没有逗号
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释],
字段2 字段2类型 [COMMENT 字段2注释],
字段3 字段3类型 [COMMENT 字段3注释],
...
字段n 字段n类型 [COMMENT 字段n注释]
)[ COMMENT 表注释 ];
-- e.g.
CREATE TABLE IF NOT EXISTS stydu_tb1(
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(40) NOT NULL,
age INT NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
– 如果不想字段为NULL可以设置字段的属性为 NOT NULL,在操作数据库时如输入该字段的数据为NULL,就会报错。 – AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。 – PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。 – ENGINE 设置存储引擎,CHARSET 设置编码。
(2)查询当前数据库所有表: SHOW TABLES; 没有表时:
有表:
(3)查询表结构:
DESC 表名;
(4)查询指定表的建表语句: SHOW CREATE TABLE 表名;
ALTER
(5)添加字段 ADD: ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]; 例:ALTER TABLE emp ADD nickname varchar(20) COMMENT ‘昵称’;
ALTER TABLE stydu_tb1 add email varchar(100) comment '邮箱';
(6)修改数据类型 MODIFY: ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
alter table stydu_tb1 modify email varchar(50) not null;
(7)修改字段名和字段类型 CHANGE: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束]; 例:将emp表的nickname字段修改为username,类型为varchar(30) ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT ‘昵称’;
ALTER TABLE stydu_tb1 CHANGE email e_mail varchar(60) comment '邮箱';
(8)删除字段 DROP: ALTER TABLE 表名 DROP 字段名;
alter table stydu_tb1 drop test;
(9)修改表名 RENAME: ALTER TABLE 表名 RENAME TO 新表名
alter table stydu_tb1 RENAME TO study_tb1;
(10)删除表: DROP TABLE [IF EXISTS] 表名;
使用 IF EXISTS删除不存在的表:
删除存在的表: #TODO
(11)删除表,并重新创建该表: TRUNCATE TABLE 表名;
|