SQL-DQL-数据查询语言

news2024/9/24 9:27:51

数据查询语言

1、基础查询

2、条件查询

3、聚合函数

4、分组查询

5、分页查询

6、案例

7、执行顺序

select 字段列表
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数


1、基础查询
select 字段1[as 别名1],字段2[as 别名2]... from 表名
select * from 表名 # 全部字段
select distinct 字段列表 from 表名 # 去除重复记录




insert into  employee values(5,'67','人5','男',19,'123456789123456789','2019-09-10'),
                            (6,'69','人6','女',19,'123456789123456789','2019-09-10'),
                            (7,'61','人7','男',19,'123456789123456789','2019-09-10'),
                            (8,'62','人8','男',19,'123456789123456789','2019-09-10'),
                            (9,'64','人4','女',19,'123456789123456789','2019-09-10'),
                            (10,'65','人4','男',19,'123456789123456789','2019-09-10'),
                            (11,'66','人4','男',19,'123456789123456789','2019-09-10');
insert into  employee values(12,'67','人5','女',19,'12345678912345678X','2019-09-10');
# 查询全部字段
select  *  from employee;
# 缺点:*不直观,影响开发效率
# 查询指定字段
select name,gender from employee;
# 查询字段取别名
select name as '姓名' from employee;
# 去重
select distinct name as'去重姓名' from employee;



2、条件查询
select name from employee where gender = '女';
select name from employee where age >= 19;
select name from employee where idcard is null;
select name from employee where idcard is not null;
select name from employee where gender != '女';
select name from employee where age != 18;
select name from employee where age <> 18;
select name from employee where age>=15 && age<=20;
select name from employee where age>=15 and age<=20;
select name from employee where age between  15 and 20; #闭集
select name from employee where gender='女' and age<=20;
select name from employee where  age=20 or age=19;
select name from employee where name in ('人1','人4');
select * from employee where id like '__'; # 模糊匹配,两个字符的id
select * from employee where idcard like '%X'; # 身份证号末尾为X
select * from employee where idcard like '_________________X'; # 17个下划线



3、聚合函数
# 对一列数据纵向计算
select count(*) from employee;# 计算数量
select count(id) from employee;# 计算数量
# 注: null 不参与计算
select avg(age) from employee;# 平均数
select max(id) from employee;# 最大
select min(id) from employee;# 最小
select sum(age) from employee where gender='男';
select age from employee where gender='男';





4、分组查询
# where分组之前过滤;having分组之后过滤
# where不能对聚合函数进行判断  having可以
# 在使用 GROUP BY 子句时,所有 SELECT 列必须是聚合函数的结果或是 GROUP BY 中的列
# 执行顺序:where > 聚合函数 > having
select gender,count(age) from employee where age>18 group by gender;
select gender,max(age)  from employee group by  gender;
select gender,count(*)  from employee group by  gender;
select gender,count(id)  from employee group by  gender;
select gender,avg(age) from employee group by gender ;
select  gender,count(gender) from employee where age >18 group by gender having count(gender)>4;
select  gender,count(*) from employee where age >18 group by gender having count(*)>3;






5、分页查询
# 起始索引从0开始, 起始索引=(查询页码-1)*每页显示记录数
# 第一页可以省略起始索引
# 分页是方言, mysql是limit, oracle是row number
select * from employee limit 10,5; # 每页5条记录, 查询第3页
select * from employee limit 5; # 每页5条记录, 查询第1页




6、案例
select * from employee where gender = '女' and workno in(65,66,67);
select * from employee where gender = '男' and age between 18 and 20 and name like '__';# 名字中含有两个字的男性,年龄在18-20
select gender,count(*) from employee where age >18  group by gender ;
select name,age from employee where age >=18 order by age, entrydate desc ;
select * from employee where gender = '男' and age between 18 and 20 order by age,entrydate limit 5;# 男 18-20 前5个人,按年龄升序入职时间升序排序





7、顺序
# 编写顺序   select    from    where     group by     having      order by     limit
# 执行顺序   from——where——group by——having——select——order by——limit
select name,age from employee where age>15 order by age; # 15岁以上的信息,根据年龄升序排序
select name,age from employee e where age>15 order by age;
select e.name,e.age from employee e where e.age>15 order by age;
select e.name ename,e.age eage from employee e where e.age>15 order by age;
select e.name ename,e.age eage from employee e where e.age>15 order by eage;
# 其中 e是表的别名; ename,eage是字段的别名.where不能使用eage,是由于where的执行顺序在select前
# 关系型运算符优先级高到低为:NOT>AND>OR
# 题目:现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户 或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,请你取出相应数据

select device_id,gender,age,university,gpa from user_profile where gpa>3.5 and university='山东大学' or  gpa>3.8 and university='复旦大学' ;

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

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

相关文章

OpenCV与AI深度学习 | 基于改进YOLOv8的景区行人检测算法

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;基于改进YOLOv8的景区行人检测算法 作者&#xff1a;贵向泉&#xff0c;刘世清&#xff0c;李立等 来源&#xff1a;《计算机工程》期刊 编…

Linux 命令集合

1. linux 系统版本 1.1 linux系统的分类 linux系统&#xff0c;主要分Debian系和RedHat系&#xff0c;还有其它自由的发布版本。 1、Debian系主要有Debian&#xff0c;Ubuntu&#xff0c;Mint等及其衍生版本&#xff1b; 2、RedHat系主要有RedHat&#xff0c;Fedora&#xf…

AI可预测地震,科技的“预知未来”?

在科幻小说和电影中&#xff0c;预知未来的能力总是让人向往。而在现实世界中&#xff0c;科学家们正利用人工智能&#xff08;AI&#xff09;技术&#xff0c;向着预测自然灾害这一“未来”的目标迈进。 近日&#xff0c;德州大学奥斯汀分校&#xff08;UT Austin&#xff09;…

【C++】C++的模板初识

目录 思维导图大纲&#xff1a; 1. 什么是模板&#xff1f; 2. 模板的分类 区别&#xff1a;函数模版和模版函数 / 类模版和模版类 2.1 函数模板 2.1.1 用法 2.1.2 原理 2.1.3 函数模板的实例化 2.1.4 模板参数的匹配原则 2.2 类模板 2.2.1 用法 2.2.2 原理 …

Linux--gdb的常用命令

目录 前言 一、gdb是什么&#xff1f; 二、常用命令 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 对于程序有两个版本&#xff0c;一个是debug版和release版&#xff0c;要想进行调试必须使用debug版本&#xff0c;再Linux上进行调试就要用到调试器…

660高数刷题

1 周期函数的周期等于上下限的差值则值相等 2 3 4 5 6 泰勒公式要展开到多少阶

快速幂算法【算法 08】

快速幂算法详解 在计算机编程中&#xff0c;快速幂算法是一种高效计算大整数幂次的算法。相较于直接的暴力计算&#xff0c;快速幂能够在对数级别的时间复杂度下完成运算&#xff0c;因此它在许多算法和问题中&#xff08;如数论、组合数学、密码学等&#xff09;都有广泛的应用…

web常见漏洞之——SSRF

ssrf 概述工具环境实验一 概述 SSRF(Server-Side Request Forgery)叫做服务器请求伪造&#xff0c;因为服务器提供了从其他服务器应用获取数据的功能且没有对目标地址进行过滤和限制导致黑客可以对服务器请求的地址进行伪造。 ssrf漏洞的主要用处就是对服务器进行资源扫描&am…

YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

一、本文介绍 本文记录的是改进YOLOv9的损失函数&#xff0c;将其替换成Slide Loss&#xff0c;并详细说明了优化原因&#xff0c;注意事项等。Slide Loss函数可以有效地解决样本不平衡问题&#xff0c;为困难样本赋予更高的权重&#xff0c;使模型在训练过程中更加关注困难样…

【回溯Ⅱ】组合问题

