Mysql-DQL查询

目录

1.DQL

基本语法

基本查询

条件查询

聚合函数

分组查询

排序查询

分页查询


1.DQL

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

查询关键字:select

基本语法

SELECT    

        字段列表
FROM    

        表名列表
WHERE    

        条件列表
GROUP  BY    

        分组字段列表
HAVING    

        分组后条件列表
ORDER BY    

        排序字段列表
LIMIT    

        分页参数

基本查询

1.查询多个字段

select  字段1, 字段2, 字段3 ...  from 表名 ;

select  * from 表名;

2.设置别名

select  字段1  [ AS  别名1 ] , 字段2  [ AS  别名2 ]   ...  from 表名;

select  字段1  [ 别名1 ] , 字段2  [ 别名2 ]   ...  from 表名;

3.去除重复记录

select  distinct 字段列表  from 表名;

条件查询

关键字:where

  • 用于检索数据表中符合条件的记录
  • 搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
  • 搜索条件的组成
    • 逻辑操作符
    • 比较操作符

语法:

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

条件:

比较运算符:

操作符名称

语法

描述

IS NULL

a IS NULL

若操作符为NULL,则结果为真

IS NOT NULL

a IS NOT NULL

若操作符不为NULL,则结果为真

BETWEEN

a BETWEEN b AND c

a范围在bc之间则结果为真

LIKE

a LIKE b

SQL模式匹配,若a匹配b,则结果为真

IN

a IN (a1,a2,a3,….)

a等于a1a2…中的某一个,则结果为真

逻辑运算符:

操作符名称

语法

描述

AND&&

a AND b a && b

逻辑与,同时为真,结果才为真

OR||

a OR b a||b

逻辑或,只要一个为真,则结果为真

NOT或!

NOT a !a

逻辑非,若操作数为假,结果则为真

between  and 范围查询

select 字段列1,字段2 ,…from 表名 where  字段x  between  值1 and  值2 

like 模糊查询

  • 与 “ % ” 一起使用,表示匹配 或任意多个字符
  • 与 “ _  ” 一起使用,表示匹配单个字符

eg:

select  *  from user where idcard  like "%X";

in 范围查询

select  字段列1,字段2 ,… from  表名  where  字段x  in ( 1,2,3…) 

NULL空值条件查询

  • NULL代表”无值"
  • 区别于零值0和空符串 ""
  • 只能出现在定义允许为 NULL 的字段
  • 需使用 is null 或 is not null 比较操作符去比较

聚合函数

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

常见的聚合函数

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

语法:

select  聚合函数(字段列表)from 表名;

注意:null值不参与计算

分组查询

关键字:group by

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

 where与having区别:

  1. 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  2. 判断条件不同:where不能对聚合函数进行判断,而having可以。

注意:

  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
  • 执行顺序:where > 聚合函数 > having 
  • 支持多字段分组, 具体语法为 : group by columnA,columnB

eg:

根据性别分组,统计男,女员工数量

select  gender, count(*)  from  emp group by gender ;

根据性别分组 , 统计男性员工 和 女性员工的平均年龄

select  gender, avg(age) from emp group by gender ;

查询年龄小于45的员工 , 并根据工作地址分组 , 获取员工数量大于等于3的工作地址

select workaddress, count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

排序查询

关键字:order by

语法:

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

排序方式:

  • ASC :升序(默认值)
  • DESC :降序

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

eg:根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序

select * from emp order by age asc , entrydate desc;

分页查询

关键字:limit (mysql)

语法:

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

注意事项

  • 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

eg:

查询第1页员工数据, 每页展示10条记录

select * from emp limit 0,10;

select * from emp limit 10;

查询第2页员工数据, 每页展示10条记录 --------> (页码-1)*页展示记录数

select * from emp limit 10,10;

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

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

相关文章

android studio(火烈鸟版本)使用protobuf

一、简介 Protobuf 全称&#xff1a;Protocol Buffers&#xff0c;是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式&#xff0c;类似于我们常用的 xml 和 json。 二、特点 Protobuf 用两个字总结&#xff1a;小&#xff0c;快。用 Protobu…

十大排序算法详解

目录 1. 冒泡排序 a. 思路 b. code 2. 插入排序 a. 思路 b. code 3. 希尔排序【插入排序plus】 a. 思路 b. code 4. 选择排序 a. 思路 b. code 5. 基数排序 a. 前置知识 b. 思路 c. code 6. 计数排序 a. 思路 b. code 7. 桶排序&#xff08;计数排序plus &…

Could not resolve placeholder

本质原因&#xff1a;项目启动未扫描到该配置&#xff0c;一般来说是配置不对 检查方向 1、检查编译后的target包里是否有该配置所在的文件 如果不在就clear&#xff0c;重新编译启动再去检查 2、检查启动的环境是否匹配 编译后的target包下的配置文件名称是否跟启动类的环境…

【如何训练一个中译英翻译器】LSTM机器翻译模型部署之ncnn(python)(四)

ncnn&#xff1a;https://github.com/Tencent/ncnn 1、.h5模型保存为TFSaveModel格式 import tensorflow as tf from keras.models import load_model# 加载Keras模型 model load_model(encoder_model.h5)# 转换为SavedModel类型 tf.saved_model.save(model, TFSaveModel)2、…

Linux--assert函数在debug和release下的区别

在debug模式下断言才有效&#xff0c;而在release版本下&#xff0c;断言就无效了 在debug模式下&#xff0c;assert函数用于检查条件是否为真&#xff0c;如果条件为假&#xff0c;则会输出相应的错误信息&#xff0c;并停止程序执行。而在release模式下&#xff0c;assert函数…

redis的常用命令和数据结构

