DDL

SQL 可多行写,分号结束

MySQL 的 SQL语句 不区分大小写(包括数据库名)

注释:

1
2
-- 单行
/* 多行 */

SQL 语句分类:

  • DDL
    • Data Definition Language 数据库定义语
  • DML
    • Data Manipulation Language 数据库操作语言
  • DQL
    • Data Query Language 数据库查询语言
  • DCL
    • Data Control Language 数据库控制语言
    • 用来创建数据库用户、控制数据库的访问权限
    • DBA 数据库管理员用

DDL 数据库操作

查询:

1
2
3
4
5
-- 展示所有数据库
show databases;

-- 查看当前正在使用的数据库
select database();

使用:

1
2
-- 使用数据库
use 数据库名;

创建:

1
2
3
4
5
-- 创建数据库
create database 数据库名;

-- 如果不存在 则创建
create database if not exists 数据库名;

删除:

1
2
3
4
5
-- 删除数据库
drop database 数据库名;

-- 如果存在 则删除
drop database if exists 数据库名;

上述操作中
database 可以替换为 schema
databases 可以替换为 schemas
日常使用 database

DDL 表操作

创建:

1
2
3
4
5
CREATE TABLE 表名(
字段1 字段类型 [约束] [comment '字段1注释'],
......,
字段n 字段类型 [约束] [comment '字段n注释'],
)[comment '表注释'];

业务中表名加上 tb_ 前缀

约束

限制字段的数据

primary key 主键约束,数据的唯一标志,非空且唯一

not null 非空约束

unique 唯一约束

default 值 默认约束,未指定值则采用默认值

foreign key 外键约束,两张表的数据建立联系

查询

show tables; 查询所有表

desc 表名; 查询表结构

show create table 表名; 查询建表语句

修改

操作 语句
添加字段 alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
修改字段类型 alter table 表名 modify 字段名 新数据类型(长度);
修改字段名 和 字段类型 alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
删除字段 alter table 表名 drop column 字段名;
修改表名 rename table 表名 to 新表名;

删除

删除表: drop table [if exists] 表名;