SQL之数据查询

简介: SQL之数据查询

1.前言


数据查询是SQL的核心。其大体框架如下:

SELECT ......
FROM ......
[WHERE ......]
[GROUP BY ......]
[ORDER BY ......];


其中SELECT后面接查询的内容,FROM确定从表或者视图里查询;WHERE后面接条件,GROUP BY进行分组,ORDER BY进行排序。

以下是一些详细介绍:


2.SELECT


SELECT常见操作:

SELECT  Sno,Grade         //查询指定列
SELECT *                         //查询所有列
SELECT 2004-Sage Sage       //将Sage那列的结果改为2004减去年龄的算术值
SELECT 'Years of Birth:' Sage//将Sage那列的结果改为Years of Birth:
SELECT DISTINCT Sno //查询指定列,并去掉重复行
SELECT COUNT(*)//利用聚焦函数统计元祖个数
SELECT AVG(Grade)//利用聚焦函数统计成绩平均分


以上几乎涵盖SELECT语句的所有应用,注意的是在从多个表中查询时,列名相同要通过表前缀区分开。

在聚焦函数的应用中,还有SUM,MIN,MAX等函数,意思如字面。


3.FROM


FORM后面接表名或者视图名,还可以为表命别名(多用于嵌套查询或连接查询)。

FORM Student                          //从Student表中查询
FORM Student s1,Student s2  //从Student表中查询,其别名是s1,s2(即Student)


4.WHERE


WHERE后面接条件语句,常见的查询条件谓词有:

比较:<,>,=,!=等基本同c++

确定范围:BETWEEN AND

确定集合:IN

字符匹配:LIKE

空值:NULL

逻辑条件:AND ,OR, NOT(可以用在上述五种中表否定)

了解这些查询条件之后,可以通过实例看其具体应用:

WHERE cno='1'
WHERE Sdept='CS' AND Sage<20//逻辑条件查询
WHERE Sage BETWEEN 18 AND 20//范围查询
WHERE Sname LIKE '刘%'//字符匹配
WHERE Student.Sno=SC.Sno//两边连接查询(也可以同表自身连接)
WHERE Sno IN(SELECT ...
             FROM ...
             WHERE ...)//嵌套查询


以上可以挑两个细节来详述,一是字符匹配中_示一个字符,%表示任意字符,必要时用后面加上ESCAPE <字符>进行转义;二是嵌套查询时,子查询结果是单值可以用比较运算符,是多值可以用比较运算符 ANY|ALL的形式,ANY(表示一些),ALL表示所有,此外子查询块外还可以使用EXISTS,此时返回值只是真假,不是具体值。


5.GROUP BY


该子句是将查询结果按某列或某些列分组,值相同为一组,若还需要对这些组进行筛选,可以加上HAVING短语指定筛选条件(针对组)。

SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT (*)>3//查询选修了3门以上课程的学生学号


上述语句在学生课程表中,按学号分组,并对这些分组的元祖技术并筛选,在最后得到修了3门以上课程的学生学号。


6.ORDER BY


起排序用,如ORDER BY Grade DESC;就是按成绩降序排序。

相关文章
|
3月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
98 0
|
5月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
5月前
|
SQL 数据库
SQL Server 单表数据查询
SQL Server 单表数据查询
110 1
|
1月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
103 6
|
5月前
|
SQL 数据库
SQL Server 数据查询
SQL Server 数据查询
113 0
|
5月前
|
SQL Serverless
SQL Sever 单表数据查询(下)
SQL Sever 单表数据查询(下)
49 1
|
9月前
|
SQL 数据库 数据库管理
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(三)
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(三)
|
9月前
|
SQL 关系型数据库 MySQL
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(二)
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(二)
|
10月前
|
SQL
【SQL server 2008】数据查询和管理
【SQL server 2008】数据查询和管理
61 0
|
5月前
|
SQL 关系型数据库 MySQL
Mysql数据库 4.SQL语言 DQL数据查询语言 查询
Mysql数据库 4.SQL语言 DQL数据查询语言 查询
53 0