1.1 SQL 分类
操作 | 说明 |
---|---|
DDL | 用来操作数据库、表 |
DML | 用来增删查表中数据 |
DQL | 用来修改表中数据 |
DCL | 用来控制数据库的访问权限以及创建用户 |
1.2 数据库操作(DDL)
1.2.1 创建(create)
语法
# 创建数据库
create database 数据库名称;
# 创建数据库并设置字符集
create database 数据库名称 character set(可简写 charset) 字符集;
# 判断数据库是否存在
if not exists
# 使用数据库
use 数据库名称;
# 查看正在使用的数据库
select database();
示例
1.2.2 查询(read)
语法
# 查询所有数据库
show databases;
# 查询指定数据库
show create database/table 名称;
示例
1.2.3 修改(update)
语法
# 修改数据库字符集
alter database 数据库名称 charset 字符集;
示例
1.2.4 删除(delete)
语法
# 删除指定数据库
drop database 数据库名称;
示例
1.3 表操作(DDL)
1.3.1 创建
语法
create table 表名(
字段 类型,
字段 类型,
···
字段 类型
);
示例
常用数据类型
数据类型 | 说明 |
---|---|
int | 整型 |
bigint | 长整型 |
double | 小数 |
varchar | 字符串 |
data | 日期(yyyy-MM-dd) |
datatime | 日期(yyyy-MM-dd HH:mm:ss) |
timestamp | 时间戳(毫秒值) |
注意
最后一个字段不能加 “,”
1.3.2 查询
语法
# 查询数据库中所有表
show tables;
# 查询表结构
desc 表名;
示例
1.3.3 修改
语法
# 修改表名
alter table 旧表名 rename to 新表名;
# 增加一列
alter table 表名 add 列名 类型;
# 修改列名/类型
alter table 表名 change 列名 新列名 类型;
alter table 表名 modify 类型;
# 删除列
alter table 表名 drop 列名;
示例
1.3.4 删除
语法
# 删除表
drop table 表名;
示例
1.4 数据操作(DML)
1.4.1 新增
语法
# 新增表数据
insert into 表名(字段1,···,字段n) values(值1,···,值n)
示例
注意
① 字段与值要一一对应
② 当省略字段时 默认为所有字段添加数据
③ 除数字,其他类型都需要引号(单双皆可)
1.4.2 复制
# 将表2复制到表1(仅有结构)
create table 表1 like 表2;
# 复制表结构和数据
create table 新表 select * from 被复制表;
1.4.3 删除
语法
# 只当条件删除数据
delete from 表名 where 条件;
示例
注意
① 不加条件则删除表中所有数据
② 删除所有数据一般使用 :TRUNCATE TABLE 表名; (删除表后创建一个一摸一样的表)
1.4.4 修改
语法
update 表名 set 列名1 = 值1,···,列名n = 值n where 条件;
示例
注意
① 不加条件则修改所有数据
1.5 数据查询
1.5.1 基础查询
语法
# 查询表中所有数据
select * from 表名;
# 查询指定列数据
select 字段1,···,字段n from 表名;
# 去除重复数据
select distinct 列名 from 表名;
示例
注意
① 如果字段为空可以使用 ifnull(1,2) 替换 1:需要判断的字段;2:为空后替代的值。
⑤ 可以使用 AS 给字段起别名,方便查看,其中 AS 可以省略。
1.5.2 条件查询
语法
# 条件查询
select * from 表名 where 条件;
运算符
符号 | 描述 | 备注 |
---|---|---|
= | 等于 | |
<>, != | 不等于 | 不推荐使用 != |
> | 大于 | |
< | 小于 | |
<= | 小于等于 | |
>= | 大于等于 | |
BETWEEN | 在两值之间 | >= min && <= max |
NOT BETWEEN | 不在两值之间 | |
IN | 在集合中 | |
NOT IN | 不在集合中 | |
<=> | 严格比较两个 NULL 值是否相等 | 两个操作码均为 NULL 时,其所得值为 1; 而当一个操作码为 NULL 时,其所得值为 0 |
LIKE | 模糊匹配 | |
REGEXP 或 RLIKE | 正则式匹配 | |
IS NULL | 为空 | |
IS NOT NULL | 不为空 |