基本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查询以及函数的使用的更多相关文章

  1. sql查询 ——聚合函数

    --聚合函数 -- sum() -- 求和 select sum(age) from student; -- count() -- 求数量 -- 数据量 select count(*) as '数量' ...

  2. MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?

    如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...

  3. Hibernate 函数 ,子查询 和原生SQL查询

    一. 函数 聚合函数:count(),avg(),sum(),min(),max() 例:(1)查询Dept表中的所有的记录条数. String hql=" select count(*) ...

  4. SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录

    SQL DATEDIFF语法及时间函数 Sql 查询当天.本周.本月记录 转:http://blog.csdn.net/Json1204/article/details/7863801?locatio ...

  5. SQL常见优化Sql查询性能的方法有哪些?

    常见优化Sql查询性能的方法有哪些? 1.查询条件减少使用函数,避免全表扫描 2.减少不必要的表连接 3.有些数据操作的业务逻辑可以放到应用层进行实现 4.可以使用with as 5.使用“临时表”暂 ...

  6. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  7. SQL Server 聚合函数算法优化技巧

    Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...

  8. HQL查询——聚集函数

    HQL查询--聚集函数 HQL也支持在选出的属性上使用聚集函数.HQL支持的聚集函数与SQL的完全相同: (1)avg:计算属性平均值: (2)count:统计选择对象的数量: (3)max:统计属性 ...

  9. SQL中随机数函数rand()简介

    转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手, ...

随机推荐

  1. opencv入门系列教学(五)图像的基本操作(像素值、属性、ROI和边框)

    0.序言 每个图像是由一个个点组成的,而这些点可以表示为像素值的形式. 这篇博客里我们将学会: 访问像素值并修改它们 . 访问图像属性 . 设置感兴趣区域(ROI) . 分割和合并图像. 对于图像的基 ...

  2. rabbitMQ重复消费(结合死循环重发那一篇看)

    /** * 重复消费逻辑判断与处理 */ @Component public class RepeatMqConsumer { /** * 服务对象 */ private int count=1; @ ...

  3. 在Excel中怎样才能在某一行前面一次插入多行?

    你在要插入的行以下选中多少行,点插入,就能插入多少行. ​

  4. MySQL的主从复制步骤详解及常见错误解决方法

    mysql主从复制(replication同步)现在企业用的比较多,也很成熟.它有以下优点: 1.降低主服务器压力,可在从库上执行查询工作. 2.在从库上进行备份,避免影响主服务器服务. 3.当主库出 ...

  5. D3之svg transform 与 css3 transform 区别与联系

    D3就不用多介绍了,在数据可视化界属于大佬级别的js库.在这里主要想记录一下在写程序期间遇到的一个问题. 如下图所示,想完成主视图在小地图上的映射,小地图的白色矩形框用来代表当前主视图可见区域,主视图 ...

  6. Qt5获取系统文件图标,文件路径

    获取系统图标: QFileIconProvider icon_provider; QIcon icon = icon_provider.icon(QFileIconProvider::Folder); ...

  7. GUI实现超简单的计算器

    计算器样式 实现代码 //实现超简易的计算器 public class Test02 { public static void main(String[] args) { Counter counte ...

  8. 假期作业03:使用IDE开发你的Java程序

    假期作业03:使用IDE开发你的Java程序 一.使用Eclipse创建一个Java项目HelloWorldPrj,编写一个Java程序并运行. 首先要下载eclipse. (注意这里要选一个中国的, ...

  9. Java基础(二)——内部类

    一.内部类 内部类(Inner Class)就是定义在一个类里面的类.与之对应,包含内部类的类被称为外部类.内部类可以用private修饰. 1.为什么要定义内部类?或者内部类的作用是什么? 内部类提 ...

  10. vue+element+echarts柱状图+列表

    前端由vue+element搭建框架,引入vue和element的index.js和css就可以写页面: 页面和js可以echarts官网实例看下都是有的,主要看下如何动态赋值: 柱状图和列表: &l ...