基本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. mysql基础操作(三):数据约束

    首先创建一个数据库 create database homework default character set utf8; use homework; 1.1 默认值约束(default) -- 数 ...

  2. win10画板超实用的快捷键

    win10画板超实用的快捷键链接: Windows 7 画图中的快捷键 Windows中画图的快捷键 其中有windows默认的快捷键,关于画图工具加入到快捷工具也有详细的介绍.

  3. 剑指 Offer 32 - I. 从上到下打印二叉树

    剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 ...

  4. vue 导出excel后端返回乱码下载不了的解析问题

    有俩种方法可以用 第一种方法: 解析:直接解析并且下载后端的乱码  this.download('后端给的导出excel的方法', {        ...this.queryParams  }, ` ...

  5. 为什么Class实例可以不是全局唯一的——自定义类加载器

    为什么Class实例可以不是全局唯一的 通过定义两个类加载器加载同一字节码文件来证明Class实例为什么不是全局唯一的 1.将一个名为Demo(没有后缀)的字节码文件放在D盘根目录 2.定义两个类加载 ...

  6. react + layui 坑总结

    与react 结合的时候,layui 是纯dom操作,而react是虚拟dom ,二者的结合难免会出现诸多问题. 1 select 下拉框 默认值的修改要通过defaultValue 属性来修改,并且 ...

  7. AntDesign VUE:上传组件自定义限制的两种方式(Boolean、Promise)

    AntD上传组件 AntDesign VUE文档 第一种方式 beforeUpload(file) { let isLt = true if (filesSize) { isLt = file.siz ...

  8. redis存取数据Hash

    一.概念 二.存取散列Hash值 1. 2.JSON字符串存取,没有更新值的字段资源浪费 使用散列Hash存取,可以单独到一个或多个字段: 3.hsetnx,属性不存在就新增并赋值,属性已存在啥也不干 ...

  9. salesforce零基础学习(一百零六)Dynamic Form

    本篇参考:https://trailblazer.salesforce.com/ideaview?id=08730000000BroxAAC https://help.salesforce.com/s ...

  10. Java匿名内部类只可使用一次的理解

    匿名内部类只能使用一次,就不能在使用. 为了验证"只能使用一次"的实际含义,首先在程序中实例化了两个对象.并且在相应的类中加入了实现接口的匿名内部类: package com.An ...