目录 redis的基本特征 Redis操作命令行 redis的数据结构 Redis的基本特征 键值型&#xff0c;value支持多种不同的数据结构&#xff0c;功能丰富 单线程&#xff0c;每个命令具备原子性 低延迟&#xff0c;速快&#xff08;基于内存&#xff0c;IO多路复用&#xff0c;良好…

无涯教程-jQuery - html( val )方法函数

html(val)方法设置每个匹配元素的html内容。此属性在XML文档上不可用。 html( val ) - 语法 selector.html( val ) 这是此方法使用的所有参数的描述- val - 这是要设置的html内容。 html( val ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <…

【OpenCV】windows环境下,java OpenCV环境搭建,java 也可以实现opencv的功能了!opencv自由了

目录 1. 下载opencv 2. 安装opencv 目录 1. 下载opencv 2. 安装opencv 3. dll文件的导入配置 dll文件的导入&#xff1a; &#xff08;C的类库文件&#xff09;&#xff0c;opencv是c开发的类库&#xff0c;java语言要调用其中的方法&#xff0c;所以依赖了dll文件 3.1…

前端框架学习-Vue(一)

Vue简介 百度百科上关于vue的词条&#xff0c;说vue时一款渐进式JavaScript框架&#xff0c; 简单来说,渐进式是一种设计理念,即在不失去当前功能的前提下,逐步添加新的特性。 说明它时一直在进行维护的。 Vue3&#xff0c;中使用*.vue作为文件后缀&#xff0c;html&#xff0c…

解决安装依赖时报错:npm ERR! code ERESOLVE

系列文章目录 文章目录 系列文章目录前言一、错误原因二、解决方法三、注意事项总结 前言 在使用 npm 安装项目依赖时&#xff0c;有时会遇到错误信息 “npm ERR! code ERESOLVE”&#xff0c;该错误通常发生在依赖版本冲突或者依赖解析问题时。本文将详细介绍出现这个错误的原…

git指定tag只拉取某个release版本代码,节约贷款

采用-b指定tag&#xff0c;--depth1指定只拉取最后一个版本的代码&#xff0c;日志如下 yeqiangyeqiang-MS-7B23:~/Downloads/src$ git clone --depth1 -b 7cbf1a2 https://github.com/llvm/llvm-project 正克隆到 llvm-project... warning: 不能发现要克隆的远程分支 7cbf1a2…

R语言机器学习之影像组学分析的原理详解

概要 影像组学从常规医学图像中高通量提取大量的放射学定量数据&#xff0c;并以非侵入性方式探索它们与临床结果的相关性&#xff0c;在医学研究中得到广泛的应用。 01 影像组学&#xff08;Radiomics&#xff09;的概念&#xff1a; 影像组学&#xff08;Radiomics&#xff…

React Context(上下文)

1 Context Context 通过组件树提供了一个数据传递的方法&#xff0c;从而避免了在每一个层级手动传递props属性。 有部分小伙伴应该使用props属性进行组件上下传值的操作。当多个组件嵌套的时候&#xff0c;就需要慢慢向上寻找最初的值是什么。 2 API React.createContext:…

Jmeter之Beanshell解析并提取json响应

1&#xff1a;前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下&#xff0c;并将该jar包添加到测试计划的Library中&#xff1b;否则会报&#xff1a;Typed variable declaration : Class: JSONObject not found in namespace的错误 2&#xff1a;解析思路 利用beansh…

了解Unity编辑器之组件篇UI(一)

UI组件&#xff1a;提供了用户交互&#xff0c;信息展示&#xff0c;用户导航等功能 一、Button&#xff1a;用于响应用户的点击事件 1.Interactable&#xff08;可交互&#xff09;&#xff1a;该属性控制按钮是否可以与用户交互&#xff0c;如果禁用则按钮无法被点击。可以通…

Ubuntu18.04配置PX4开发环境

源文件下载 读者可以参考PX4中文维基百科&#xff0c;或者使用下面命令↓ git clone https://github.com/PX4/PX4-Autopilot.git --recursive 下载完成之后&#xff0c;执行脚本安装命令&#xff0c;PX4给我们提供了脚本安装模式 bash ./PX4-Autopilot/Tools/setup/ubuntu.sh …

Spring Boot-3

学习笔记&#xff08;今天又读了好多篇的博客&#xff0c;做个今天的总结&#xff0c;加油&#xff01;&#xff01;&#xff01;&#xff09; PS&#xff1a;快到中伏了&#xff0c;今天还是好热 使用阿里巴巴 FastJson 的设置 1、jackson 和 fastJson 的对比 有很多人已经…

Linux 网络收包流程

哈喽大家好&#xff0c;我是咸鱼 我们在跟别人网上聊天的时候&#xff0c;有没有想过你发送的信息是怎么传到对方的电脑上的 又或者我们在上网冲浪的时候&#xff0c;有没有想过 HTML 页面是怎么显示在我们的电脑屏幕上的 无论是我们跟别人聊天还是上网冲浪&#xff0c;其实…

Python绘制多条y轴范围不同的曲线并在一张图上显示

如何使用Python绘制多条y轴范围不同的曲线&#xff0c;然后把它们合并在一张图上显示 import matplotlib.pyplot as plt import numpy as npdef multilines(target, x, ys, types, colors, x_label, labels):"""用来绘制多条y轴范围不同的线&#xff0c;并在一…

代码随想录 DAY28 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 切割字符串&#xff0c;并且在每一个切割过的字符串后面加上 ‘ .’ 返回条件&#xff1a;逗点个数3 如果最后一小节符合要求&#xff0c;就将该字符串添加到结果集中 循环中&#xff1a;从start到i 符合要求&#xff0c;就继续添加逗点和字符 不符合下面就不用…