SQL 基础(四)单关系数据查询

简介: SQL 基础(四)单关系数据 / 表查询

单关系(表)数据查询结构

查询结果仍为表,WHERESELECT 分别相当于关系代数中的 选取投影 操作

SQL 指令功能强大,无需规定投影、选取、连接执行顺序

无条件查询

仅包含 SELECT……FROM 查询,等价于对关系做 投影 操作

1.查询指定信息

USE db_student -- 指定数据库
SELECT sno,sn,birthday -- 查询信息指定
FROM tb_student -- 指定表

2.查询全部信息

SELECT *
FROM tb_student

可以看到显示了表中所有学生的所有属性信息

3.查询表单身份信息

不使用 WHERE 字句的无条件查询称 投影查询,SQL中只有使用 DISTINCT 关键字才会消去重复列,关系代数投影运算自动消去
SELECT distinct polity
FROM tb_student

可以查看到数据表中所有身份信息,并已删除重复列

4.查询所有学生的学号/姓名/身份

SELECT sno , sn , polity -- 逗号分隔不同属性值
FROM tb_student

条件查询

1.比较大小(全匹配)

常用比较运算符

运算符 含义
=、>、< 、<= 、>= 、!= 、<> 比较大小
AND、OR、NOT 复合条件
BETWEEN AND 确定范围
IN 确定集合
LIKE 字符匹配
IS NULL 空值

*注:<> 表示(否定,不,反义)

查询所有学生中是党员的学生学号和姓名

SELECT sno,sn
FROM tb_student
WHERE polity='党员'

查询成绩表中,学生成绩不及格的学生学号

SELECT sno
FROM tb_score
WHERE score<60

2.多重条件查询(全匹配)

优先级由高到低: NOTANDOR 常用在复合逻辑表达式中

查询学生信息表中,软件学院男生是党员的学生信息

select sex,dept,polity
from tb_student
where (sex='男' AND dept='软件学院') AND (polity='党员')

3.确定范围(全匹配)

查询成绩表中,成绩段 70~90 之间的学生学号和学分信息

select sno,xf
from tb_score
where score>=70 AND score<=90  --SQL Server 中等价于 where score BETWEEN 70 AND 90

*注:某些 DBMS 中 BETWEEN AND 不包含边界值等号

查询成绩表中,成绩段不在 70~90 之间的学生学号和学分信息

select sno,xf
from tb_score
where score NOT BETWEEN 70 AND 90 -- NOT 否定

4.确定集合(全匹配)

查询成绩表中,选修 c03、c17 课号学生的学分和学号信息

select cno,sno,xf
from tb_score
where cno IN('c03','c17') -- 等价 where cno='03' OR cno='17'

查询成绩表中,未选修 c03、c17 课号学生的学分和学号信息

select cno,sno,xf
from tb_score
where cno NOT IN('c03','c17') -- 等价 where cno <> '03' AND cno <> '17'

*注:重点注意 <> 符号

5.模糊查询(部分匹配)

当我们在不能清楚的知道所查询数据的精确值时,可以使用模糊查询的方式检索数据,利用如下通配符以实现模糊搜索

字符中可加通配符

通配符 功能 示例
% 代表0或多个字符 ‘%ab’ 后可接任意字符串
_ 代表一个字符 ‘a_b’ 间有一个字符
[ ] 表示在某范围的字符 [0~10] 范围字符
[^ ] 表示不在某范围的字符 不在 [0~10] 范围内字符

查询所有姓王的学生姓名和学院信息

select sn,dept
from tb_student
where sn LIKE '王%'

查询所有学生信息中,姓名第二个字是明的学生姓名和学院信息

select sn,dept
from tb_student
where sn LIKE '_明%'

6.空值查询

==NULL 值表示“不知道、不确定、没有数据”==,和 0 值要注意区分

查询没有考试成绩(未参加考试,不是考试成绩为 0 分)的学生学号及课程号信息

select sno,cno
from tb_score
where score IS NULL -- 比较运算符 IS NULL

统计汇总查询

常用库函数

函数名称 功能
AVG 按列求平均值
SUM 按列求和
MAX 求列最大值
MIN 求列最小值
COUNT 按列求个数

查询学号为 XXX 的学生总成绩和平均成绩

select SUM(score) AS totalscore,AVG(score) AS avgscore
from tb_score
where (sno='XXX')

*注:如果 AS 后不写别名,查询后的表没有表头(无列名)

查询软件学院学生总数

select COUNT(*) from tb_student
where dept='软件学院'

*注:COUNT(*) 统计元组个数,不消除重复行,不可用 DISTINCT 关键字

分组查询

查询选修两门课以上课程的学生学号和选课总数

select sno,COUNT(*) AS sc_num
from tb_student
group by sno
having (COUNT(*)>=2) -- 必须是选修课程数大于等于二的

*注:各子句顺序 WHEREGROUP BYHAVING

排序查询结果

ORDER BY 查询排序结果,位置必须在其他字句后,指定缺省默认为 升序 ASC [DESC 降序 / ASC 升序]
  • 降序 descending order
  • 升序 ascending order

查询成绩表中,选修 c10 课程的学生学号,并按成绩降序排列

select sno,score
from tb_score
where (cno='c10')
order by score DESC

成绩表中,查询选修 c10,c03,c09 或 c20 课程的学号和成绩,结果按学号升序排列

select sno,cno,score
from tb_score
where cno IN('c10','c03','c09','c20')
order by sno -- 指定缺省默认为升序 ASC
相关文章
|
11月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
6月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
133 0
|
2天前
|
SQL 监控 安全
员工上网行为监控软件:SQL 在数据查询监控中的应用解析
在数字化办公环境中,员工上网行为监控软件对企业网络安全和管理至关重要。通过 SQL 查询和分析数据库中的数据,企业可以精准了解员工的上网行为,包括基础查询、复杂条件查询、数据统计与分析等,从而提高网络管理和安全防护的效率。
10 0
|
24天前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
6月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
378 6
|
3月前
|
SQL 关系型数据库 数据挖掘
SQL 基础入门简直太重要啦!从零开始,带你轻松掌握数据查询与操作,开启数据世界大门!
【8月更文挑战第31天】在数字化时代,数据无处不在,而 SQL(Structured Query Language)则是开启数据宝藏的关键钥匙。无论你是编程新手还是数据处理爱好者,掌握 SQL 都能帮助你轻松提取和分析信息。SQL 简洁而强大,像一位魔法师,能从庞大数据库中迅速找到所需数据。从查询、条件筛选到排序、分组,SQL 功能多样,还能插入、更新和删除数据,助你在数据海洋中畅游无阻。
39 0
|
3月前
|
SQL 关系型数据库 数据库
|
4月前
|
SQL DataWorks 安全
DataWorks产品使用合集之在进行数据查询和数据处理时,如何通过数据建模与开发模块来创建和管理SQL脚本
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
SQL 存储 缓存
揭秘SQL中的公用表表达式:数据查询的新宠儿
揭秘SQL中的公用表表达式:数据查询的新宠儿
59 2
|
11月前
|
SQL 关系型数据库 MySQL
Mysql数据库 4.SQL语言 DQL数据查询语言 查询
Mysql数据库 4.SQL语言 DQL数据查询语言 查询
76 0

热门文章

最新文章

下一篇
无影云桌面