1.去除重复的行:
SELECT DISTINCT ename FROM emp;
2.连接表达式
SELECT ename||'的部门号是'||deptno FROM emp;
3.处理NULL
SELECT NVL(ename,'noname') FROM emp; --如果某行ename为空则显示noname,不为空则显示ename的值.
4.日期类型显示格式
如果表arwen中列birthday为date类型
SELECT TO_CHAR(birthday,'YYYY-MM-DD') FROM arwen
5.WHERE 子句中的BETWEEN ..AND
相当于大于等于且小于等于
6.LIKE模糊查询.%表示0到多个字符_表示单个字符
7.转义字符:
如果表中有%,_这样的符号需要用到转义字符\
假如表arwen中的ename是a%name.查找
SELECT * FROM arwen WHERE ename LIKE 'a\%name';
也可以这样写SELECT * FROM arwen WHERE ename LIKE 'as%name' ESCAPE 's'; --s可以替换成其他任何字符
8.多列排序:
排序中NULL被当作最大值处理
SELECT ename,deptno,sal FROM emp
ORDER BY ename ASC,sal DESC; --ASC表示升序,默认都是按升序.DESC降序.此处表示先用名字排序.名字相同再用sal排序.
特殊情况:如果用UNION连接两个表,排序时不能指定列.只能用数字
SEELCT deptno,dname FROM dept
UNION
SELECT empno,ename FROM emp
ORDER BY 1; --表示参照第一列来排序,如果写成2就是用第二列
9.分组函数
SELECT AVG(empno),SUM(empno),MAX(empno),MIN(empno),COUNT(empno) FROM emp;
--其中的分组函数分别表示平均值,总和,最大值,最小值,总行数
分组函数中NULL被忽略掉不在计算范围之类.所以如果empno为空则计算的不是整个表的总行数.而COUNT(*)总是表的总行数.
10.GROUP BY用法
上面的分组函数是应用于整个表,假如我们只计划表中某个部门的平均值等等.
SELECT deptno,AVG(sal) FROM emp
GROUP BY deptno;
如果想在大组中再分成小组计算.例如每个部门分组,再每个职位分组.
SELECT deptno,job,AVG(sal) avg_sal,FROM emp
GROUP BY ROLLUP(deptno,job);
DEPTNO JOB AGV_SAL
-------------------------------------------------------------------
10 CLERK 4500
10MANAGER8500
10 6500
20CLERK5000
20 MANAGER 9000
20 7000
6750
其中6500是部门10的平均工资,7000是部门20的平均工资.6750是两个部门的平均工资.
注意如果查询语句去年ROLLUP则加颜色的数字就不会出现.
SELECT deptno,job,AVG(sal) avg_sal,FROM emp
GROUP BY CUBE(deptno,job);
DEPTNO JOB AGV_SAL
-------------------------------------------------------------------
10 CLERK 4500
10 MANAGER 8500
10 6500
20 CLERK 5000
20 MANAGER 9000
20 7000
6750
CLERK 4750
MANAGER 8750
如果只显示平均工资大于5000的职位:
SELECT deptno, job,AVG(sal) avg_sal FROM emp
GROUP BY deptno,job
HAVING AVG(sal) >5000;
注意:如果HAVING改成WHERE会出错.WHERE子句中不能有分组函数
分享到:
相关推荐
它为读者提供了一个实用的指南,帮助他们掌握SQL的基础知识和实战技巧。 使用场景及目标: 本篇文章适用于求职者准备涉及SQL的面试场景。它的目标是帮助求职者理解并掌握这些概念,从而在面试中更好地展示自己的技术...
第二章详细介绍了 SQL 语言基础知识,包括数值,数据库、表、列和别名, 如何设置和使用用户变量、系统变量和注释语法。 第三章详细介绍 GBase 8a 支持的操作符和函数,包括操作符、控制流函数、 字符串函数、数值...
这是我学习过程中整理的oracle数据库基础知识,里面包含了DML、DDL等相关语句。还解释了什么情况下该用什么样的SQL。包含了很多基础知识。欢迎大家收藏。
编程基础知识 1. 程序结构 PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,...
本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等项目,在表之间建立恰当的关系,并...
3.1 表的基础知识 37 3.1.1 表的基本结构 37 3.1.2 表的种类 38 3.2 sql数据类型 39 3.2.1 字符型数据 39 3.2.2 数字型数据 40 3.2.3 日期数据类型 41 3.2.4 二进制数据类型 43 3.2.5 文本和图形数据类型 44...
本文为你提供了2024年最全面的SQL面试题集锦,覆盖了从基础到高级的各类SQL知识点。内容涉及SQL的定义、数据库类型、SQL语言的不同分类(DDL、DML、DCL)、连接类型(内连接、左连接等)、索引的作用和原理、事务的...
3.1 表的基础知识 3.1.1 表的基本结构 3.1.2 表的种类 3.2 SQL数据类型 3.2.1 字符型数据 3.2.2 数字型数据 3.2.3 日期数据类型 3.2.4 二进制数据类型 3.2.5 文本和图形数据类型 3.2.6 自定义...
Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
第三章:SQL基础知识 第四章:使用SELECT语句 第五章:数据的限定与排序 第六章:多表连接技术 第二部分:ORACLE SQL高级应用 第一章:使用子查询 第二章:用户访问控制 第三章:Oracle的事务和锁 第四章:使用索引 ...
作者以实际工作为切入点,详细介绍了Oracle数据库的基础知识及PL/SQL程序设计实战的知识。本书共分为17章,主要介绍了数据库的入门知识、安装Oracle以及使用Oracle的客户端工具管理Oracle,Oracle数据库表、索引、...
本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...
SQL语句相关 DDL:数据定义语言(物理级别->在硬盘上创建或者删除) 创建数据库:CREATE database 名称 删除数据库:DROP database 名称 定位到数据库:USE 名称 设置自增:identity(起始值,自增值), 非空约束:not ...
10.4.1 不要交替使用DDL和DML语句 270 10.4.2 避免统计变化引起的重编译 271 10.4.3 使用表变量 273 10.4.4 避免在存储过程中修改SET选项 275 10.4.5 使用OPTIMIZE FOR查询提示 276 10.4.6 使用计划指南 277 ...
10.4.1 不要交替使用DDL和DML语句 270 10.4.2 避免统计变化引起的重编译 271 10.4.3 使用表变量 273 10.4.4 避免在存储过程中修改SET选项 275 10.4.5 使用OPTIMIZE FOR查询提示 276 10.4.6 使用计划指南 277 ...
它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。在甲骨文数据库管理方面,PL/SQL是对结构化查询语言(SQL)的过程语言扩展。PL/SQL的...
适合人群:具备一定数据库知识基础的新手小白 能学到什么:本次实验了解DML语言的SELECT语句对数据的查询,学会用DML语言对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。 阅读建议:1.“Sno,Cno”间逗号...
适合人群:具备一定数据库知识基础的新手小白 能学到什么:①掌握利用 SQL 查询分析器进行数据库及基本表的定义、删除与修改②掌握索引的建立与删除的方法③完成后续实验的准备(数据库的创建及数据准备)。 阅读...
本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...