`
zhanyingle_1981
  • 浏览: 326408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql 练习1

阅读更多

本人搜集的sql 练习,已经在oracle pl/sql develper下测试通过,分享之

 

create table DEPT
(
DEPTNO NUMBER(2) not null,
DNAME VARCHAR2(14),
LOC    VARCHAR2(13)
)
tablespace USERS;
alter table DEPT add constraint PK_DEPT primary key (DEPTNO);
insert into DEPT (DEPTNO, DNAME, LOC)
values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT (DEPTNO, DNAME, LOC)
values (20, 'RESEARCH', 'DALLAS');
insert into DEPT (DEPTNO, DNAME, LOC)
values (30, 'SALES', 'CHICAGO');
insert into DEPT (DEPTNO, DNAME, LOC)
values (40, 'OPERATIONS', 'BOSTON');
commit;
create table EMP
(
EMPNO    NUMBER(4) not null,
ENAME    VARCHAR2(10),
JOB      VARCHAR2(9),
MGR      NUMBER(4),
HIREDATE DATE,
SAL      NUMBER(7,2),
COMM     NUMBER(7,2),
DEPTNO   NUMBER(2)
)
tablespace USERS;
alter table EMP add constraint PK_EMP primary key (EMPNO);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, to_date('09-06-1981', 'dd-mm-yyyy'), 2450, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300, null, 10);
commit;


/*
1.列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
3.列出所有员工的姓名及其直接上级的姓名。
4.列出受雇日期早于其直接上级的所有员工。
5.列出最低薪金大于1500的各种工作。
6.列出在每个部门工作的员工数量、平均工资和平均服务期限。
*/
SELECT DNAME FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY DNAME HAVING COUNT(EMPNO)>=1

SELECT * FROM EMP E WHERE E.SAL>(SELECT SAL FROM EMP WHERE EMP.ENAME='SMITH')


select A.ENAME, B.ENAME from EMP A, EMP B WHERE A.MGR=B.EMPNO

select A.ENAME from EMP A, EMP B WHERE A.MGR=B.EMPNO AND A.HIREDATE<B.HIREDATE

SELECT JOB,MIN(SAL) MSAL FROM EMP GOURP BY (JOB) HAVING MIN(SAL)>1500;

select job,min(sal) msal from emp group by job having min(sal)>1500;

SELECT DEPTNO, COUNT(ENAME), AVG(SAL), AVG(HIREDATE) FROM EMP GOURP BY DEPTNO

select deptno,count(*), trunc(avg(sal+nvl(comm,0))) avgsal, trunc(avg(sysdate-hiredate)) avgday from emp group by deptno;


/*1.         取出emp表中comm最小的所有记录。*/
select * from emp where comm=(select min(comm) from emp);

select * from emp where rownum=1 order by comm;

/*2.         显示所有职工的empname以及其对应的deptname;如果emp表中的deptno在dept表中找不到,则deptname输出为空。*/

select e.ename,d.dname from emp e left join dept d on e.deptno=d.deptno;
/*3.         把emp表中的所有comm设置为comm=comm.+100;如果comm为null,则comm=1。*/

update emp set comm=case
when comm is not NULL then comm+100
when comm is null then 1
end

分享到:
评论

相关推荐

    Sql经典练习题库(附答案)

    #### 五、经典SQL练习题解析 ##### 1. 查询“0001”课程比“C002”课程成绩高的所有学生的学号 ```sql SELECT S# FROM SC WHERE C# = '0001' AND SCORE &gt; ANY (SELECT SCORE FROM SC WHERE C# = '0002'); ``` **...

    SQL经典练习题_sql练习_

    本资料包中的"SQL经典练习题.sql练习."包含了个人收藏的一系列SQL题目和案例,这些内容常常在面试中出现,对提升SQL技能和准备面试具有很高的价值。 首先,我们要了解SQL的基本概念。SQL主要包括以下几个部分: 1....

    典型SQL练习题

    这个“典型SQL练习题”压缩包提供了深入理解和掌握SQL查询技能的机会。下面,我们将深入探讨标题和描述中所涵盖的知识点,并结合提供的文件,给出详细的学习路径。 首先,"PracticeOfSqlQuery.doc"可能是一个文档,...

    SQL 练习 脚本(实践中学习)

    SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)

    SQL代码 sql练习

    "SQL代码 sql练习"这个资源提供了两个SQL脚本文件——SQLQuery1.sql和试题作业.sql,旨在帮助学习者深入理解和应用SQL语句。 SQLQuery1.sql可能包含了各种基础到进阶的查询示例,如SELECT语句的使用,包括选择特定...

    sql 语句 练习+ 答案

    在"SQL练习1.doc"中,可能包含了各种SQL查询问题,涉及上述概念的实际应用。这些问题可能要求你构造查询来解决特定的业务需求,比如找出特定条件下的销售记录,或者计算每个部门的员工平均工资。 而"SQL-answer.sql...

    2024年经典SQL练习题-IT类课程习题资源(源代码和文档)

    2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最...

    sql server 练习表

    此文档为sql server练习表,适合初学者练习用,数据可自行增加

    sql练习及实例

    sql练习及实例,相关练习语句案例。时间编写的写法等。

    sql练习总结sql经验总结

    SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库系统的主要语言。在本篇总结中,我们将深入探讨SQL的核心概念、...不断练习和总结,你的SQL技能将更加熟练,为你的职业生涯奠定坚实基础。

    sql 练习用数据

    通过这些表,你可以进行各种SQL练习,比如: 1. **基本查询**:查询所有部门、员工或职位的列表。 2. **连接查询**:联合多个表,获取员工的全名、职位、部门和工作地点等信息。 3. **分组和聚合**:统计每个部门的...

    典型Sql练习题

    "典型Sql练习题"这个主题涵盖了从基础查询到复杂联接、子查询、存储过程等多个方面,旨在帮助C#、ASP.NET开发者以及数据库管理员(DBA)增强对SQL的理解和应用能力。 首先,基础的SQL查询包括SELECT语句,用于从...

    数据库SQL增删改查、视图、触发器练习题

    以下是文件名列表: 本练习题在Navicat17的环境下使用: 1. create_tables.sql:创建表 2. insert_data.sql:向表中插入数据 3. sql练习_触发器.docx 4. sql练习_单表查询.docx ...9. sql练习_增删改_视图_权限.docx

    Hive SQL练习题库

    ### Hive SQL练习题库知识点详解 #### 一、Hive SQL概述 Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的用户可以利用 SQL...

    sql练习题.pdf

    首先,文件标题为“sql练习题.pdf”,说明文档中包含了50道针对SQL的练习题。文档描述中提到题目难度递增,前18道题目难度逐步上升,从第19题开始则是循环练习和附加的function练习。这表明这份练习题是按照难度分层...

    vfp6.0SQL练习题

    vfp6.0结构化查询语言SQL练习题1附带答案,包含简单查询、条件查询、查询排序、分组、嵌套查询、SQL数据定义等

    sql练习1复印张数,然后显示总价格

    编程,按照学校复印中心收费规定,对于前10张复印收费每张为0.5元,以后每张为0.3元。要求用赋值语句指定复印张数,然后显示总价格。

    Oracle数据库SQL练习

    本资料包针对Oracle数据库的SQL使用提供了丰富的练习资源,旨在帮助用户深入理解和熟练掌握SQL语言在Oracle环境中的应用。 "SQL10G.CHM"可能是一个关于Oracle 10g版本的SQL参考手册或教程,其中包含了该版本SQL语法...

    Oracle SQL:经典练习题(附答案)

    1. **基本查询操作**:练习题中包含了查询员工表(emp)和部门表(dept)的基础信息,例如查询所有员工的详细信息。这涉及到SELECT语句的基本用法,包括选择列(如`SELECT * FROM emp`)和指定表(如`FROM emp`)。 ...

Global site tag (gtag.js) - Google Analytics