sql习题一--表的查看,简单sql

使用sqlplus工具链接到本身的用户完成下面练习  
1.显示登录用户是哪一个?
SQL> show user  
USER is "SCOTT"
 
2.显示当前用户有哪些对象?
SQL> desc user_objects;
 
SQL> select OBJECT_NAME,OBJECT_TYPE  from user_objects;
 
 
3.显示当前用户有哪些表?
SQL> desc user_tables;  
SQL>select * from tab; 或 select * from user_tables;
 
 
 
4.描述这些表的结构,了解列的含义
deac 表名  //查看表的结构
 
TNAME                  TABTYPE  CLUSTERID
------------------------------ ------- ----------
BONUS                  TABLE
DEPT                   TABLE
EMP                TABLE
SALGRADE               TABLE
 
 
 
5.显示员工表全部信息
select * from  EMP;
 
6.显示员工名字,月薪
select ENAME,SAL from EMP;
 
7.显示员工名字,职位,入职时间,月薪,查看不一样类型列数据如何对齐的。
SQL> select ENAME,JOB,HIREDATE,SAL from EMP;
对齐方式,除了最后一列是右对齐,其他列都是左对齐
 
8.显示员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP;
 
9.显示员工名字,月薪,奖金,总月薪,给总月薪列定义一个新列名total_sal  
SQL> select ENAME,COMM,SAL+nvl(COMM,0) as "tatal_sal"  from EMP;
 
10.显示员工名字,部门编号,年薪,给年薪定义个列名
SQL> select ENAME,EMPNO ,(nvl(COMM,0)+SAL)*12 as "year_sal" from EMP;
 
11.显示员工全部惟一部门编号信息
SQL> select distinct ( DEPTNO)  from EMP ;
 
12.显示员工名字,职位[名字与职位之间用逗号和空格分割开]
SQL> select ENAME||' ,'||JOB from EMP;
 
13.显示员工名字,职位[名字与职位之间增长 is work 显示内容]
SQL> select ENAME||' is work '||JOB from EMP;
 
14.显示员工名字,职位[名字与职位之间增长 ‘s work 显示内容]
select ENAME||q'('s work)'||JOB from EMP;
 
15.显示员工编号为7788的员工名字
SQL> select ENAME from EMP where EMPNO=7788;
 
16.显示员工名字为FORD的职位,月薪
SQL> select JOB,SAL from EMP where ENAME='FORD';
 
 
17.显示员工入职时间为01-MAY-81的员工名字,员工年薪
SQL> select ENAME,(nvl(COMM,0)+SAL)*12 as "year_sal" from EMP where
HIREDATE='01-MAY-81';
 
18.显示员工月薪为3000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL=3000;
 
19.显示员工月薪不是3000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL <>|^= |!= 3000;三种方式均可以
 
 
20.显示员工月薪大于2800的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL>2800;
 
21.显示员工月薪不大于2800的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL<=2800;
 
22.显示员工月薪3000和5000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL in( 3000 , 5000);
 
23.显示员工月薪不是3000和不是5000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL not in ( 3000 and 5000);
 
24.显示员工月薪2000到3000之间的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL  between 2000 and 3000;
 
25.显示员工月薪非2000到3000之间的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL not  between 2000 and 3000;
 
26.显示员工奖金为空的员工名字,月薪,奖金使用sqlplus工具链接到本身的用户完成下面练习  
1.显示登录用户是哪一个?
SQL> show user  
USER is "SCOTT"
 
2.显示当前用户有哪些对象?
SQL> desc user_objects;
 
SQL> select OBJECT_NAME,OBJECT_TYPE  from user_objects;
 
 
3.显示当前用户有哪些表?
SQL> desc user_tables;  
SQL>select * from tab; 或 select * from user_tables;
 
 
 
4.描述这些表的结构,了解列的含义
deac 表名  //查看表的结构
 
TNAME                  TABTYPE  CLUSTERID
------------------------------ ------- ----------
BONUS                  TABLE
DEPT                   TABLE
EMP                TABLE
SALGRADE               TABLE
 
 
 
5.显示员工表全部信息
select * from  EMP;
 
6.显示员工名字,月薪
select ENAME,SAL from EMP;
 
7.显示员工名字,职位,入职时间,月薪,查看不一样类型列数据如何对齐的。
SQL> select ENAME,JOB,HIREDATE,SAL from EMP;
对齐方式,除了最后一列是右对齐,其他列都是左对齐
 
8.显示员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP;
 
9.显示员工名字,月薪,奖金,总月薪,给总月薪列定义一个新列名total_sal  
SQL> select ENAME,COMM,SAL+nvl(COMM,0) as "tatal_sal"  from EMP;
 
10.显示员工名字,部门编号,年薪,给年薪定义个列名
SQL> select ENAME,EMPNO ,(nvl(COMM,0)+SAL)*12 as "year_sal" from EMP;
 
11.显示员工全部惟一部门编号信息
SQL> select distinct ( DEPTNO)  from EMP ;
 
12.显示员工名字,职位[名字与职位之间用逗号和空格分割开]
SQL> select ENAME||' ,'||JOB from EMP;
 
13.显示员工名字,职位[名字与职位之间增长 is work 显示内容]
SQL> select ENAME||' is work '||JOB from EMP;
 
