1、课程名称SQL语句.docVIP

  • 15
  • 0
  • 约2.74万字
  • 约 25页
  • 2018-12-03 发布于天津
  • 举报
1、课程名称SQL语句

第( PAGE 25)页 共( NUMPAGES 25)页 1、课程名称:SQL语句 2、知识点 2.1、上次课程的主要知识点 1、 Oracle数据库的四个主要用户: · 超级管理员:sys / change_on_install; · 普通管理员:system / manager; · 普通用户(解锁):scott / tiger; · 海量数据用户(解锁):sh / sh; 2、 sqlplus的主要命令: · 设置每行显示的长度:SET LINESIZE 长度; · 设置每页显示的长度:SET PAGESIZE 长度; · 编辑与执行指令:ed、@; · 连接用户:CONN 用户名 / 密码 [AS SYSDBA]; · 调用本机程序:HOST 命令; 3、 SQL的基本语法 SELECT [DISTINCT] * | 列 [别名] [,列 [别名],列 [别名] ...] FROM 表名称 [别名] [WHERE 条件(s)] [ORDER BY 排序字段 [ASC | DESC] [,排序字段 [ASC | DESC],...]] ; 4、 在WHERE子句里面可以编写多个条件,条件判断:关系运算、逻辑运算、BETWEEN..AND、IN、LIKE、IS NULL; 5、 单行函数:UPPER()、LOWER()、INITCAP()、REPLACE()、LENGTH()、INSTR()、SUBSTR()、ROUND()、TO_CHAR()、TO_DATE()、NVL()、DECODE()、SYSDATE、MONTHS_BETWEEN()、ADD_MONTHS()、LAST_DAY()、NEXT_DAY(); 2.2、习题讲解 1、 找出各月倒数第3天受雇的所有员工。 首先需要确定的是,每一个雇员的雇佣日期是不一样的,那么每一个雇佣日期所在月的最后一天(LAST_DAY())也肯定不一样,现在要求计算出各月倒数第三天雇佣(日期 – 数字)。 公式:雇佣日期 = LAST_DAY(雇佣日期) – 2; SELECT * FROM emp WHERE hiredate=LAST_DAY(hiredate)-2 ; 2、 找出早于12年前受雇的员工。 如果要计算年份,那么最简单的做法就是通过月数(MONTHS_BETWEEN())除以12; SELECT * FROM emp WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/1212 ; 3、 找出在(任何年份的)2月受聘的所有员工。 如果要想求出一个日期的月数,那么使用TO_CHAR()函数即可。 SELECT * FROM emp WHERE TO_CHAR(hiredate,mm)=02 ; SELECT * FROM emp WHERE TO_CHAR(hiredate,mm)=2 ; 4、 显示满10年服务年限的员工的姓名和受雇日期。 SELECT ename,hiredate FROM emp WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/1210 ; 5、 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。 SELECT ename,hiredate FROM emp ORDER BY hiredate ; 6、 显示所有员工姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面。 既然要拆分年和月,则使用TO_CHAR()函数完成。 SELECT ename,TO_CHAR(hiredate,yyyy) year,TO_CHAR(hiredate,mm) months FROM emp ORDER BY months,year ; 可以发现,现在在Order BY子句里面使用的是别名,在所有子句之中,只有ORDER BY可以使用别名。 7、 显示在一个月为30天的情况所有员工的日薪金,忽略余数 SELECT ename,TRUNC(sal/30) FROM emp ; 8、 以年月日的方式显示所有员工的服务年限。 本题目的含义如下,例如,现在假设一个雇员是在1981-02-14雇佣,而今天的日期是2012年03月27日,那么这个雇员已经被公司雇佣了:30年、1个月、13天; · 步骤一:计算出每一个雇员到今天为止雇佣的年份,通过月份操作; SELECT empno,ename,hiredate, TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year FROM emp ; · 步骤二:计算出每一个雇员被雇佣的月数,在之前计算年的时候剩下的无法整除的部分就是月,使用M

文档评论(0)

1亿VIP精品文档

相关文档