这是为了记录MySQL语法格式所创建的「系列文」,只有简单的实践,没有解读。
DDL的英文全称是Data Definition Language,即数据定义语言,它是用于定义数据库对象的操作语句,比如数据库、表、列等。
在记录数据库和数据表的相关操作前,先介绍MySQL数据类型和Java数据类型的关系,加粗的是常见的字段类型:
(1) 字符串数据类型
MySQL字段类型 | 说明 | 字符数 | Java数据类型 |
---|---|---|---|
char(n) | 固定长度 | 最多255 | java.lang.String |
varchar(n) | 可变长度 | 最多65535 | java.lang.String |
tinytext | 可变长度 | 最多255 | java.lang.String |
text | 可变长度 | 最多65535 | java.lang.String |
mediumtext | 可变长度 | 最多 2 24 − 1 2^{24}-1 224−1 | java.lang.String |
longtext | 可变长度 | 最多 2 32 − 1 2^{32}-1 232−1 | java.lang.String |
注意点:
- char类型适合存储固定长度的字符串,比如性别,固定密码等
- varchar类型适合存储一定范围内有长度变化的字符串
- 对于保存字符串“Vigoroushui“:
- a char(20) 占用20个字节
- b varchar(20) 占用11个字节
(2) 日期类型
MySQL字段类型 | 说明 | 格式 | Java数据类型 |
---|---|---|---|
date | 3字节,日期 | 2020-12-02 | Date |
time | 3字节,时间 | 21:15:32 | Date |
datetime | 8字节,日期时间 | 2020-12-02 21:15:32 | Date |
text | 4字节,自动存储记录修改的时间 | java.sql.Timestamp | |
year | 1字节,年份 | Date |
(3) 整型类型
MySQL字段类型 | 字节数 | 范围 | Java数据类型 |
---|---|---|---|
tinyint | 1 | -128~127 | int |
smallint | 2 | -32768~32767 | int |
mediumint | 3 | -8388608~8388607 | int |
int | 4 | -2147483648~2147483647 | int |
bigint | 8 | − 9.22 × 1 0 18 -9.22\times10^{18} −9.22×1018~ 9.22 × 1 0 18 9.22\times10^{18} 9.22×1018 | int |
(4) 浮点类型
MySQL字段类型 | 说明 | 含义 | Java数据类型 |
---|---|---|---|
float(m, d) | 4字节, 单精度 | m总个数,d小数位 | float |
double(m, d) | 8字节,双精度 | m总个数,d小数位 | double |
decimal(m, d) | 存储为字符串的浮点数 | double |
1.数据库相关操作
1.1 数据库的创建
语法格式:
(1) 创建指定名称的数据库
CREATE DATABASE 数据库名;
(2) 创建指定名称的数据库,并指定字符集,通常为utf8
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
例子:
CREATE DATABASE db1; /* 默认字符集: latin1*/
CREATE DATABASE db2 CHARACTER SET utf8;
1.2 数据库的查看与选择
语法格式:
(1) 切换数据库
USE 数据库名;
(2) 查看正在使用的数据库
SELECT DATABASE();
(3) 查看MySQL中的所有数据库
SHOW DATABASES;
(4) 查看指定数据库的定义信息
SHOW CREATE DATABASE 数据库名;
1.3 数据库的修改
语法格式:
(1) 修改数据库的字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集;
例子:
/* 将数据库db1的字符集修改为utf8 */
ALTER DATABASE db1 CHARACTER SET utf8;
/* 查看当前数据库的基本信息,发现编码已更改 */
SHOW CREATE DATABASE db1;
1.4 数据库的删除
语法格式:
(1) 从当前服务器MySQL中永久删除指定数据库
DROP DATABASE 数据库名;
2. 数据表相关操作
2.1 表的创建
语法格式:
(1) 创建一个表
CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型(长度) -- 注:最后一列不加逗号
);
(2) 快速创建一个表结构相同的表创建一个表
CREATE TABLE 新表 like 旧表;
2.2 表的查看
语法格式:
(1) 查看当前数据库中的所有表名
SHOW TABLES;
(2) 查看数据表的结构
DESC 表名;
(3) 查看创建表的SQL语句
SHOW CREATE TABLE 表名;
2.3 表的删除
语法格式:
(1) 从数据库中永久删除指定的表
DROP TABLE 表名;
(2) 判断表是否存在,存在即删除,不存在即不执行该操作
DROP TABLE IF EXISTS 表名;
2.4 表的修改
语法格式:
(1) 修改表名
RENAME TABLE 旧表名 TO 新表名;
(2) 修改表的字符集
ALTER TABLE 表名 CHARACTER SET 字符集;
(3) 向表中添加列
ALTER TABLE 表名 ADD 字段名称 字段类型;
(4) 修改表中列的数据类型或长度
RENAME TABLE 表名 MODIFY 字段名称 字段类型;
(5) 修改列名称
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度);
(6) 删除列
ALTER TABLE 表名 DROP 列名;
例子:
/* 仅对3-6进行演示 */
ALTER TABLE db ADD descri varchar(20);
RENAME TABLE db MODIFY descri varchar(30);
ALTER TABLE db CHANGE descri describ varchar(50);
ALTER TABLE db DROP describ;