5-基本的sql查询以及函数的使用
基本SQL查询语句以及函数的使用
格式元素
描述 YYYY
四位的年份 MONTH
月份的英文全称 MON
月份的英文简写 MM
月份的数字表示 DD
日起的1-31数字表示 D
星期几的数字表示1-7 DAY
星期几的全称 DY
星期几的英文简写 HH,HH24
时的数字表示1-12,1-24 MI
分 SS
秒 IW
本年过去的周数
--说明:查询基于HR用户表 --判断条件的综合可以使用AND OR --1.查询EMPLOYEES表的所有内容
SELECT * FROM HR.EMPLOYEES; --2.查询100号部门的员工
SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID=100; --3.支持进行比较的运算符: <, >, =, <>, >=, <=, IN, LIKE, IS NULL, BETWEEN AND;
--3.1查询工资在10000和20000之间的员工:
--注意(SALARY BETWEEN 值1 AND 值2) 等同于表达式 SALARY>=值1 and SALARY<=值2
SELECT * FROM HR.EMPLOYEES WHERE SALARY BETWEEN 10000 AND 17000;
SELECT * FROM HR.EMPLOYEES WHERE SALARY>=10000 AND SALARY<=17000; --3.2查询50,60,100部门的员工
SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID IN (50,60,100);
--等同于
SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID=50 OR DEPARTMENT_ID=60 OR DEPARTMENT_ID=100; --3.3在使用LIKE是可以使用_表示任意一个字符,%表示任意多个字符
--3.3.1查询FIRST_NAME以字母S开头的员工
SELECT * FROM HR.EMPLOYEES WHERE FIRST_NAME LIKE 'S%';
--3.3.2查询FIRST_NAME第二字母是a的员工
SELECT * FROM HR.EMPLOYEES WHERE FIRST_NAME LIKE '_a%';
--3.3.3查询FIRST_NAME包含字母n的员工
SELECT * FROM HR.EMPLOYEES WHERE FIRST_NAME LIKE '%n%';
--3.4判断MANAGAER_ID为空的员工
--注意:在判断是不是为空是不能使用=NULL,需要使用IS NULL,同理不为空应为IS NOT NULL;
SELECT * FROM HR.EMPLOYEES WHERE MANAGER_ID IS NULL; --4.按照工资高低排序显示员工信息
--注意默认是升序ASC ,降序为DESC
SELECT * FROM HR.EMPLOYEES ORDER BY SALARY desc;
--查询100号部门的员工并按照工资高低排序
SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID=100 ORDER BY SALARY DESC; --5.查询有员工的每个部门的员工数:对员工表按照DEPARTMENT_ID分组,使用order by
SELECT DEPARTMENT_ID,COUNT(*) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID; --6.查询员工数大于5的部门及部门人数:
--此时需要的是对分组好的数据再次进行筛选,可以使用HAVING来增加筛选条件.
SELECT DEPARTMENT_ID,COUNT(*) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID
HAVING COUNT(*)>5; --7在分组中可以使用的分组函数
--MAX,MIN,SUM,COUNT,AVG
--7.1所有员工最大工资
SELECT MAX(SALARY) FROM HR.EMPLOYEES;
--7.2每个部门最小工资
SELECT DEPARTMENT_ID,MIN(SALARY) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID;
--7.3每个部门人数
SELECT DEPARTMENT_ID,COUNT(*) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID;
--7.4每个部门平均工资,且平均工资大于10000的
SELECT DEPARTMENT_ID,AVG(SALARY) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID
HAVING AVG(SALARY)>10000;
--7.5每个部门的工资总数
SELECT DEPARTMENT_ID,SUM(SALARY) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID; --8基本的函数的使用:UPPER,LOWER,NVL
--dual是oracle的虚拟表
--字符函数
SELECT UPPER('abcd') FROM DUAL;
SELECT LOWER('ASV') FROM DUAL;
--to_char转换为字符窜
--转换函数NVL,若为NULL可以转换为指定的值
SELECT NVL(NULL,0) FROM DUAL;
--数值函数
SELECT ROUND(10.5),ROUND(10.4),ROUND(-10.5),ROUND(-10.6),ROUND(-10.4) FROM DUAL;--四舍五入
SELECT FLOOR(10.9),FLOOR(10.1) FROM DUAL;--下取整
SELECT CEIL(10.9),CEIL(10.1) FROM DUAL;--上取整
SELECT MOD(11,2),MOD(11,3) FROM DUAL;--取余数
--日期函数
--转换为日期:TO_DATE
--使用,当表内数据类型为DATE类型时,在插入数据时可以将字符窜转换为日起类型然后插入,或者数据更新时使用
UPDATE EMPLOYEES SET HIRE_DATE='2012-1-1' WHERE EMPLOYEE_ID=199;
--上面的更新语句会发生错误:ORA-01861: 文字与格式字符串不匹配
UPDATE EMPLOYEES SET HIRE_DATE=to_date('2012-1-1','yyyy-mm-dd') WHERE EMPLOYEE_ID=199;
--加上函数to_date()函数修改成功 --系统时间
SELECT SYSDATE FROM DUAL;
/*
不常用可能;
MONTHS_BETWEEN(date1,date2):
返回俩参数之间的月份 date1>date2返回正数反之返回负数结果的非整数部分表示不足一整月的那部分间隔
ADD_MONTHS(date,n):
向date加上n个月,n必须是整数并且不能为负数
NEXT_DAY(date,'char'):
求出date之后一周内某天char的日期,char是一个有效的表示星期几的数字或字符串
LAST_DAY(date):
求出date所在月的最后一天
ROUND(date,[,'fmt']):
将date按照fmt指定的格式进行四舍五入,fmt为可选项,如果没有指定fmt,则默认为'DD',将date四舍五入为最近的天
TRUNC(date,[,'fmt'])
将date按照fmt指定的格式进行截取,fmt为可选项,如果没有指定fmt,则默认为'DD',将date截取为最近的天
*/
--常用的数字格式转换,显示结果随后
SELECT TO_CHAR(10,'9999'),-- 10
TO_CHAR(100,'0000'),--0100
TO_CHAR(100,'$0000'),--$0100
TO_CHAR(100,'L0000'),--¥0100
TO_CHAR(100000000,'000,000,000,000')--000,100,000,000
from dual;
5-基本的sql查询以及函数的使用的更多相关文章
- sql查询 ——聚合函数
--聚合函数 -- sum() -- 求和 select sum(age) from student; -- count() -- 求数量 -- 数据量 select count(*) as '数量' ...
- MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?
如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...
- Hibernate 函数 ,子查询 和原生SQL查询
一. 函数 聚合函数:count(),avg(),sum(),min(),max() 例:(1)查询Dept表中的所有的记录条数. String hql=" select count(*) ...
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
SQL DATEDIFF语法及时间函数 Sql 查询当天.本周.本月记录 转:http://blog.csdn.net/Json1204/article/details/7863801?locatio ...
- SQL常见优化Sql查询性能的方法有哪些?
常见优化Sql查询性能的方法有哪些? 1.查询条件减少使用函数,避免全表扫描 2.减少不必要的表连接 3.有些数据操作的业务逻辑可以放到应用层进行实现 4.可以使用with as 5.使用“临时表”暂 ...
- Oracle常用SQL查询(2)
三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
- HQL查询——聚集函数
HQL查询--聚集函数 HQL也支持在选出的属性上使用聚集函数.HQL支持的聚集函数与SQL的完全相同: (1)avg:计算属性平均值: (2)count:统计选择对象的数量: (3)max:统计属性 ...
- SQL中随机数函数rand()简介
转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手, ...
随机推荐
- linux centos 网卡有关调试
本文章出至于设置固定IP不起作用,名称也无法修改 1.设置网卡配置文件 打开文件 vi /etc/sysconfig/network-scripts/ifcfg-enp8s0 把NAME.DEVICE ...
- Linkerd 2.10(Step by Step)—配置重试
Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...
- ROS catkin_make error Could not find a package configuration file provided by "actionlib_msgs"
在使用ROS catkin_make编译的时候,出现类似如下错误 CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cma ...
- 运行uni-app到微信开发者工具
1.工具及环境 HBuilder X 微信开发者工具 Node.js,测试:node -v(node安装) 和 npm -v(自带的npm也安装成功) 2.创建uni-app项目: 在点击工具栏里的文 ...
- Docker基本指令
镜像操作 检索:docker search 关键字 eg:docker search redis 拉取:docker pull 镜像名称:tag :tag可选的 tag表示标签,多为软件版本,默认是l ...
- Jenkins(4)- 在centos7.x下完全卸载Jenkins
如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 先关闭tomcat ./shutd ...
- LVS+keepalived集群
一.Keepalived工具介绍专为LVS和HA设计的一款健康检查工具 支持故障自动切换(Failover) 支持节点健康状态检查(Health Checking) 官方网站:http://www.k ...
- Java优化if-else代码
前言 开发系统一些状态,比如订单状态:数据库存储是数字或字母,但是需要显示中文或英文,一般用到if-else代码判断,但这种判断可读性比较差,也会影响后期维护,也比较容易出现bug.比如: 假设状态对 ...
- java原码反码补码以及位运算
原码, 反码, 补码的基础概念和计算方法. 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 1. 原码 原码就是符号位加上真值的绝对值, 即 ...
- 改Jupyter Notebook的默认工作路径?
如何更改Jupyter Notebook的默认工作路径? 1.在cmd中输入命令使Jupyter产生配置文件:Jupyter_notebook_config.py jupyter notebook - ...