SQL分类:
1) ddl【definition】:数据定义语言,定义数据库对象【数据库/表/列】等。create, drop, alter等
2) dml【manipulation】:数据操作语言,对表进行增删改,insert, delete, update等
3) dql【query】:数据查询语言,【查询】,select, where等
4) dcl:
数据库架构

ddl:操作数据库/表
1. 操作数据库:c-r-u-d
1) create:创建
* 创建数据库:
create database 数据库名;
* 创建数据库,判断不存在,再创建:
create database if not exists 数据库名;
* 创建test数据库,判断是否存在,并制定字符集为gbk:
create database if not exists test character set gbk;
2) retrieve:查询
* 查询所有数据库的名称:
show databases;
3) update: 修改
* 修改数据库的字符集:
alter database 数据库名 character set 字符集名称
4)delete:删除
* 删除数据库:
drop database 数据库名
*判断数据库存在,存在再删除:
drop database if exists 数据库名
2. 操作表:c-r-u-d
1) create:创建表
* create table 表名 (
列名 数据类型,
列名 数据类型,
......
列名 数据类型
);
注意:最后一项不需要加逗号。
数据类型:int,double,date,datetime,timestamp,varchar
* 复制表:create table 表名 like 被复制的表名;
2) retrieve:查询
* 查询某个数据库中所有表的名称:
show tables;
* 查询表结构
desc 表名
3) update: 修改
*修改表名:
alter table 表名 rename to 新的表名;
*添加一列:
alter table 表名 add 列名 数据类型;
*修改列名称、列的数据类型:
alter table 表名 change 列名 新列名 新列的数据类型;
alter table 表名 modify 列名 列的数据类型;
*删除列:
alter table 表名 drop 列名;
*修改表的字符集:
alter table 表名 character set 字符集名称;
4) delete:删除
*删除表:
drop table 表名;
*判断存在删除表
drop table if exists 表名;
dml:增删改表中数据
1. 添加数据
* insert into 表名 (列名,列名2,...,列名n)values(值,值2,...,值n);
**注意:列名和值要一一对应。
2. 删除数据
* delete from 表名 [where 条件]
# 如果不加条件,则删除表中所有记录。
# 如果要删除所有记录,推荐使用truncate table 表名;不推荐使用delete from table 表名。
3. 修改数据
* update 表名 set 列名1=值1,列名2=值2,...[where 条件];
# 如果不加条件,则会修改表中所有记录。
dql :查询表中记录
1. 基础语法:
* select 字段 from 表名 where 条件 group by 分组字段
having 分组之后的条件 order by 排序 limit 分页限定;
* 执行顺序:from——where——group by——having——select——order by——limit
1)基础查询
*去除重复:distinct
2)条件查询:where+条件
*like模糊查询:_单个任意字符,%多个任意字符
3)省略
杂七杂八
如何计算用户留存率 用户留存理解
SQL如何求解用户连续N天登录
2021新函数filter 和unique 去除重复计数
行列转换