Data Definition Language DDL数据定义语句,用于建库或建表
DDL 操作数据库
创建数据库的几种方式
创建数据库 CREATE DATABASE 数据库名; 判断数据库是否已经存在,不存在则创建数据库 CREATE DATABASE IF NOT EXISTS 数据库名; 创建数据库并指定字符集(编码表) CREATE DATABASE 数据库名 CHARACTER SET 字符集;
具体操作:
直接创建数据库 db1 CREATE DATABASE db1; 判断是否存在并创建数据库 db2 CREATE DATABASE IF NOT EXISTS db2; 创建数据库并指定字符集为 gbk CREATE DATABASE db2 CHARACTER SET gbk;
查看数据库
查看所有的数据库 SHOW databases; 查看某个数据库的定义信息 SHOW CREATE DATABASE 数据库名;
修改数据库
修改数据库字符集格式 ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
具体操作:
将 db3 数据库的字符集改成 utf8 ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;
删除数据库
删除数据库的语法 DROP DATABASE 数据库名; 判断数据库是否存在并删除数据库 DROP DATABASE IF EXISTS 数据库名;
具体操作:
删除 db2 数据库 DROP DATABASE db2; -- 删除create数据库 DROP DATABASE `create`; `这是一个转义符号
使用数据库
查看正在使用的数据库 SELECT DATABASE(); --DATABASE()是 mysql 函数 使用/切换数据库 USE 数据库名;
具体操作:
查看正在使用的数据库 SELECT DATABASE(); 使用 db1 数据库 USE db1;
DDL 操作表
-- 前提先使用某个数据库
创建表
创建表的格式 CREATE TABLE 表名 ( 字段名 1 字段类型 1, 字段名 2 字段类型 2 ); 关键字说明: CREATE -- 表示创建 TABLE -- 表示创建一张表 MySQL 数据类型 详细的数据类型如下 分类 类型名称 说明 整数类型 tinyInt 很小的整数 smallint 小的整数 mediumint 中等大小的整数 int(integer) 普通大小的整数 小数类型 float 单精度浮点数 double 双精度浮点数 decimal(m,d) 压缩严格的定点数 日期类型 year YYYY 1901~2155 time HH:MM:SS -838:59:59~838:59:59 date YYYY-MM-DD 1000-01-01~9999-12-3 datetime YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 timestamp YYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC 字符串 CHAR(M) M 为 0~255 之间的整数 VARCHAR(M) M 为 0~65535 之间的整数 BLOB TINYBLOB 允许长度 0~255 字节 BLOB 允许长度 0~65535 字节 MEDIUMBLOB 允许长度 0~167772150 字节 LONGBLOB 允许长度 0~4294967295 字节 CLOB TINYTEXT 允许长度 0~255 字节 TEXT 允许长度 0~65535 字节 MEDIUMTEXT 允许长度 0~167772150 字节 LONGTEXT 允许长度 0~4294967295 字节 二进制 VARBINARY(M) 允许长度 0~M 个字节的变长字节 BINARY(M) 允许长度 0~M 个字节的定长字节
具体操作:
-- 创建 student 表包含 id,name,birthday 字段 CREATE TABLE student ( id INT, name VARCHAR(20), birthday DATE );
快速创建一个表结构相同的表
CREATE TABLE 新表名 LIKE 旧表名;
具体操作:
创建 s1 表,s1 表结构和 student 表结构相同 CREATE TABLE s1 LIKE student;
查看表
查看某个数据库中的所有表 SHOW TABLES; 查看表结构 DESC 表名; 查看创建表的 SQL 语句(以SQL语句返回表结构) SHOW CREATE TABLE 表名;
具体操作:
查看 mysql 数据库中的所有表 SHOW TABLES; 查看 student 表的结构 DESC student; 查看 student 的创建表 SQL 语句 SHOW CREATE TABLE student;
删除表
直接删除表 DROP TABLE 表名; 判断表是否存在并删除表 DROP TABLE IF EXISTS 表名;
具体操作:
直接删除表 s1 表 DROP TABLE s1; 判断表是否存在并删除 s1 表 DROP TABLE IF EXISTS s1;
修改表结构
添加表列 ALTER TABLE 表名 ADD 列名 类型; 为学生表添加一个新的字段 remark,类型为 varchar(20) ALTER TABLE student ADD remark VARCHAR(20); 修改列类型 ALTER TABLE 表名 MODIFY 列名 新的类型; 将 student 表中的 remark 字段的改成 varchar(100) ALTER TABLE student MODIFY remark VARCHAR(100); 修改列名 ALTER TABLE 表名 CHANGE 旧列名 新列名 类型; 将 student 表中的 remark 字段名改成 intro,类型 varchar(30) ALTER TABLE student CHANGE remark intro varchar(30); 删除列 ALTER TABLE 表名 DROP 列名; 删除 student 表中的字段 intro ALTER TABLE student DROP intro; 修改字符集 ALTER TABLE 表名 character set 字符集; 具体操作: 将 student2 表的编码修改成 gbk ALTER TABLE student2 character set gbk;
修改表名
RENAME TABLE 表名 TO 新表名; 将学生表 student 改名成 student2 RENAME TABLE student TO student2;