查询:从一个或多个表或视图中检索数据的操作,不会改变表中的数据。
查询数据是关系代数,关系演算在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 查询语句小练习select 查询语句小练习select 查询语句小练习
select查询语句基础.docx
资源名称:基本的select查询语句 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
C#演示视图在Select查询语句中的应用
SQL基本SELECT查询语句_内外连接
1、SQL查询语句常见语法结构2、常见的查询语句3、WHERE 条件查询(4)常见的where 查询实例(5) order by 排序查询的语法结构
建立运行环境-Excel Vba,可移植到VB环境中(需修改一些代码) '仿制简单的SQL查询语句,用于对二维数组的查询 ...' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。
SELECT语句语句1:SELECT * FROM table_name解说:意思就是读取整个表table_name里面的数据显示出来语句1:SELECT * FROM table_name Where x = 1解说:意思就是读取表table_name里面键名为:x 值为:1的 数据显示出来 ...
子查询是指一条SELECT语句作为另一条SELECT语句的一部分,外层的SELCT语句称为外部查询,内层的SELECT语句称为内部查询(或子查询).doc
长期从事oracle数据库监控运维维护工作总结,在工作中积累和实现了oracle数据的增删改查等工作,以及对oracle数据库的日常维护工作等。
数据库系统原理
数据库系统原理
数据库系统原理
关于电影公司的数据库设计建模 包括 select语句 子查询,语句嵌套等
根据update语句自动生成select语句.
内容索引:C#源码,数据库应用,存储过程 C# 存储过程在Select查询语句中的应用,程序完成的功能:生成连接数据库字符串、定义SqlConnection对象实例、调用存储过程、定义DataSet对象实例、连接数据表格,显示数据。
1. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。 (1)在 student_info 表中,查询每个学生的学号、姓名、出生日期信息。 (2)查询 student_info 表学号为 0002 的学生的姓名和家庭住址。 (3)查询 ...
35、 Select查询语句-嵌套查询1 ? 36、 用T-SQL创建表及其主键 ? 38、多表嵌套查询 ? 39、多表嵌套查询2 ? 40、对结果进行排序 ? 41、 统计函数SUM ? 42、 统计函数AVG ? 43、 统计函数AVG2 ? 44、 定义...
内容索引:C#源码,数据库应用,视图 C# 演示视图在Select查询语句中的应用,可惜没找到数据库,有兴趣的朋友可根据代码还原出数据库,也不是太难,只是有些麻烦,不过想学习知识的话,怕麻烦可是不行哟!