Select语句完整的语法规则如下:
select {*,column[alias],...}
from table
[where...] 首先执行where语句将原有记录过滤
[group by...] 执行group by 进行分组
[having...] 执行having过滤分组
[order by...] 然后将select中的字段值选出来
最后执行order by 进行排序
例子:
1 between...and...
select ename,sal from emp where sal between 800 and 1500;
说明:between...and... 包含相等的情况
2.处理日期 oracle的默认日期格式为“DD-MON-RR”,即两位的日期-月份缩写(对中文来说就是全称)-两位的年份,如下:2017年7月6日
select distinct * from user_role t where rolename in ('机构管理员','管理人员','测试人员') and t.operatetime >'01-7月-17 ';
select distinct * from user_role t where rolename in ('机构管理员','管理人员','测试人员') and t.operatetime between '01-7月-17 'and '06-7月-17 ' ;
3.模糊查询
关键字‘like’被用作模糊查询 ,通配'%’ 表示零个或多个字符;
通配'_' 表示一个字符;
select distinct * from user_role t where rolename like '%管理%';
select distinct * from user_role t where rolename like '管理_';
4 .排序
order by 通常情况下,取出数据的时候是按照插入数据时的顺序进行显示的,当需要按要求排序显示时,用关键字order by . 默认升序asc 降序 desc
select t.rolename ,t.operatetime from user_role t where t.rolename in ('机构管理员','管理人员','测试人员') and t.operatetime > '01-7月-17 ' order by t.operatetime desc ;
按照多个字段排序
select t.userroleid , t.rolename ,t.operatetime from user_role t where t.rolename in ('机构管理员','管理人员','测试人员') and t.operatetime > '01-7月-17 ' order by t.operatetime desc ,t.userroleid desc ;
5 .大小写sql函数 lower upper
select lower('AaCDEFG') a from dual
select upper('AaCdFG') a from dual
6 取子串substr
select substr('sssssshello','10',5) from dual;
7.取ASCII码数值所对应的字符
select chr(65) from dual;//A
8.求一个字符的ASCII码数值
select ascii('A') from dual; //65
9.四舍五入 round
select round(24.5) from dual; //25
select round(24.5527,2) from dual;//24.55
select round(24.5527,-2) from dual;//0
select round(24.5527,-1) from dual;//20
10.to_char();
to_char
用于将数字或日期 转换为特定的字符串,to_char有两个参数,
第一个参数为需要进行转换的日期或数字
第二个参数为特定的转换格式,对于数字,to_char 有以下几个格式指定:
格式控制符 含义
9 代表一位数字,如果该位没有数字则不进行显示,但对于小数点后面的部分仍会强制显示
0 代表一位数字,如果该位没有数字则强制显示0
$ 显示美元符号
L 显示本地货币符号
. 显示小数点
, 显示千分位符号
日期格式
YYYY,YY 代表四位、两位数字的年份
MM 用数字表示的月份
DD 数字表示的日
MON 月份的缩写,对中文月份来说就是全拼 (2月)
DY 星期的缩写,对中文的星期来说就是全称
HH24、HH12 12小时 或者24小时
MI 分钟数
SS 秒数
select to_char(sysdate,'YYYY-MM-DD MON DY HH24:MI:SS') from dual;
//2017-07-18 7月 星期二 16:49:31
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') from dual;
11.to_date
将特定格式的字符串转换为日期格式,这个函数共有两个参数,
第一个参数为一个自定义的日期字符串
第二个参数指定这个字符串的格式
eg: 查询出1981年3月2日中午以后入职的雇员信息
select ename ,hiredate from emp where hiredate > to_date('1981-03-02 12:00:00','YYYY-MM-DD HH24:MI:SS');
select T.ROLENAME e ,T.OPERATETIME from aes_user_role T where T.OPERATETIME > to_date('2017-07-02 12:00:00','YYYY-MM-DD HH24:MI:SS') order by T.Operatetime desc;
12. to_number
将特定格式的字符串转换成数字格式,这个函数共有两个参数,
第一个参数为一个自定义的数字字符串,
第二个参数指定这个字符串的格式
select ename,sal from emp where sal > to_number('$1,250.00','$9,999.99');//1250
select TO_NUMBER('199912'),TO_NUMBER('450.05') from dual;//199912,450.05
13.组函数,聚合函数,聚组函数 都一个意思
avg: 求平均值
max:求最大值
min: 求最小值
sum: 求和
count: 求记录的数量
14. group by 分组
当需要进行数据分组的时候用到
eg: 计算每个部门的平均工资
select mvg(sal) from emp group by deptno;
规则: 出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。
出错eg: select ename ,max(sal) from emp group by deptno;
出错解释: 如果按照deptno进行分组,每组会有一个薪水最大值,但每个组里面会有多个名字,不能够产生唯一的ename,因此会报错。
正常eg:select t.enterprisedepid ,sysdate ,2*3 from enterprise_dep t group by t.enterprisedepid;
15. 使用having对分组进行限制
假如我们需要从分组数据中把某些特定的组剔除出去的时候,需要使用Having关键字,例如: 将平均薪水大于1000的组的平均薪水从emp表中取出来
eg: select avg(sal) from emp group by deptno having avg(sal)>1000;
综合应用:
我们要求薪水大于1200,按照部门分组,而且这些人分组后组内平均薪水必须大于1500,我们要查询分组的平均工资。
select avg(sal) from emp where sal>1200 group by deptno having avg(sal)>1500 order by avg(sal);
解释:上述语句中首先会执行Where语句,将不符合选择条件的记录过滤掉;
然后再将过滤后的数据按照group by 子句中的字段进行分组;
接着使用having子句过滤掉不符合条件的分组;
然后再将剩下的数据排序显示。
分享到:
相关推荐
### DBA常用SQL总结 #### 一、DBA的基本职责与技能要求 作为一个数据库管理员(DBA),除了具备一定的技术背景之外,还需要深入了解业务流程以及业务对于数据库的具体操作需求。这意味着DBA不仅要能够确保数据库...
`SELECT`语句是最常用的SQL语句之一,用于从表中检索数据。 **示例代码:** ```sql SELECT * FROM test_table; ``` - `SELECT *`表示选择所有列。 - `FROM`后跟表名。 ### 删除表 (DROP TABLE) `DROP TABLE`语句...
Hive学习总结及应用.pdf 本文档主要介绍了Hive的基本概念、应用场景、元数据存储方式、数据导入和导出方式等。下面是对文档中提到的知识点的详细解释: 一、Hive概述 Hive是一个构建在HDFS和Map/Reduce之上的可...
根据给定的文件信息,以下是对“常用 SQL 语句大全+50个常用sql语句总结”的详细解析,涵盖数据操作、数据定义、数据控制、事务控制以及程序化 SQL 等方面的重要知识点。 ### 数据操作 1. **SELECT**:用于从...
SQL常用函数总结 SQL作为一门标准的数据库语言,在实际应用中有很多常用的函数和语句,这些函数和语句可以帮助我们更方便地操作和处理数据。在本文中,我们将总结一些常用的SQL函数和语句,并对其进行详细的解释。 ...
### 常用SQL操作总结 #### 一、多表查询方式 在关系型数据库中,经常需要从多个表中获取信息。为了有效地从多个表中检索数据,SQL提供了多种多表查询的方法。 ##### 1. 方式一:SELECT FROM WHERE (通用型) 这种...
本文将深入探讨“SQL语句总结”这一主题,特别关注MySQL数据库的常用操作。 首先,我们从基础的数据库操作开始,即CRUD(Create、Read、Update、Delete),它们构成了所有数据库操作的核心。 1. **创建(Create)*...
sql注入总结 语句精简 类型丰富 种类齐全 值得学习 欢迎借鉴
SQL(Structured Query Language)是用于管理和操作关系...总结,SQL是数据库操作的核心,无论是在小型项目还是大型企业系统中,都离不开它的身影。掌握这些基本语句和进阶技巧,将使你在数据处理上更加得心应手。
总结来说,这篇“常用sql语句汇总”涵盖了SQL中涉及事务管理、数据导入导出效率提升、时间序列数据处理以及数据库管理等多个核心概念。熟练掌握这些技能对于任何数据库管理员或开发人员来说都至关重要,能够帮助他们...
本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...
本篇文章总结了常用SQL操作技巧,涵盖复制表、拷贝表、显示文章、外连接查询、日程安排提前五分钟提醒、两张关联表删除、统计分析等多种SQL操作技巧。这些技巧可以帮助开发者解决实际问题,并提高开发效率。
本文将深入解析标题为“开发常用的SQL语句”以及描述为“软件开发必备的SQL语句”的知识点,通过解读给定的部分内容,提供一系列关键SQL语句及其应用情境。 ### SELECT语句 SELECT语句是最基本也是最常用的SQL查询...
常用mysql sql语句总结
在本篇总结中,我们将深入探讨SQL的核心概念、常见操作以及实践经验,旨在帮助你提升SQL技能并积累宝贵的经验。 一、SQL基础 1. 数据库与表:SQL主要用于创建、查询、更新和管理数据库中的数据。数据库是一个组织...
本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 * 创建数据库:CREATE ...
文档内容为:神通KSTORE数据库的常用sql语句总结。
以下是一些SQL语句的总结,这些语句在日常开发和数据分析中非常常见。 1. **数据定义语言(DDL)**:这部分SQL语句用于创建和修改数据库结构。 - `CREATE TABLE`:创建新表,定义列名、数据类型和其他属性。 - `...