数据库本身不难,难的是后面多层混合的关系,下面这些会了,也就入门了,初来乍到。多多指教哈,我也是初学者,刚刚学到这个,以后会多多发布的,大家一起学习努力!
-- 1、查询dept表的结构
desc dept;
-- 2、检索dept表中的所有列信息
select * from
-- 3、检索emp表中的员工姓名、月收入及部门编号
select e.ename , e.sal , e.deptno from
-- 4、检索emp表中员工姓名、及雇佣时间
/*日期数据的默认显示格式为"DD-MM-YY",
如果希望使用其他显示格式(YYYY-MM-DD),
那么必须使用TO_CHAR函数进行转换。*/
select e.ename , to_char(e.hiredate,'yyyy-mm-dd') from
-- 5、使用distinct去掉重复行。
-- 检索emp表中的部门编号及工种,并去掉重复行。
select distinct e.deptno , e.job from emp e
-- 6、使用表达式来显示列
-- 检索emp表中的员工姓名及全年的月收入
select e.ename , e.sal*12 from
-- 7、使用列别名
-- 用姓名显示员工姓名,用年收入显示全年月收入。
select e.ename "姓名" , e.sal*12 "年收入" from
-- 8、连接字符串
/*在oracle中连接字符串用"||"操作符来完成的,当连接字符串时,
如果在字符串要加入数字值,那么在"||"后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号。
检索emp表,用is a 这个字符串来连接员工姓名和工种两个字段*/
select e.ename || ' is a ' || e.job from
-- 9、使用WHERE子句
-- 检索月收入大于2000的员工姓名及月收入。
select e.ename , e.sal from emp e where e.sal>2000
-- 检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间。
select e.ename , e.sal , e.hiredate from emp e where e.sal between 1000 and 2000
-- 10、like的用法:
-- 检索以S开头的员工姓名及月收入。
select e.ename , e.sal from emp e where e.ename like 'S%'
-- 检索员工姓名中的第三个字符是A的员工姓名及月收入。
select e.ename , e.sal from emp e where e.ename like '__A%'
-- 11、在WHERE条件中使用IN操作符
-- 检索emp表中月收入是800的或是1250的员工姓名及部门编号
select e.ename , e.deptno from emp e where e.sal in(800,1250)
-- 12、在WHERE条件中使用逻辑操作符(AND、OR、NOT)
-- 显示在部门20中岗位CLERK的所有雇员信息
select * from emp e where e.deptno=20 and e.job='CLERK'
-- 显示工资高于2500或岗位为MANAGER的所有雇员信息
select * from emp e where e.sal>2500 or e.job='MANAGER'
-- 13、查询表中是空值的数据
-- 检索emp表中有提成的员工姓名、月收入及提成。
select e.ename , e.sal , e.comm from emp e where e.comm is not null
-- 14、使用ORDER BY子句,进行排序。
-- 检索emp表中部门编号是30的员工姓名、月收入及提成,并要求其结果按月收入升序、然后按提成降序显示。
select e.ename , e.sal , e.comm
from emp e
where e.deptno=30
order by e.sal asc , e.comm desc