OracleSQL讲义(Student)(5)

2019-05-18 11:18

where start_date like '%MAY%' 或

select

id,first_name,

start_date,to_char(start_date,’mm’) from s_emp Where to_char(start_date, ‘mm’)=05 例子31:求出下个月的1号?

select trunc(add_months(sysdate,1),'mm') from dual

例子32:找出90年上半年入职的员工信息?

select id,first_name,start_date from s_emp 2 where round(start_date,'year') like '?' and start_date like '?';

例子33:找出四月份入职的员工;[请使用单行函数来做] --- 转换函数:

to_date('str', 'fmt'): 将字符串转成指定格式的日期 to_date('2010 08 23 10:10:10','yyyy mm dd hh24:mi:ss')

to_char(date|number, 'fmt'):将日期转字符和将数字

转字符

1) 将日期转字符

日期格式要用有效格式,格式大小写敏感: 'yyyy mm dd hh24:mi:ss'(标准日期格式) 'year'(年的全拼)

'month'(月的全拼) 'mm'(2位数字表示的月) 'day'(星期的全拼) 'dd'(2位的天)

'dy'(3位字母表示的星期) 'ddspth' (日期的序数词) 2) 将数字转字符

NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

AMERICAN_AMERICA.US7ASCII select to_char(salary,'$99,999.99') from s_emp; select to_char(salary,'$00,000.00') from s_emp; select to_char(salary,'L00,000.00') from s_emp;

to_number():

1) 将字符串转换为数字数据类型

select to_number('123456') from dual;

select trunc(to_number('123.123'),2) from dual;

2) 十六进制进制转化为十进制的数 select to_number('ab','xx') from dual; 3) 十进制转化为十六进制的数 select to_char(32,'xxxx') from dual;

--- 嵌套单行函数:由内到外依次执行。 F3(F2(F1(column,arg1),arg2),arg3); 单行函数的总结:

a) 单行函数可以任意的嵌套

b) 可以在数字,日期,字符之间互相转换。 使用:to_char,to_date,to_number

c) dual 是一张系统提供的哑表, sysdate 表示当前的系统时间, 是一个伪列。

例子34:找出15号后入职的员工信息? 十三、

Join(连接操作)

等值连接、非等值连接、自连接、内连接、外连接(左外连接和右外连接)

内连接:核心是一定要匹配(精确匹配)上。 外连接:核心是一个都不能少。 --- 等值连接:

例子35:列出员工名字和部门名字?

Select d.id ,d.name, e.id,e.first_name from s_emp e, s_dept d where e.dept_id = d.id 注意:

一定要指定表之间的关联条件;

where 对于单表时对记录过滤; 对于多表时对笛卡尔积过滤;

例子36:列出部门号、部门名称、地区名称?

select d.id, d.name, r.name from s_dept d, s_region r

where d.region_id = r.id

例子37:列出亚洲地区有多少个部门?

select d.id, d.name from s_dept d, s_region r where d.region_id = r.id and r.name = 'Asia' 例子38:列出‘Carmen’在哪个地区上班? Select e.first_name, d.name, r.name From s_emp e, s_dept d, s_region r Where e.first_name = ‘Carmen’ And e.dept_id = d.id And d.region_id = r.id

例子39:列出亚洲地区有多少员工?

select e.id, e.first_name, e.salary, r.name from s_emp e, s_region r, s_dept d where r.name = 'Asia' and e.dept_id = d.id and d.region_id = r.id

例子40:列出亚洲地区营销部门有那些员工?

select e.id,e.first_name,e.salary,r.name from

s_emp e,s_region r,s_dept d where r.name = 'Asia'and e.dept_id=d.id

and d.region_id =r.id and d.name='Sales' --- 非等值连接:

例子41:找出营销部门工资在1500-2000之间的员工?

select e.id,e.first_name,d.name, e.salary from s_emp e, s_dept d

where e.salary > 1500 and e.salary < 2000 and d.name = 'Sales' and e.dept_id = d.id

--- 自连接:

例子42:列出员工名称和领导名称的对应关系? e.manager_id = m.id

例子43:‘Mark’的领导是谁?

Select e.first_name,m.first_name, e.manager_id,m.id from s_emp e, s_emp m

WHERE e.first_name = 'Mark' and e.manager_id = m.id

例子44:‘Carmen’是谁的领导?


OracleSQL讲义(Student)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:地基与基础试题库(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: