数据库查询语句总结(全网最详细,用的是MySQL和SQLyog)
首先创建两个表(用作测试):tb_student、tb_class
CREATE TABLE tb_class(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(20) NOT NULL
);
CREATE TABLE tb_student(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(20) NOT NULL,
gender CHAR(1),
age INT,
cid INT,
FOREIGN KEY(cid) REFERENCES tb_class(cid)
);
一.DQL基础查询
关键字:select from
1、查询学生表中所有的数据
SELECT * FROM tb_student WHERE gender='男';
2.查询所有年龄在18到20岁的学生信息
SELECT * FROM tb_student WHERE age>=18 AND age<=20;
或者
SELECT * FROM tb_student WHERE age BETWEEN 18 AND 20;
3.查询出所有没有录入年龄的学生的信息
SELECT * FROM tb_student WHERE age IS NULL;
模糊查询关键字:like
通配符:
%: 代表任意个字符
_:代表一个字符
1.查询所有姓王的学生信息
SELECT * FROM tb_student WHERE sname LIKE '王%';
2.查询所有名字第二个字是杰的学生信息
SELECT * FROM tb_student WHERE sname LIKE '_杰%';
3.查询名字中有明的学生信息
SELECT * FROM tb_student WHERE sname LIKE '%明%';
二.DQL排序
排序关键字:order by
升序:默认/asc
降序:desc
1、查询所有学生的信息,要求按照学生的年龄从小到大的显示
SELECT * FROM tb_student ORDER BY age (ASC);
2. 查询所有学生的信息,要求按照学生的年龄从大到小的显示
SELECT * FROM tb_student ORDER BY age DESC;
3.查询年龄最大的三个学生信息
SELECT * FROM tb_student ORDER BY age DESC LIMIT 3;
前几个:limit 3;
函数:
聚合函数
主要对数据进行统计计算,返回单个值。
最大值:max()
最小值:min()
求和:sum()
数据条数:count()
平均值:avg()
1.查询学生平均年龄
SELECT AVG (age) FROM tb_student;
三.DQL分组查询
将表数据按照指定条件进行分组,再对分组后的数据进行汇总。分组查询通常会使用聚合函数,对分组后的数据进行统计计算。
关键字:group by [having]
语法:select 要查询的内容 from 表名 group by 分组列 [having 筛选条件];
1、查询出每个班的学生人数
分析:cid相同的学生是同班同学,所以以cid来进行分组。统计每个组的数据条数。
SELECT cid,COUNT(*) FROM tb_student GROUP BY cid;
having和where的区别:
1、having是对分组后的数据进行筛选,where是对分组前的数据进行筛选
2、SQL语句中有having必定有group by,有group by不一定having
3、如果一个SQL语句中,既有where又有having,先执行where后执行having
4、where后面不能使用聚合函数,having只能使用聚合函数和分组列
四.DQL分页查询
关键字:limit
用法:
limit n:代表前n条数据
limit m,n:代表从第m条数据开始取n条数据,m是数据的索引
1、查询出学生表前三条数据
SELECT * FROM tb_student LIMIT 3;
2、如果每页显示3条数据,请查询出第二页的数据
SELECT * FROM tb_student LIMIT 3,3;
分页:现有条件,每页显示条数count,第几页page
计算:
page:1 2 3 4 5 ……
m: 0 3 6 9 12 ……
m = (page-1)*count
五.DQL连接查询
定义:通过连接条件同时查询出多张表的数据。
隐式内链接:把连接条件放到where关键字后面。
语法:select 要查询的内容 from 表1,表2 where 连接条件 [and 筛选条件];
显式内连接:使用inner join来连接,将连接条件放到on后面。
语法:select 要查询的内容 from 表1 inner join 表2 on 连接条件 [where 筛选条件];
外连接
两张表中一张表作为基表,查询出该表所有的数据,另外一张表作为连接表,查询出该表与基表能够匹配的数据。如果基表数据匹配不上,就用null来填充。
语法:select 要查询的内容 from 基表 left join 连接表 on 连接条件 [where 筛选条件];
右外连接:
语法:select 要查询的内容 from 连接表 right join 基表 on 连接条件 [where 筛选条件];
六.子查询
当一个查询的结果是另一个查询需要的条件时,就需要使用子查询。
例如:
查询出年龄比张三大的学生的信息
方式一:
SELECT age FROM tb_student WHERE age >(SELECT age FROM tb_student WHERE sname='张三' );
方式二:
SELECT age FROM tb_student WHERE age>ANY(SELECT age FROM tb_student WHERE sname='张三');
数据库查询语句总结(全网最详细,用的是MySQL和SQLyog)相关推荐
- oracle查询100到200数据,100分数据库查询语句(ORACLE 11g)
100分求一个数据库查询语句(ORACLE 11g) 一张表tabl1 如下: epqname createtime e ...
- excel文档查询服务器,excel服务器数据库查询语句
excel服务器数据库查询语句 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...
- DQL:数据库查询语句
目录 一.常用DQL语句:数据库查询语句 1.最基本的通用查询:查询全表数据 2.查询指定列 3.通过起别名进行查询 1)对列起别名 AS可以省略 2)对表起别名(表的名字比较长),同时给列起别 ...
- 【ThinkPHP】ThinkPHP5 常用数据库查询语句
来源:我的博客站 OceanicKang |<[ThinkPHP]ThinkPHP5 常用数据库查询语句> tp_data 数据表 id name status 3 thinkphp 1 ...
- 小程序云开发数据库查询语句之doc与where||如何查询到不符合条件的结果
小程序云开发数据库查询语句之doc与where||如何查询到不符合条件的结果 一只孤独的菜鸟 最近在云开发时遇到的查询语句, where和doc,在官方文档上是这样的 db.collection('t ...
- C# 数据库查询语句1
C# 数据库查询语句1 作者:陈钰桃 撰写时间:2022年3月27日 第1节. 查询数据 数据库表是存储数据库中所有数据的对象. 在表中,数据按行和列格式逻辑组织,类似于电子表格(Excel).在表中 ...
- 数据库查询语句SQL中like、%、-的区别
数据库查询语句SQL中like.%.-的区别 数据库查询语句SQL中like.%.-的区别 %百分号通配符:表示任何字符出现任意次数(可以是0次) SQL 语句选取 name 以字母 "k& ...
- 数据库查询语句 -- HAVING的用法
数据库查询语句 HAVING的用法 HAVING语句通常与GROUP BY子句及聚集函数COUNT,AVG,SUM,MAX,MIN语句联合使用,用来过滤由GROUP BY语句返回的记录集,通常跟在GR ...
- mysql的查询语句大全_sql语句(sql数据库查询语句大全)
sql语句 结构化查询语言(StructuredQueryLanguage)缩写为SQL.结构化查询语言是一种数据库查询和编程语言,用于访问数据以及查询,更新和管理关系数据库系统: 程序功能 创建数据 ...
最新文章
- 【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)
- Effective C++学习第六天
- mysql导出表数据
- NGINX访问日志和错误日志
- html添加变量参数吗,动态CSS与变量参数? (可能吗?)
- win7修复计算机 正常启动不了怎么办,Win7系统无法正常启动怎么办
- QQ桌球瞄准器开发(1)桌球瞄准器介绍与使用方法
- 联想笔记本怎么重装系统?联想笔记本一键重装
- openharmony开发TS语言基础
- java 通用权限管理_通用权限管理设计篇(一)
- Win10打包tar.gz文件,Win10使用tar命令,Win10使用linux基本命令
- android APP开发时,全屏手机适配的问题解决
- 记录:微信小程序Switch样式调整
- 毕业设计-基于DGA 恶意域名的检测算法
- 找出耗电大户进行消灭 电池持久有绝招——下载加速吧
- prism InvokeCommandAction
- Windows cmd命令 个人常用0529
- BB10 读取NFC tag
- [leetcode 10-4] 三、分割数组最多方案(双周赛第四题)
- cordova电池插件