mysql学习——SQL中的DQL和DCL

SQL中的DQL和DCL

  • DQL
    • 基本查询
    • 条件查询
    • 聚合函数
    • 分组查询
    • 排序查询
    • 分页查询
  • DCL
    • 管理用户
    • 权限控制

学习黑马MySQL课程,记录笔记,用于复习。

DQL

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

基本查询

#1.查询多个字段
select 字段1, 字段2, 字段3 ... from 表名 ;
select * from 表名 ;
#2.字段设置别名
select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] ... from 表名;
select 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... from 表名;
#去重
select distinct 字段列表 from 表名;

条件查询

select 字段列表 from 表名 where 条件列表;

条件列表(除大于小于):

比较运算符功能
<> 或 !=不等于
between … and …在某个范围之内
in()in后列表内任一值
like 占位符_单个字符 , % 任意字符
is null为空
#查询姓名为两个字的员工信息
select * from emp where name like '__';
#查询身份证号最后一位是X的员工信息
select * from emp where idcard like '%X';

聚合函数

将一列数据作为一个整体,进行纵向计算
常见的聚合函数(null值不参与计算):

count统计数量
max最大值
min最小值
avg平均值
sum求和
select 聚合函数(字段列表) from 表名;
select count(*) from emp; -- 统计总记录数
select count(idcard) from emp; -- 统计idcard字段不为null的记录数

分组查询

select 字段列表 from 表名 [ where 条件 ] group by 分组字段名 [having 分组后过滤条件];

where与having区别:

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;having是分组之后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,having可以。
    注意事项:
    • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
    • 执行顺序: where > 聚合函数 > having 。
    • 支持多字段分组, 具体语法为 : group by columnA,columnB
#根据性别分组 , 统计男性员工 和 女性员工的数量
select gender, count(*) from emp group by gender ;
#查询年龄小于45的员工, 并根据工作地址分组 , 获取员工数量大于等于3的工作地址
#1.查询年龄小于45的员工数量
select count(*) from emp where age < 45;
#2.根据工作地址分组,并把count(*)起别名address_count
select workaddress,count(*) address_count from emp where age < 45 group by workaddress;
#3.获取员工数量大于等于3的工作地址
select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

排序查询

#多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;

排序方式:

  • ASC:升序(默认值)
  • DESC:降序
select * from emp order by age asc , entrydate desc;

分页查询

select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
  • 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。
#查询第1页员工数据, 每页展示10条记录
select * from emp limit 10;
#查询第2页员工数据, 每页展示10条记录 -----> (页码-1)*页展示记录数=(2-1)*10=10
select * from emp limit 10,10;
#查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name , age from emp where age <= 35 order by age asc , entrydate desc;
#查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序
#1.查询性别为男,且年龄在20-40 岁(含)以内的员工
select * from emp where gender = '男' and age between 20 and 40
#2.对查询的结果按年龄升序排序,年龄相同按入职时间升序排序,前5个员工信息
select * from emp where gender = '男' and age between 20 and 40 order by age asc, entrydate asclimit 5;

执行顺序: 表–>条件–>分组–>返回字段–>排序–>分页
在这里插入图片描述

DCL

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

管理用户

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

在这里插入图片描述
Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。
User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。

#创建用户
create user '用户名'@'主机名' identified by '密码';
create user 'sxl'@'%' identified by '123456';
#修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password BY '新密码' ;
#删除用户
drop user '用户名'@'主机名' ;

在这里插入图片描述

权限控制

权限说明
all所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop删除数据库/表/视图
create创建数据库/表
#查询权限
show grants for '用户名'@'主机名' ;
#授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
grant all on test.* to 'sxl'@'%';
#撤销权限
reveke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity-重写默认配置

