4.四大类(DDL、DML、DQL、DCL)

4.四大类(DDL、DML、DQL、DCL)

4.1 DDL(数据定义语言)

注意:[…]为可选。

数据库操作

#查询所有数据库
show databases;

#查询当前数据库
select database();

#创建数据库
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

#删除数据库
drop database [if exists] 数据库名;

#使用数据库
use 数据库名;

查询表操作

#查询当前数据库所有表
show tables;

#查询表结构
desc 表名;

#查询指定表的建表语句
show create table 表名;

创建表操作

#创建表
create table 表名(
	字段1 字段1类型[comment 字段1注释],
    字段2 字段2类型[comment 字段3注释],
    字段3 字段3类型[comment 字段3注释]
)[comment 表注释];

修改表中字段

#添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释][约束];

删除表中字段

#删除表字段
alter table 表名 drop 字段名;

删除表

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

#删除指定表,并重新创建该表
truncate table 表名;

4.2 DML(数据操作语言)

插入数据

#给指定字段添加数据
insert into 表名(字段名1,字段名2)
values
(值1,值2);

修改数据

#修改数据
update 表名 
set 字段名1 = 值1,字段名2 = 值2 
[where 条件];

删除数据

#删除数据
delete 
from 表名 
[where 条件];

4.3 DQL(数据查询语言)

基本查询

#查询多个字段
select 字段1,字段2,字段3 
from 表名;

#查询全部字段
select * 
from 表名;

设置别名

#设置别名
select 字段1 as "别名1",字段2 as "别名2" 
from 表名;

去除重复记录

select distinct 字段列表 
from 表名;

条件查询

#按条件查询
select 字段列表 
from 表名 
where 条件列表;

聚合查询

1.介绍:将一列数据作为一个整体,进行纵向计算。

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
#求员工表中的平均年龄
select avg(emy_age)
from tb_emy

分组查询

#语法
select 字段列表 
from 表名 
[where 条件] 
group by 分组字段名 
[having 分组后的过滤条件];
#查询员工表中不同部门的人数
select dept_id,count(*)
from tb_emy
group by dept_id

where 与 having区别:

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

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

排序查询

#语法
select 字段列表 
from 表名 
order by 字段1 排序方式1,字段2 排序方式2;
#查询员工表中员工工资并按年龄降序排序
select emy_name,emy_age,emy_money
from tb_emy
order by emy_age desc

排序方式

①ASC:升序(默认)

②DESC:降序

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

分页查询

#语法
select 字段列表
from 表名
limit 起始索引,查询记录数;
# 查询第一页员工信息,每页有两条
select * 
from tb_emy
limit 0,2;
# 查询第二页员工信息,每页有两条
select * 
from tb_emy
limit 2,2;

①起始索引式从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数。

②分页查询是数据库的方言,不同的数据库有不同的实现,MySql是limit。

③如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

执行顺序

在这里插入图片描述

4.4 DCL(数据控制语言)

用户管理

#查询用户
user mysql;
select * from user;

#创建用户
create user '用户名'@'主机名' identified by '密码';

#修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

#删除用户
drop user '用户名'@'主机名';

权限控制

#查询权限
show grants for '用户名'@'主机名';

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

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

  • 20
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值