用回溯&#xff08;递归&#xff09;解决组合问题 第一类组合问题77.组合216.组合问题Ⅲ 第二类组合问题39. 组合总和递归法一&#xff1a;组合位置填空递归法二&#xff1a;遍历数组 40. 组合总和 II递归法一&#xff1a;组合位置填空递归法二&#xff1a;遍历数组❌ 常规思路…

SpringBoot集成kafka-监听器手动确认接收消息(主要为了保证业务完成后再确认接收)

SpringBoot集成kafka-监听器手动确认接收消息 1、说明2、示例2.1、application.yml2.2、消费者2.3、生产者2.4、测试类2.5、测试 1、说明 kafak中默认情况下是自动确认消息接收的&#xff0c;也就是说先启动消费者监听程序&#xff0c;再启动生产者发送消息&#xff0c;此时消…

【动态规划】第 N 个泰波那契数

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 题目讲解算法原理代码实现 题目 题目如下&#xff1a; 讲解算法原理 我们先说一下动态规划题目的整体做题思路&#xff1a; 第一步&#xff1a; 状态表示 什么是状态表示? 做动态规划类题目一般…

跟李沐学AI:样式迁移

样式迁移需要两张输入图像&#xff1a;一张是内容图像&#xff0c;另一张是样式图像。 我们将使用神经网络修改内容图像&#xff0c;使其在样式上接近样式图像&#xff0c;得到合成图片。类似手机相册中的滤镜效果。 奠基性工作&#xff1a;基于CNN的样式迁移 任务&#xff1…

vue3+vite+axios+mock从接口获取模拟数据实战

文章目录 一、安装相关组件二、在vite.config.js中配置vite-plugin-mock插件三、实现mock服务四、调用api接口请求mock数据方法一、直接使用axios 请求mock 数据方法二、对axios进行封装统一请求mock数据 五、实际运行效果 在用Vue.js开发前端应用时通常要与后端服务进行交互&a…

WPF 选择对应控件技巧

当界面控件过多&#xff0c;选择对应的控件是比较困难的。

白酒与青年文化:潮流与传统的碰撞

在时代的洪流中&#xff0c;青年文化如同一股涌动的潮流&#xff0c;不断冲击着传统的边界。而白酒&#xff0c;作为中国传统文化的瑰宝&#xff0c;也在这一潮流中找到了新的表达方式。今天&#xff0c;我们就来探讨一下白酒与青年文化之间的碰撞与整合&#xff0c;以及豪迈白…

项目问题 | vscode连接远程Linux服务器报错: “> Host key verification failed. > 过程试图写入的管道不存在”

远程连接服务器时报错&#xff1a; Please contact your system administrator. Add correct host key in C:\Users\LiHon/.ssh/known_hosts to get rid of this message. Offending ECDSA key in C:\Users\LiHon/.ssh/known_hosts:9 Host key for 124.71.71.215 has changed a…

七种有效将msvcp140.dll丢失的解决方法,快速修复msvcp140.dll错误

在使用Windows操作系统的计算机上安装或运行软件时&#xff0c;用户可能遭遇“msvcp140.dll丢失”这一常见错误。这个问题通常发生在尝试启动某些程序时&#xff0c;系统会弹出一个警告窗口&#xff0c;提示“无法继续执行代码&#xff0c;因为系统未找到msvcp140.dll”。这样的…

【学习笔记】AD实现原理图的元器件自动标号

【学习笔记】AD24实现原理图的元器件自动标号 在原理图绘制过程中&#xff0c;载入的元器件封装并不会默认标号&#xff0c;而是“&#xff1f;”的形式显示&#xff0c;为避免手动标号所带来的大量繁琐工作&#xff0c;自动标号会是一个很好的选择。 在 Altium Designer&…

【网络】传输层协议——TCP协议(初阶)

目录 1.TCP协议 1.1.什么是TCP协议 1.2.为什么TCP叫传输控制协议 1.2.TCP是面向字节流的 2.TCP协议段格式 2.1.流量控制——窗口大小&#xff08;16位&#xff09; 2.2.确认应答机制 2.2.1.什么是确认应答机制 5.2.2.推导确认应答机制 5.3.2.确认号和序列号 2.3.六位…