mysql数据库 - 统诉

1、DDL - 数据库操作

show databases;

create database 数据库名

use 数据库名

select database()

drop database 数据库名

2、DDL- 表操作

show tables;

create table

desc 表名

show create table 表名

alter table 表名 add/modify/change/rename

drop table 表名

3、DML - 数据库操作语言

1、添加数据

insert into 表明(字段1, 字段2) values(值1,值2)
2、修改数据

update 表名 set 字段1 = 值1, 字段2 = 值2 where
3、删除数据

delete from 表名 where 条件

DQL - 数据库查询语言

DQL英文全称是Data Query Language(数据库查询语言),数据查询语言,用来查询数据库中表的记录

查询关键字:SELECT

select

字段列表
from

表名列表
where

条件列表
group by

分组字段列表
having

分组后条件列表
order by

排序字段列表
limit

分页参数

查询公司员工的上班地址(不要重复)

select distinct workaddress '工作地址' from emp

  • DQL - 条件查询(where)

  • DQL - 聚合函数(count, max, min, avg, sum)

    1、介绍

    将一列数据作为一个整体,进行纵向计算。

    2、常见的聚合函数

    | 函数 | 功能 |

    |--|--|

    | count |统计数量 |

    | max| 最大值|

    | min|最小值 |

    |avg|平均值|

    |sum| 求和|

  • DQL - 分组查询
    1、语法

    select 字段列表 from 表名 [where 条件] gruop by 分组字段名 [having 分组后过滤条件]
    2、where 与 having 区别

  • 执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

  • 判断条件不同: where 不能对聚合函数进行判断,而having可以。

注意

  • 执行顺序:where > 聚合函数 > having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

DQL - 排序查询

1、语法

select 字段列表 from 表名 order by 字段1,排序方式,字段2,排序方式2;

2、排序方式

  • asc: 升序
  • desc: 降序

注意: 如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。

DQL-分页查询

1、语法

select 字段列表 from 表名 limit 起始索引,查询记录数。

注意

  • 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySql中是limit

DQL - 执行顺序

from

表名列表
where

条件列表
group by

分组字段列表
having

分组后条件列表
select

字段列表
order by

排序字段列表
limit

分页参数

总结

1、DQL语句
select

字段列表 字段名[AS]别名
from

表名列表
where

条件列表【like, between, and, in , and ,or 】
group by

分组字段列表
having

分组后条件列表 分组之后过滤
order by

排序字段列表 升序asc, 降序desc
limit

分页参数

SQL

  • DCL - 介绍

    DCL 英文全称是Data Contro Language(数据控制语言), 用来管理数据库用户,控制数据库的访问权限。

  • DCL - 管理用户

    1、查询用户

    use mysql;

    select * from user;

    2、创建用户

    create user '用户名'@'主机名' IDENTIFIED BY '密码'

    3、修改用户密码

    ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_pasword BY '密码'

    4、删除数据

    DROP USER '用户名'@'主机名'

注意:

  • 主机名可以使用通配符。
  • 这类SQL开发人员操作的比较少,主要DBA使用。

SQL

  • DCL - 权限控制
    MySQL中定义了很多权限,但是常用的有。
权限 说明
ALL 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 修改数据

1、查询权限

show grants for '用户名'@'主机名'

2、授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'

3、撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'

注意:

  • 多个权限之间,使用逗号分割
  • 授权时,数据库名和表名可以使用*进行统配,代表所有。

总结

1、用户管理

create user '用户名'@'主机名' IDENTIFIED BY '密码';

ALTER user '用户名'@'主机名'

drop user '用户名'@'主机名'

2、权限控制

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'

revoke 权限列表 on 数据库.表名 from '用户名'@'主机名'

相关推荐
小苹果135744 分钟前
阿里云mysql数据丢失,如何通过服务器备份在其他服务器上恢复数据,并获取mysql丢失数据,完成mysql数据恢复
服务器·mysql·阿里云
张璐月2 小时前
mysql join语句、全表扫描 执行优化与访问冷数据对内存命中率的影响
数据库·mysql
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
全干engineer4 小时前
ClickHouse 入门详解:它到底是什么、优缺点、和主流数据库对比、适合哪些场景?
数据库·clickhouse
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
慕木兮人可9 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器
{⌐■_■}10 小时前
【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
数据库·分布式·mysql·kafka·go
isNotNullX10 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark