MySQL语法2

news2024/12/28 19:10:31

DQL语句介绍

DQL是数据查询语言,用来查询数据库中表的记录

DQL-基本查询语句

 SELECT

字段列表

 FROM

表名列表

 WHERE

条件列表

 GROUP BY

分组字段列表

 HAVIMG

分组后条件列表

 ORDER BY

排列字段列表

 LIMIT

分页参数

讲解过程:基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询

DQL-基本查询

  1. 查询多个字段

SELECT 字段1,字段2,字段3,... FROM表名;

SELECT name,wordno

FROM emp;

SELECT * FROM 表名;(查询返回所有字段)

SELECT *

FROM emp

  1. 设置别名

设置别名SELECT 字段1[AS 别名],字段2[AS 别名]。。。FROM 表名;

SELECT entrydate as '入职日期'

FROM emp;

  1. 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

SELECT DISTINCT entrydate as '入职日期'

FROM emp;

DQL-条件查询

1.语法

SELECT * FROM 表名;(查询返回所有字段)

  1. 条件

比较运算符

功能

>

大于

>=

大于等于

<

小于

<=

小于等于

=

等于

<>或!=

不等于

BETWEEN...AND...

在某个范围之类(含最小值、最大值)

IN(...)

在in之后的列表中的值、多选一

LIKE占位符

模糊匹配(_匹配单个字符,%匹配日任意个字符)

IS NULL

是NULL

逻辑运算符

功能

AND或 &&

并且(多个条件同时成立)

OR或||

或者(多个条件任意一个成立)

NOT或!

非,不是

实例代码:

查询年龄小于20的员工姓名:

SELECT name
FROM emp
WHERE age<20;

查询年龄小于等于20 的员工姓名:

SELECT *
FROM emp
WHERE age<=20;

查询身份证号为空的员工:

SELECT *
FROM emp
WHERE idcard is null;

查询15到20岁之间的员工(不包含):

SELECT *

FROM emp

WHERE 15<age AND age<20;(开区间)

查询15到20岁之间的员工(包含)SELECT *

FROM emp

WHERE age BETWEEN 15 AND 20(含最小值、最大值)

查询15岁、20岁、23岁的员工SELECT * FROM emp WHERE age=18 || age = 20 || age = 23; 与IN()替换效果相同:SELECT *  FROM emp  WHERE age IN(18,20,23);

查询姓名为三个字的员工信息:

SELECT *

FROM emp

WHERE name like '___';

查询身份证号最后一位为6的员工信息:

SELECT *

FROM emp

WHERE idcard like '%6';

LIKE占位符:模糊匹配(_匹配单个字符,%匹配日任意个字符)

DQL-聚合函数

  1. 聚合函数:将一列数据作为一个整体,进行纵向计算
  2. 常见聚合函数:

函数

功能

Count

统计数量

Max

最大值

Min

最小值

Avg

平均值

Sum

求和

  1. 语法:

SELECT 聚合函数(字段列表) FROM 表名;

实例:

求员工总人数:

SELECT COUNT(*) as'总人数'

FROM emp;

求员工平均年龄:

SELECT avg(age) AS '员工平均年龄'

FROM emp;

求员工中最大年龄:

SELECT max(age) as '最大年龄'

FROM emp;

求员工中最小年龄:

SELECT min(age) AS '最小年纪'

FROM emp;

求员工中男生年龄总和:

SELECT sum(age) AS '男生年龄之和'

FROM emp

WHERE gender = '男';

DQL-分组查询

  1. 语法:

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

实例:

按照性别分组,显示各个性别人数;

SELECT gender,COUNT(*) as '人数'

FROM emp

GROUP BY gender;

按照性别分组,显示各个性别平均年龄;

SELECT gender ,avg(age) as '平均年龄'

FROM emp

GROUP BY gender;

筛选年龄30以下,按照年龄分组,展示人数大于等于2的:

SELECT age , count(*)

FROM emp

WHERE age <30

GROUP BY age

HAVING count(*)>=2;

  1. WHERE和HAVING区别

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

>判断条件不同:WHERE不能对聚合函数进行判断,而HAVING可以。

注意:

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

DQL-排序字段列表

  1. 语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

  1. 排序方式:

>ASC:升序(默认值)

>DESC:降序

实例:

按员工年龄大小正序排列

SELECT *

FROM emp

ORDER BY age ;

按入职时间长短排序

SELECT *

FROM emp

ORDER BY entrydate;

按年龄大小排序,相同年龄按入职时间倒叙排列

SELECT *

FROM emp

ORDER BY age ,entrydate DESC;

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

DQL-分页查询(方言:不同数据库语法不同)

  1. 语法

SELECT 字段列表 FROM 表名LIMIT 起始索引,查询记录数;

实例:

查询第一页,每页展示3条数据

SELECT *

FROM emp

LIMIT 0,3;

查询第二页,每页展示3条数据

SELECT *

FROM emp

LIMIT 3,3;

查询第三页,每页展示3条数据

SELECT *

FROM emp

LIMIT 3,3;

注意:

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

分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT

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

DQL-练习:

查询性别为男,年龄为20,21,23的员工;

SELECT *

FROM emp

WHERE gender = '男' AND age IN (20,21,23);

查询年纪20到40之间,姓名为三个字的男生;

SELECT *

FROM emp

WHERE gender= '男'AND name like '___' AND age BETWEEN 20 and 40;

查询年龄小于60,的男女数量;

SELECT gender,count(*)

FROM emp

WHERE age <60

GROUP BY gender;

查询所有小于等于35岁员工的姓名和年纪,并对结果按年龄升序排序,如果年纪相同按入职时间降序排列;

SELECT *

FROM emp

WHERE age <= 35

ORDER BY age ASC, entrydate DESC;

查询性别男,且年龄在20-40岁(含)以内的五个员工,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。

SELECT *

FROM emp

WHERE age BETWEEN 20 and 40 AND gender = '男'

ORDER BY age ,entrydate

LIMIT 0,5;

DQL语句-执行顺序

 

 

MySQL-DCL语句

介绍:DCL数据控制语言,用来管理数据库用户、控制数据库的访问权限。

DCL-管理用户:

  1. 1.查询用户表

  USE mysql ;

  SELECT * FROM user;

  1. 创建用户:

CREATE USER 用户名@主机名 IDENTIFED BY 密码

  1. 修改用户密码:

 ALTER USER 用户名@主机名 IDEBTIFIED WITH mysql_native_passwoerd BY 新密码

  1. 删除用户:

DROP USER 用户名@主机名;

查询用户表:

USE mysql;

SELECT * FROM user;

创建用户:

CREATE user 'GUI1'@'%' identified by '123456';

修改用户密码:

ALTER USER 'GUI1'@'%' identified with mysql_native_password by '1234';

删除用户:

drop user 'GUI1'@'%';

DROP USER 'GUI'@'localhoust';

注意:

主机名可以使用%统配。

这类SQL开发人员操作的比较少,主要DBA数据库管理员使用;

DCL-权限控制

权限

说明

ALL,ALL PRIVILEGES

所有权限

SELECT

查询数据

INSERT

插入数据

UPDATE

修改数据

DELETE

删除数据

ALTER

修改表

DROP

删除数据库/表/视图

CREATE

创建数据库/表

其他权限描述及其含义,可以参考官方文档

  1. 查询权限:

SHOW GRANTS FOR 用户名@主机名;

  1. 授予权限:

GRANT 权限列表 ON 数据库名.表名 TO 用户名@主机名;

GRANT ALL on sjk01.* TO 'GUI1'@'%';

  1. 撤销权限:

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@主机名

revoke all on sjk01.* from 'GUI1'@'%';

查询权限:

SHOW GRANTS FOR GUI1;

授予权限

GRANT ALL on sjk01.* TO 'GUI1'@'%';

撤销权限:

revoke all on sjk01.* from 'GUI1'@'%';

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

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

相关文章

Dockerfile构建apache镜像

创建工作目录 [rootlocalhost ~]# mkdir tomcat [rootlocalhost ~]# cd tomcat/ 编写配置文件 [rootlocalhost tomcat]# cat Dockerfile #基于的基础镜像 FROM centos:7 #镜像作者信息 MAINTAINER liu <wewed163.com> #安装相关依赖包 RUN yum install -y wget net-…

SpringBoot之logback-spring.xml详细配置

《logback官网》 各种指导文件&#xff0c;有空自己去看&#xff0c;比如&#xff1a;我们需要调整的是布局&#xff0c;直接看Layouts。 pom.xml <!-- 环境配置 --><profiles><profile><id>dev</id><properties><spring.profiles.a…

提交项目纳品数据时,生成目录结构树文档readme.txt方法

之前在日企工作时&#xff0c;学到了一个生成目录结构树的方法。最近&#xff0c;我提交了项目纳品压缩包给客户&#xff0c;在里面附带了一个 "readme.txt" 文档&#xff0c;其中包含了整个项目的目录结构。客户对这个方法十分赞赏&#xff0c;分享一下方法。 在提交…

一文讲清多线程与多线程同步

1 多线程 1.1 线程的概念 十多年前&#xff0c;主流观点主张在可能的情况下优先选择多进程而非多线程&#xff0c;如今&#xff0c;多线程编程已经成为编程领域的事实标准。多线程技术在很大程度上改善了程序的性能和响应能力&#xff0c;使其能够更加高效地利用系统资源&…

Python删除txt文件中特定字符

这个问题居然csdn没一个人写&#xff01;我的半天时间都浪费在这破玩意上&#xff0c;但是说白了是因为我太菜&#xff0c;毁灭吧&#xff01; 我要搞关键点检测&#xff0c;但是问题在于我的关键点个数每张图不一样&#xff0c;就导致我转出来的txt后面关键点不够了他就被补了…

类中静态代码块、实例代码块、创建实例的执行顺序——阿里面试题

原题代码&#xff1a; package com.example.demo3;public class InitializeDemo {private static int k 1;private static InitializeDemo t1 new InitializeDemo("t1");private static InitializeDemo t2 new InitializeDemo("t1");private stati…

【蓝图】p45,多个角色控制权切换

p45&#xff0c;多个角色控制权切换 p45&#xff0c;多个角色控制权切换创建新玩家方法1方法2 控制权切换MultiGate按顺序指向一系列的蓝图引脚possess&#xff08;控制&#xff09; 切换时摄像机过渡效果Set View Target with Blend(使用混合设置视图目标)折叠到宏&#xff0c…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【二】

文章目录 SSM--基础环境搭建【二】项目介绍项目功能/界面● SSM 整合项目界面 项目全局配置web.xmlSpringMVC 配置 SSM–基础环境搭建【二】 项目介绍 项目功能/界面 ● SSM 整合项目界面 项目全局配置web.xml 配置furns_ssm\src\main\webapp\WEB-INF\web.xml , 和项目全局…

【搜索】DFS迭代加深

目录 迭代加深例题加成序列题意思路代码 迭代加深 搜索时可能会遇到这样一种情况&#xff1a; 明明答案就在第一层&#xff01;但是因为DFS的缘故浪费很多时间 迭代加深就是用来解决这个问题的算法 定义一个 max_depth &#xff0c;每次搜索时&#xff0c;超过这一层就全部剪…

Spring事务(声明式事务)(Spring的事务,Spring隔离级别,事务传播机制)

目录 一、什么是事务&#xff0c;为什么要用事务 二、Spring声明式事务 &#x1f345; 1、Transactional的使用 &#x1f388; 事务回滚 &#x1f388;注意&#xff1a;异常被捕获&#xff0c;不会发生事务回滚 &#x1f345; 2、Transactional 作⽤范围 &#x1f345; …

硬盘的分类

目前常见的硬盘种类主要有以下2种&#xff1a; 机械硬盘&#xff08;HDD&#xff09; 机械硬盘&#xff08;HDD&#xff09;是一种利用旋转磁盘和读写头来存储和访问数据的存储设备。它由磁盘、读写头、电机和控制电路等组成&#xff0c;磁盘通常是一种铝合金或玻璃材质的圆盘&…

《HeadFirst设计模式(第二版)》第二章代码——观察者模式

代码文件目录结构&#xff1a; DisplayElement package Chapter2_ObserverPattern.interfaces;/*** Author 竹心* Date 2023/8/2**/public interface DisplayElement {public void display(); }Observer package Chapter2_ObserverPattern.interfaces;/*** Author 竹心* Date…

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

0.版本选择 由于Qt5无法与最新的vs2022兼容&#xff0c;扩展工具中一直显示不可用&#xff0c;所以将vs降级成vs2017。 在安装Qt的过程中&#xff0c;会选择安装Qt套件&#xff0c;其中就的MCVS 2017&#xff0c;说明vs2017是与qt兼容的。 当然也可以用qt creator这一原生IDE。…

PROFINet转Modbus协议转换网关Profinet数据通讯模块

产品概述 你是否曾经遇到过不同网络协议之间的沟通问题&#xff1f;捷米特JM-RTU-PN为你解决这个难题&#xff01; 捷米特JM-RTU-PN是一款数据通讯模块&#xff0c;能够实现PROFINet网络与Modbus网络之间的数据传输。它可以将RS485网络连接到PROFINet网络&#xff0c;并支持不…

《剑指offer》刷题(1)链表篇

class ListNode: def __init__(self, x): self.val x self.next None class Solution: def printListFromTailToHead(self , listNode: ListNode) -> List[int]: #用栈记录遍历的结果&#xff0c;然后返回出栈结果 if listNode is None: return [] stack [] p listNode…

8.2Thread类的常见属性

1. 2.前台线程和后台线程 前台线程:影响进程结束(如果前台线程没有执行完,进程不结束). 后台线程(守护线程):不影响线程结束. 创建线程默认是前台线程. 修改成后台线程:thread.setDaetrue);

33.利用abs 解决绝对值问题(matlab程序 )

1.简述 abs函数的功能是绝对值和复数的模 语法 Y abs(X) 说明 Y abs(X) 返回数组 X 中每个元素的绝对值。如果 X 是复数&#xff0c;则 abs(X) 返回复数的模。 示例 标量的绝对值 y abs(-5) y 5 向量的绝对值 创建实值的数值向量。 x [1.3 -3.56 8.23 -5 -0.01…

ARP断网攻击及防御

ARP断网攻击及防御 攻击防御 攻击 PC1的IP地址 10.9.136.222 PC2的IP地址 10.9.136.55在局域网里通信 需要有IP地址和MAC地址 两台电脑PC1和PC2要想相互通信&#xff0c;PC1在连接PC2的时候&#xff0c;PC1会先查看自己的ARP缓存表&#xff08;命令&#xff1a;arp -a &#xf…

利用鸿鹄可观测性监控Istio Ingress网关

一、需求描述 在上一篇《利用Vector和鸿鹄搭建微服务应用的可观测性平台》中&#xff0c;阐述了微服务的基本概念、优点及如何利用鸿鹄来处理分布式应用的日志。本文将进一步讨论微服务架构面临的问题、服务网格及鸿鹄处理Istio Gateway的独特优势。 1.1 微服务架构面临的挑战 …

学习委员之作业管理系统—前端部分

拯救学习委员之作业管理系统—前端部分 项目背景 学习委员收集作业的过程&#xff0c;繁琐且曲折&#xff0c;作者充分理解并体谅为大家服务的苦逼学习委员&#xff0c;以此为出发点和灵感&#xff0c;设计并开发了此套作业管理系统&#xff0c;希望能帮助各位提高效率&#…