14.显示员工名字,职位[名字与职位之间增长 ‘s work 显示内容]
select ENAME||q'('s work)'||JOB from EMP;
 
15.显示员工编号为7788的员工名字
SQL> select ENAME from EMP where EMPNO=7788;
 
16.显示员工名字为FORD的职位,月薪
SQL> select JOB,SAL from EMP where ENAME='FORD';
 
 
17.显示员工入职时间为01-MAY-81的员工名字,员工年薪
SQL> select ENAME,(nvl(COMM,0)+SAL)*12 as "year_sal" from EMP where
HIREDATE='01-MAY-81';
 
18.显示员工月薪为3000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL=3000;
 
19.显示员工月薪不是3000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL <>|^= |!= 3000;三种方式均可以
 
 
20.显示员工月薪大于2800的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL>2800;
 
21.显示员工月薪不大于2800的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL<=2800;
 
22.显示员工月薪3000和5000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL in( 3000 , 5000);
 
23.显示员工月薪不是3000和不是5000的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL not in ( 3000 and 5000);
 
24.显示员工月薪2000到3000之间的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL  between 2000 and 3000;
 
25.显示员工月薪非2000到3000之间的员工名字,月薪
SQL> select ENAME ,SAL from EMP where SAL not  between 2000 and 3000;
 
26.显示员工奖金为空的员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP where COMM is null;
 
27.显示员工奖金不为空的员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP where COMM is not null;
 
28.显示员工有奖金的员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP where COMM is not null and COMM>0;
 
29.显示员工名字是A开头的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like 'A%';
 
30.显示员工名字第三个字符是A的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like '__A%';
 
31.显示员工名字T结尾的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like '%T';
 
32.显示员工月薪大于2000且部门编号小于30的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 and DEPTNO<30;
 
33.显示员工月薪大于2000且部门编号等于10的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 and DEPTNO=10;
 
34.显示员工月薪大于2000或部门编号等于10的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 or  DEPTNO=10;
 
35.显示员工职位是CLERK和SALESMAN,且月薪大于1280的员工名字,职位,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>1280 and  JOB in
('CLERK','SALESMAN');
 
36.显示员工全部信息,且薪水从高到底显示
SQL> select * from EMP order by SAL desc;
 
37.显示员工全部信息,且部门编号从低到高,薪水从高到底显示
SQL> select * from EMP order by SAL DESC,DEPTNO ASC;
 
38.显示员工名字,薪水,奖金,奖金从低到高显示
SQL> select ENAME,SAL,nvl(COMM,0) from EMP order by nvl(COMM,0);
 
39.显示员工名字,薪水,奖金,奖金从低到高显示其中null在前
SQL> select ENAME,SAL,COMM from EMP order by nvl(COMM,-1);
SQL> select  ENAME,SAL,COMM from EMP order by COMM first;
40.显示员工名字,薪水,奖金,奖金从高到低显示其中null在后
SQL> select ENAME,SAL,COMM from EMP order by nvl(COMM,-1) desc;
SQL> select ENAME,SAL,COMM from EMP order by COMM  desc last;
SQL> select ENAME,SAL,COMM from EMP where COMM is null;
 
27.显示员工奖金不为空的员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP where COMM is not null;
 
28.显示员工有奖金的员工名字,月薪,奖金
SQL> select ENAME,SAL,COMM from EMP where COMM is not null and COMM>0;
 
29.显示员工名字是A开头的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like 'A%';
 
30.显示员工名字第三个字符是A的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like '__A%';
 
31.显示员工名字T结尾的员工名字,职位
SQL> select ENAME,JOB from EMP where ENAME like '%T';
 
32.显示员工月薪大于2000且部门编号小于30的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 and DEPTNO<30;
 
33.显示员工月薪大于2000且部门编号等于10的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 and DEPTNO=10;
 
34.显示员工月薪大于2000或部门编号等于10的员工名字,部门编号,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>2000 or  DEPTNO=10;
 
35.显示员工职位是CLERK和SALESMAN,且月薪大于1280的员工名字,职位,月薪
SQL> select ENAME,EMPNO,SAL from EMP where SAL>1280 and  JOB in
('CLERK','SALESMAN');
 
36.显示员工全部信息,且薪水从高到底显示
SQL> select * from EMP order by SAL desc;
 
37.显示员工全部信息,且部门编号从低到高,薪水从高到底显示
SQL> select * from EMP order by SAL DESC,DEPTNO ASC;
 
38.显示员工名字,薪水,奖金,奖金从低到高显示
SQL> select ENAME,SAL,nvl(COMM,0) from EMP order by nvl(COMM,0);
 
39.显示员工名字,薪水,奖金,奖金从低到高显示其中null在前
SQL> select ENAME,SAL,COMM from EMP order by nvl(COMM,-1);
SQL> select  ENAME,SAL,COMM from EMP order by COMM first;
40.显示员工名字,薪水,奖金,奖金从高到低显示其中null在后
SQL> select ENAME,SAL,COMM from EMP order by nvl(COMM,-1) desc;
SQL> select ENAME,SAL,COMM from EMP order by COMM  desc last;sql

相关文章
相关标签/搜索