sql 日记

--4.选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间
select last_name,job_id,hire_date
from employees
where to_char(hire_date,‘yyyy-mm-dd‘) between ‘1998-02-01‘ and ‘1998-05-01‘

--5.选择在20或50号部门工作的员工姓名和部门号
select last_name,department_id
from employees
--where department_id between 20 and 50
where department_id >=20 and department_id <=50

--6.选择在1994年雇用的员工的姓名和雇用时间
select last_name,hire_date
from employees
--where to_char(hire_date,‘yyyy‘)=‘1994‘
where hire_date like ‘%94‘

--7.选择公司中没有管理者的员工姓名及job_id
select last_name,job_id
from employees
where manager_id is null

--8.选择公司中有奖金的员工姓名,工资和奖金级别
select last_name,salary,commission_pct
from employees
where commission_pct is not null

--9.选择员工姓名的第三个字母是a的员工姓名
select last_name
from employees
where last_name = ‘__a%‘

--10.选择姓名中有字母a和e的员工姓名
select last_name
from employees
where last_name like ‘%a%e%‘ or last_name like ‘%e%a%‘

1.显示系统时间(注:日期+时间)
select to_char(sysdate,‘yyyy-mm-dd hh:mi:ss‘)
from dual

--2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)
select department_id,last_name,salary,salary*(1+0.2) "new salary"
from employee01

--将员工的姓名按首字母排序,并写出姓名的长度(length)
select last_name,length(last_name)
from employee01
order by last_name asc

--4.查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。
select last_name,hire_date,round(months_between(sysdate,hire_date),1) worked_month
from employees

--5.查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数降序排列
select last_name,hire_date,round(months_between(sysdate,hire_date),1) worked_month
from employees
order by worked_month desc

--6.做一个查询,产生下面的结果
--<last_name> earns <salary> monthly but wants <salary*3>
Dream Salary
-------------------------------------------------------------------
King earns $24240 monthly but wants $72720

select last_name || ‘ earns ‘ || to_char(salary,‘$999999‘) || ‘ monthly but wants ‘ || to_char(salary*3,‘$999999‘) "Dream Salary"
from employees

select last_name "Last_name",job_id "Job_id",decode(
job_id,‘AD_PRES‘,‘A‘,
‘ST_MAN‘,‘B‘,
‘IT_PROG‘,‘C‘,
‘SA_REP‘,‘D‘,
‘ST_CLERK‘,‘E‘) "Grade"
from employees

时间: 2024-10-03 19:59:04

sql 日记的相关文章

学习SQL日记(一)

写一下总结吧 总是学了就忘. 11.01 重新学习SQL -------Oracle #1. column format 通过使用COLUMN命令  可以控制查询结果集中列的显示格式. 语法格式:column[column_name  alias option] column_name参数用于指定将要控制的列的名称 alias 参数用于指定列的别名 option参数用于指定某个列的显示格式 option选项的部分取值及意义 clear 清除为该列设置的显示属性,使其使用默认的显示属性 color

学习SQL日记(五)

①where 子句里面根据传入参数 决定使用哪一个条件 SQL> select 1 from dual where decode(1,1,1,0)=1; SQL> select 1 from dual where (case when 1=1 then 1 else 0 end) = 1;

学习SQL日记(六)

①ORACLE 层次查询 --(递归语句)--(查询树状结构) select × from  table start with table.col1 = '001' --根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树. onnect by proir col1 = parent_id   ---上一条语句中的col1 = 本条记录的parent_id 扫描树结构表时,需要依此访问树结构的每个节点,一个节点只能访问一次,其访问的步骤如下:      第一步:从根节点开始:

学习SQL日记(七)

Ⅰ.在存储过程中使用游标 ①声明游标 CURSOR CUR_EMP IS SELECT * FROM EMP ; ②打开游标 ③循环取数 ④设置退出条件 ⑤关闭循环 ⑥关闭游标 CREATE OR REPLACE PROCEDURE PRO_EMP_TEST IS EMP_T EMP%ROWTYPE; CURSOR CUR_EMP IS SELECT * FROM EMP ; BEGIN OPEN CUR_EMP; LOOP FETCH CUR_EMP INTO EMP_T ; EXIT WHE

学习SQL日记(八)--ORACLE CASE WHEN

Ⅰ. ORACLE  WHERE 字句里面使用CASE WHEN 25行 Ⅱ.  嵌套使用 CASE WHEN  2~13行 1 SELECT 2 SUM(CASE WHEN M.MV_AVG < 800 AND C.THICKNESS >= 0.5 AND C.THICKNESS <= 0.9 THEN (CASE WHEN D.MV_AVG = 0 OR D.MV_AVG IS NULL THEN 0 ELSE P.LENGTH / D.MV_AVG END ) END ) R1CD

学习SQL日记(二)

#1. 查询语句中使用函数 @1. round(d1,d2)  用于数字的四舍五入 d1表示数字 d2表示小数点后的位数 (d2不写 默认为零) @2. trunc(d1,d2) 截取  去尾法 @3. 日期函数 sysdate select sysdate from dual; ----获取系统当前时间 @4. 日期数据相减,得到两个日期之间的天数差 不足一天用小数表示 @5.months_between(d1,d2)  得到d1 ,d2两个日期数据之间所差的月份 小数表示 @6.计算d2个月

学习SQL日记(三)

#1. 系统日期 .时间函数 ^1.SELECT TO_CHAR (SYSDATE ,'YYYY-MM-DD HH24:MI:SS') FROM DUAL -- 查询系统当前日期 ^2.SELECT SYSTIMESTAMP FROM DUAL --查询带时区的系统日期 ^3.SELECT DBTIMEZONE FROM DUAL --查询当前时区 SELECT SESSIONTIMEZONE FROM DUAL--查询当前会话的时区 ^4.SELECT TO_CHAR(ADD_MONTHS(T

学习SQL日记(九)--ORACLE 创建函数

Ⅰ.创建函数 Ⅱ.截取字符串函数 : REGEXP_SUBSTR 1 CREATE OR REPLACE FUNCTION GET_NUM(GALV_COOT VARCHAR2) RETURN NUMBER IS 2 RESULT NUMBER; 3 BEGIN 4 RESULT := TO_NUMBER(REGEXP_SUBSTR(GALV_COOT , '\d{2,3}')); --取字符串里最少两位 最多三位 的数字 5 IF RESULT IS NULL 6 THEN RETURN 0

学习SQL日记(四)

问题① PRODCOILS表里有10000条数据 左连接 另一个表 temp (40000条数据) 得出结果40000条数据  不用想了 40000条里有大量重复数据 为什么有 重复数据  :temp 是 查询结果集  coils 表 连接 steel_grade 用的不是主键 - -! 造成数据重复  使用distinct就能解决