0%

MySQL-复习

MySQL复习

DDL(操作数据库)

  1. C(Create):创建

    1
    2
    create database 数据库名称;
    create database 数据库名称 character set 字符集;
  2. R(Retrieve):查询

    1
    2
    3
    4
    -- 查询所有数据库的名称
    show databases;
    -- 查询某个数据库的字符集:查询某个数据库的创建语句
    show create database 数据库名称;
  3. U(Update):修改

    1
    alter database 数据库名称 character set 字符集名称;
  4. D(Delete):删除

    1
    drop database 数据库名称;
  5. 使用数据库

    1
    2
    select database(); -- 查询当前正在使用的数据库名称
    use 数据库名称; -- 使用数据库
  6. C(Create):创建

    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table 表名(
    属性 类型,
    属性 类型
    );
    -- 类型:
    -- 整型->int
    -- 小数->double
    -- 字符串->varchar(n)
    -- 时间->date(日期,yyyy-MM-dd)、datetime(yyyy-MM-dd HH:mm:ss)、timestamp(时间戳类型,yyyy-MM-dd HH:mm:ss,默认使用当前系统时间自动赋值)
  7. R(Retrieve):查询

    1
    2
    show tables; -- 查询数据库中所有的表名称
    desc 表名; -- 查询表结构
  8. U(Update):修改

    1
    2
    3
    4
    5
    6
    alter table 表名 rename to 新表名; -- 修改表名
    alter table 表名 character set 字符集名称; -- 修改表的字符集
    alter table 表名 add 列名 数据类型; -- 添加一列
    alter table 表名 change 列名 新列名 新数据类型; -- 修改列名称 类型
    alter table 表名 modify 列名 新数据类型;
    alter table 表名 drop 列名; -- 删除列
  9. D(Delete):删除

1
drop table 表名;

DML(操作表中数据)

  1. 添加数据

    1
    insert into 表名(列名1,列名2,...) values(值1,值2,...);
  2. 删除数据

    1
    2
    delete from 表名 [where 条件]; -- 删除符合条件的数据,如果不加条件,则删除表中所有数据
    truncate table 表名; -- 删除表,然后再创建一个一模一样的空表
  3. 修改数据

    1
    update 表名 set 列名=值1,列名=值2,...[where 条件]; -- 修改符合条件的数据,如果不加条件,则修改表中所有数据

DQL(查询表中的记录)

1
2
select * from 表名; -- 查询表中所有数据
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序字段 limit 分页限定;

基础查询

1
2
3
select distinct 字段 from 表名; -- 使用distinct去重
select 字段+ifnull(可能为NULL的字段,0) as 别名from 表名; -- 计算列值,如果有NULL 参与的运算,结果都为NULL,可使用ifnull解决,使用as起别名
-- ifnull(表达式1,表达式2):如果表达式1为null,则用表达式2替换

条件查询

1
2
3
4
5
6
select * from 表名 where 条件;
-- where 子句后跟条件
-- 运算符,>、<、>=、<=、=、!=、<>、&&、and、between and、or、||、in(集合)、like
-- null不能使用=判断,而是用IS NULL 或 IS NOT NULL
-- like:模糊查询
-- 占位符:_(单个任意字符),%(多个任意字符)

排序查询

1
select * from 表名 order by 排序字段1 排序方式1,排序字段2 排序方式2...; -- 按排序字段排序,排序方式:ASC(升序,默认),DESC(降序),当有多个条件时,当前面条件值一样时,才使用后面条件

聚合函数

1
2
3
4
5
6
-- count:计算个数
-- max:计算最大值
-- min:计算最小值
-- sum:计算和
-- avg:计算平均值
select count(列名) from 表名; -- 会排除空值

分组查询

1
2
3
4
select * from 表名 group by 列名; -- 按列名分组,分别查询;
-- where 和 having的区别?
-- where 在分组之前限定,如果不满足条件,则不参与分组,后不可跟聚合函数
-- having在分组之前限定,如果不满足条件,则不会被查询出来,后可跟聚合函数判断

分页查询

1
2
select * from 表名 limit 开始的索引,每页查询的条数;
-- 公式:开始的索引=(当前的页码-1)×每页显示的条数