重写UserDetailService组件 1.注入Bean的方式 /*** author: coffee* date: 2024/6/22 21:22* description: 重写springsecurity默认组件&#xff1a;注入Bean的方式*/Configuration public class ProjectConfig {/*** 重写userDetailsService组件*/Beanpublic UserDetailsSer…

【LC刷题】DAY12:226 144 94 145

【LC刷题】DAY12&#xff1a;226 144 94 145 文章目录 【LC刷题】DAY12&#xff1a;226 144 94 145226. 翻转二叉树 [link](https://leetcode.cn/problems/invert-binary-tree/)101. 对称二叉树 [link](https://leetcode.cn/problems/invert-binary-tree/description/)104. 二叉…

逆向学习数据库篇:多表查询技术详解

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/081e020c1f29​​ 在数据库管理中&#xff0c;多表查询是一种常见的操作&#xff0c;它允许我们从多个相关联的表中检索数据。这种查询通常涉及使…

Flowable更改默认数据库H2到Mysql数据库

Flowable更改默认数据库H2到Mysql数据库 1、下载flowable安装包&#xff0c;从官方下载&#xff0c;下载后解压缩 2、将flowable-ui.war包拷贝到tomcat里面的webapps目录&#xff0c;tomcat的安装在此就不熬术了。 3、此时启动tomcat&#xff0c;flowable-ui会使用默认的H2…

碳+绿证如何能源匹配?考虑碳交易和绿证交易制度的电力批发市场能源优化程序代码!

前言 近年来&#xff0c;面对日益受到全社会关注的气候变化问题&#xff0c;国外尤其是欧美等发达国家和地区针对电力行业制定了一系列碳减排组合机制。其中&#xff0c;碳排放权交易&#xff08;以下简称“碳交易”&#xff09;和绿色电力证书交易&#xff08;以下简称“绿证…

【Docker】Docker简介_运行原理

1、简介 1.1基本概念 容器&#xff1a;容器是Docker的基本部署单元。它是一个轻量级的、独立的运行时环境&#xff0c;包含应用程序及其相关依赖。容器利用Linux内核的命名空间和控制组技术&#xff0c;实现了隔离性和资源管理&#xff0c;使得应用程序在不同的容器中运行不会…

ITREX大语言模型量化-优化工具

一、定义 定义demo 案例 二、实现 定义 ITREX 是Intel 提出的量化加速工具&#xff0c;https://github.com/intel/intel-extension-for-transformers 本实验基于英特尔大模型优化加速技术对大模型预测进行加速&#xff0c;常见的优化优化技术包括&#xff1a;量化&#xff08…

C++并发之协程实例(三)(co_await)

目录 1 协程2 实例3 运行 1 协程 协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的&#xff1a;它们通过返回到调用方来暂停执行&#xff0c;并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码&#xff08;例如&#xff0c;在没有显式回调…

前端面试题日常练-day81 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 在Sass中&#xff0c;以下哪个功能用于创建一个颜色列表&#xff1f; a) extend b) for c) import d) color Sass中的父选择器&#xff08;Parent Selector&#xff09;是通过以下哪个符号表示的&…

【Oracle】实验一 安装和使用Oracle数据库

【实验目的】 掌握Oracle软件安装过程&#xff0c;选择安装组件掌握建立Oracle数据库&#xff0c;配置网络连接使用SQL*Plus&#xff0c;登录到实例和数据库掌握命令方式的关闭和启动实例及数据库 【实验内容】 安装Oracle19c&#xff0c;记录安装过程。切记&#xff1a;创建…

自然语言处理学习路线(1)——NLP的基本流程

NLP基本流程 【NLP基本流程】 0. 获取语料 ——> 1. 语料预处理 ——> 2. 特征工程&选择 ——> 3. 模型训练 ——> 4. 模型输出&上线 【NLP基本流程图】 Reference 1. 自然语言处理(NLP)的一般处理流程&#xff01;-腾讯云开发者社区-腾讯云 2. …

js函数声明与函数表达式的区别

在JavaScript中&#xff0c;函数可以通过函数声明和函数表达式两种方式进行定义。 函数声明是通过关键字function和函数名来定义的&#xff0c;例如&#xff1a; function add(a, b) {return a b; }函数表达式是将函数赋值给一个变量或者存储在一个对象的属性中&#xff0c;…

数组初了解

一.引入 现在&#xff0c;有一个场景需求&#xff0c;我们需要将10个数字存入&#xff0c;也就是10个变量。但如果场景需求改变&#xff0c;是用户输入了10个数&#xff0c;让我们求里面的最大值。那10个变量就显得过于臃肿。 我们需要一个新的数据结构&#xff0c;来装一系列…

贪心推公式——AcWing 125. 耍杂技的牛

贪心推公式 定义 贪心算法是一种在每一步选择中都采取在当前状态下最优的选择&#xff0c;希望通过局部的最优选择来得到全局最优解的算法策略。 运用情况 问题具有最优子结构&#xff0c;即一个问题的最优解包含其子问题的最优解。可以通过局部最优决策逐步推导到全局最优…

stm32学习笔记---GPIO输入(理论部分)

目录 GPIO输入模式下的硬件和电路 按键原理 传感器原理 什么是上下拉电阻&#xff1f; 运算放大器当做比较器 按键的硬件电路 传感器的硬件电路 STM32用到的C语言知识 STM32中的C语言数据类型 C语言中的宏定义 typedef和define的区别是什么&#xff1f; C语言的枚举…

计算机基础之:硬件系统的性能评估标准

服务器时钟的性能通常涉及多个方面&#xff0c;主要包括准确性、稳定性、以及对系统性能的影响。以下是一些关键指标和衡量方法&#xff1a; 准确性&#xff1a; 时间偏移&#xff1a;测量服务器时钟与一个可靠时间源&#xff08;如GPS时间、原子钟或NTP服务器&#xff09;之间…

Python itertools模块

itertools 是 Python 标准库中的一个模块&#xff0c;它提供了许多用于操作迭代对象的工具函数。这些函数可以高效地生成迭代器&#xff0c;用于处理序列和集合&#xff0c;特别适用于循环和组合数学。以下是 itertools 模块中一些常用函数的概述&#xff1a; 一、无限迭代器 i…

如何理解广角镜头和长焦镜头的区别。

为什么广角镜头的视野会比长焦镜头的视野大呢&#xff1f; 我之前用等光程解释了景深&#xff0c;也解释了为什么焦距越远&#xff0c;成像越大&#xff0c;但是从来没有提到过视野范围这个概念。实际上在我之前建立的数学模型中&#xff0c;物曲面S是无限大的&#xff0c;像曲…

保护您的机密:Foxit Reader PDF文件加密与解密全攻略

保护您的机密&#xff1a;Foxit Reader PDF文件加密与解密全攻略 引言 在数字化时代&#xff0c;保护敏感信息的安全比以往任何时候都更为重要。PDF文件作为一种流行的文档格式&#xff0c;广泛用于存储和交换数据。Foxit Reader不仅提供了阅读PDF的功能&#xff0c;还具备强…

掌握Emacs Verilog Mode:高效硬件开发指南

掌握Emacs Verilog Mode&#xff1a;高效硬件开发指南 引言 在硬件开发领域&#xff0c;Emacs Verilog Mode是一个强大的工具&#xff0c;它为Verilog硬件描述语言提供了专业的编辑支持。通过与Emacs的其他模式和工具集成&#xff0c;Verilog Mode不仅增强了代码编辑的效率&a…