1- 题目
-- --SQL练习训练一
-- 1、 选择部门30中的雇员
-- 2、 检索emp表中的员工姓名、月收入及部门编号
-- 3、 检索emp表中员工姓名、及雇佣时间(雇佣时间按照yyyy-mm-dd显示)
-- 4、 检索emp表中的部门编号及工种,并去掉重复行
-- 5、 检索emp表中的员工姓名及全年的月收入
-- 6、 用姓名显示员工姓名,用年收入显示全年月收入。
-- 7、 检索月收入大于2000的员工姓名及月收入
-- 8、 检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间
-- 9、 检索以S开头的员工姓名及月收入
-- 10、检索emp表中月收入是800的或是1250的员工姓名及部门编号
-- 11、显示在部门20中岗位是CLERK的所有雇员信息
-- 12、显示工资高于2500或岗位为MANAGER的所有雇员信息
-- 13、检索emp表中有奖金的员工姓名、月收入及奖金
-- 14、检索emp表中部门编号是30的员工姓名、月收入及提成,并要求其结果按月收入升序、然后按提成降序显示
-- 15、列出所有办事员的姓名、编号和部门
-- 16、找出佣金高于薪金的雇员
-- 17、找出部门10中所有经理和部门20中的所有办事员的详细资料
-- 18、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
-- 19、找出收取奖金的雇员的不同工作
-- 20、找出不收取奖金或收取的奖金低于100的雇员
-- 21、找出各月倒数第三天受雇的所有雇员
-- 22、获取当前日期所在月的最后一天
-- 23、找出早于25年之前受雇的雇员
-- 24、显示正好为6个字符的雇员姓名
-- 25、显示不带有'R'的雇员姓名
-- 26、显示雇员的详细资料,按姓名排序
-- 27、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
-- 28、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
-- 29、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面
-- 30、显示在一个月为30天的情况下所有雇员的日薪金
-- 31、找出在(任何年份的)2月受聘的所有雇员
-- 32、对于每个雇员,显示其加入公司的天数
-- 33、显示姓名字段的任何位置,包含 "A" 的所有雇员的姓名
-- 34、以年、月和日显示所有雇员的服务年限
-- 35、选择公司中有奖金 (COMM不为空,且不为0) 的员工姓名,
-- 36、选择公司中没有管理者的员工姓名及job
-- 37、选择在1987年雇用的员工的姓名和雇用时间
-- 38、选择在20或10号部门工作的员工姓名和部门号
-- 39、选择雇用时间在1981-02-01到1981-05-01之间的员工姓名,职位(job)和雇用时间,按从早到晚排序.
-- 40、选择工资不在5000到12000的员工的姓名和工资
-- 41、查询员工号为7934的员工的姓名和部门号
-- 42、查询工资大于1200的员工姓名和工资
2- 数据库脚本
# Oracle 数据库 内置的数据表
DROP DATABASE IF EXISTS emp;
CREATE DATABASE IF NOT EXISTS emp DEFAULT CHARSET=utf8;
USE emp;
# 部门表
# deptno (部门编号) dept部门 no number 数字编号
# dname (部门名称)
# loc (location 地址)
CREATE TABLE `dept`(
`deptno` INT(2) NOT NULL comment '部门编号',
`dname` VARCHAR(14) comment '部门名称',
`loc` VARCHAR(13) comment '地址',
CONSTRAINT pk_dept PRIMARY KEY(deptno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
# emp 雇员
# empno 员工编号
# ename 员工姓名
# job 工作
# mgr manager 经理上司
# hiredate 入职时间
# sal 工资
# comm 奖金(提成)
# deptno 所在部门编号
CREATE TABLE `emp` (
`empno` int(4) PRIMARY KEY comment '员工编号',
`ename` VARCHAR(10) ,
`job` VARCHAR(9),
`mgr` int(4),
`hiredate` DATE,
`sal` float(7,2),
`