查询:从一个或多个表或视图中检索数据的操作,不会改变表中的数据。
查询数据是关系代数,关系演算在SQL中的主要体现。select语句能够表达所有的关系表达式。
基本格式
select 列名称1 as col1, 列名称2 as col2
from 表名1 tab1, 表名2 tab2, 表名3 tab3
where 行选择条件
或
select [distinct] *|[column1 [as col1] , column2 [as col2] , …]
from table1 [tab1],table2 [tab2], …
where 查询条件
group by columnA, columnB , …
having 对分组的约束
order by字段x,字段y,…[ASC|DESC]
一.基本查询
1.FROM
需要查询的表。表可以有别名。
2.SELECT
select关键词用于检索列。
select 之后接指定需要查询的列名称。名称之间用“,”隔开。
使用as指定列的别名,别名是查询结果集的列名称。
2.1 使用 * 表示检索所有列
2.2 检索唯一值 distinct
数据表中可能有些结果是相同的。如果要显示每个值都是唯一的结果。使用DISTINCT。
例:
select job from emp; --有重复结果
select distinct job from emp; --无重复结果
2.3 使用算数运算
例:显示EMP表中雇员们,及其工资增加20%后的工资列
select ename,(1+0.2)*sal from emp;
3. WHERE
where关键词用于检索行。where之后接检索行的boolean表达式。
where子句的功能:
定位要查询的行。
筛选满足条件行。
where子句的条件表达式中可以使用的运算符:
= ; <>,!= ; >= ; <= ; > ; < ;
and ; or ; not ;
in(...) ; not in(...) ;
between a and b ; not between a and b ;
is null ; is not null ; like ; not like
例:
select ename,sal,hiredate from emp where hiredate>to_date('1-1月-1982','dd-mm-yy')
select ename,sal,hiredate from emp where sal between 1000 and 2000
select ename,sal,hiredate from emp where ename like 'S%'
select ename,sal,hiredate from emp where sal in (1250,3000)
3.1 在where子句中使用数值时候,既可以用单引号也可以不用单引号
使用字符串值,日期值时,必须使用单引号
字符串值:大小写敏感。
日期值:格式敏感。默认日期格式是:DD-MON-YY 。由数据库参数NLS_DATE_FORMAT设置。
3.2 使用通配符指定字符串的模糊查询条件
当字符串作为查询条件,但不能完全确定字符串而只知道它的某些特征时,使用LIKE运算符用于模糊查询。
格式:
[not] like ‘匹配字符串’ [ESCAPE ‘换码字符串’]
like的通配符:
% 用于表示0个或多个字符。
_ 用于表示1个字符,称为位置标识符。
如果匹配字符串中需要使用”%”和”_”,则使用”\”作为转义字符。并且用ESCAPE指定该字符。
例:
where first_name like ‘%\_A%’ ESCAPE ‘\’ --能查询出ab_Ab,或abc_Abc等记录。
3.3 使用表达式
在所查询的列中使用表达式来进行算术运算+-*/ ,连接字符串|| ,系统函数等。
二. 排序ORDER BY
select 列名称1 as col1, 列名称2 as col2
from 表名1 tab1, 表名2 tab2, 表名3 tab3
where 行选择条件
ORDER BY 要排序的列名1 [asc|desc],要排序的列名2 [asc|desc]
1.ASC(默认排序方式),升序排列
∧ 由小到大
2.DESE,降序排列
∨ 由大到小
3.多列排列
注:在oracle中ORDER BY后面的列可以用函数计算后再按照计算结果排序。其他数据库还没有试过。
三. 分组
select 列名称1 as col1, 列名称2 as col2
from 表名1 tab1, 表名2 tab2, 表名3 tab3
where 行选择条件
GROUP BY 要分组的列名1, 要分组的列名2
HAVING 限定分组统计结果的boolean条件
1. 多行函数
max
min
avg
count
variance 返回列或表达式的方差
stdeev 返回列或表达式的标准差
说明:
多行函数的参数必须是列名称。
多行函数只能出现在所查询的列,order by子句,having子句中,不能出现在where,group by子句中。
除count(*)之外,其他多行函数,包括count(column_name)都会忽略用于分组的列的值为null的行。
如果查询的列同时包含列,表达式和多行函数,那么这些列,表达式应该都会出现在group by子句中。
在分组函数中可以指定all和distinct选项。
例:
select avg(sal),avg(distinct sal),max(sal) ,min(sal),sun(sal),count(*),count(sal),count(distinct sal),count(comm) from emp where deptno=30;
2. 使用group by子句
分组方法:按指定的一列或多列值分组,值相等分为一组。
作用:
该子句的作用是查询的中间结果。
该子句细化了分组函数的作用对象。
注意:
使用该子句后,
select 子句所查询的列中只能出现用于分组的列和分组函数。
2.1 按单列分组
2.2 按多列分组
2.3 使用ROLLUP和CUBE限定词
在实际应用中,若需要生成横向,纵向的统计结果(两列分组时)。此时可以在group by子句中使用限定词rollup和cube来生成超级组合。
rollup用于生成横向统计结果。
cube用于生成纵向统计结果,横向统计结果。
3. 使用having子句
可以使用having子句类限制(或过滤)经过group by 分组处理之后的结果显示。
说明:
当
where,group by,having三者一起使用时,先执行where过滤行,再
group by 对过滤之后的行分组。最后
having 对分组结果筛选。
分享到:
相关推荐
select 查询语句小练习select 查询语句小练习select 查询语句小练习select 查询语句小练习select 查询语句小练习select 查询语句小练习select 查询语句小练习
SELECT 查询语句基础 SELECT 查询语句是数据库管理系统中最基本的查询语句,用于从一个或多个表中检索数据。SELECT 查询语句的基本语法结构为: SELECT 字段名 1 [AS 别名 1], 字段名 2 [AS 别名 2], … FROM 表名...
本文将深入探讨"Select查询语句"的基本语法以及一些常用的查询语句。这些知识点对于任何数据库操作人员来说都至关重要。 首先,我们来了解一下SQL查询语句的基本语法结构。一个基本的SELECT查询通常包括以下几个...
7. 性能考虑:虽然视图提供了便利,但过度使用视图可能影响性能,因为它们不存储数据,每次查询时都需要执行其背后的SELECT语句。因此,应合理设计视图,避免在复杂查询中使用视图,或者考虑物化视图(Materialized ...
资源名称:基本的select查询语句 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
SQL基本SELECT查询语句_内外连接
在SQL语言中,`SELECT`查询语句是用于从数据库中检索数据的主要工具。在这个练习中,我们将通过一系列示例来熟悉和理解`SELECT`语句的使用。 1. **查询全体学生的学号与姓名** ```sql select sno, sname from ...
建立运行环境-Excel Vba,可移植到VB环境中(需修改一些代码) '仿制简单的SQL查询语句,用于对二维数组的查询 ...' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。
具体而言,外层的SELECT语句被称为外部查询,而内层的SELECT语句则被称为内部查询(或子查询)。子查询可以根据其执行逻辑进一步分为嵌套子查询和相关子查询。 #### 二、嵌套子查询详解 **1. 嵌套子查询的概念** ...
Oracle各种select查询语法 Oracle数据库管理系统提供了多种select查询语法,以下是常用的select查询语法和示例: ...这些语句只是 Oracle select 查询语法的基础部分,使用这些语句可以完成许多复杂的查询任务。
在本话题中,我们将探讨数据库设计的基础,特别关注SELECT语句、子查询以及语句嵌套这三个核心概念。 首先,数据库设计不仅仅是创建表格,更重要的是理解和分析业务需求,以构建一个能够支持高效数据存储、检索和...
长期从事oracle数据库监控运维维护工作总结,在工作中积累和实现了oracle数据的增删改查等工作,以及对oracle数据库的日常维护工作等。
在本文中,我们将具体介绍如何在PHP中使用SELECT语句查询MySQL数据库,并提供相关的代码示例和常见问题的解决方案。 首先,PHP中连接MySQL数据库的基本步骤如下: 1. 使用`mysql_connect`函数建立到MySQL数据库的...
数据库系统原理
数据库系统原理
在数据库管理中,UPDATE语句用于修改已存在的数据记录,而SELECT语句则用于查询数据。在某些场景下,我们可能需要从UPDATE语句转换为SELECT语句,以验证更新操作将影响哪些行或者理解更新逻辑。这在调试、数据分析或...
数据库系统原理
例如,在《广东省医院统计病案管理系统》的第2版中,使用SQL Server作为系统平台,借助SELECT语句查询可以快速得到输血品种、住院医师工作量等统计数据。这些信息对于医院管理层和各科室来说是极其重要的,因为它们...
SQL(Structured Query Language)是关系型数据库的标准查询语言,其中,SELECT语句是SQL中最为核心的查询语句,用于从数据库中检索数据。在SQL查询语句中,SELECT语句通常包括三个主要部分:select_list、FROM子句...