zoukankan      html  css  js  c++  java
  • 数据库练习题

     

    1、下载联系数据集

    github下载mysql 测试数据库 employees

    https://github.com/datacharmer/test_db

    按照说明下载全部文件。

    2、导入数据集

    参见https://github.com/datacharmer/test_db说明

    先创建一个数据库 employees,切换到对应下载文件的目录下,执行以下命令。

    命令如示

    //mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径

    3、练习题

    单表查询

    (1)查询所有的部门信息

    select * from departments;

    (2)查询开发部门的部门信息(编号)

    select * from departments where dept_name='Development';

    (3)查询所有在1988年入职的员工信息,按入职时间从早到晚排序

    select * from employees  where  hire_date BETWEEN '1998-01-01' AND '1998-12-31' ORDER BY hire_date ;

    (4)查询所有在1998年入职的信息,按入职时间从早到晚排序,只要当年前10个新入职的员工

    select * from employees  where  hire_date BETWEEN '1998-01-01' AND '1998-12-31' ORDER BY hire_date limit 10 ;

    只要第10-15个

    select * from employees  where  hire_date BETWEEN '1998-01-01' AND '1998-12-31' ORDER BY hire_date limit 9,6 ;

    (5)查询1998年入职员工的工资信息,按工资从高到低排序,只要当年工资最高的前10个员工信息

    select e.emp_no,first_name,last_name,salary  from employees e left join salaries s on e.emp_no=s.emp_no  where e.hire_date BETWEEN '1998-01-01' AND '1998-12-31'  ORDER BY s.salary desc  limit 10;

    只要第10到20个

    select e.emp_no,first_name,last_name,salary from employees e left join salaries s on e.emp_no=s.emp_no  where e.hire_date  BETWEEN '1998-01-01' AND '1998-12-31' ORDER BY s.salary desc  limit 9,11;

    (6)公司抽奖,只有员工名称中含有Mary,就中奖了

    select * from employees where first_name like '%Mary%' or last_name like '%Mary%';

    (7)公司抽奖,只有10025,10223,10252三位员工中奖了,需要查出这三位员工的姓名

    select emp_no,first_name,last_name from employees WHERE emp_no in (10025,10223,10252);

    (8)公司抽奖,找出工资表中员工编号以23结尾或含有25的员工工号

    select DISTINCT(emp_no) from salaries where emp_no like '%23' or emp_no like '%25%';

    (9)统计员工入职以来,调薪次数有17次以上的员工编号

    select emp_no,count(emp_no) from salaries GROUP BY emp_no HAVING count(emp_no)>17;

    (10)统计员工入职以来,调薪次数有17次以上的员工,并且员工编号中包含25的所有员工编号信息

    select emp_no,count(emp_no) from salaries GROUP BY emp_no HAVING count(emp_no)>17 and emp_no like '%25%';

    (11)查询公司的最高/平均/总和/最低薪资

    select max(salary) from salaries;
    select min(salary) from salaries;
    select avg(salary) from salaries;
    select sum(salary) from salaries;

    多表查询

    (1)查询development部的所有员工信息

    select  * from dept_emp e left JOIN departments  d on  e.dept_no=d.dept_no where d.dept_name='Development'

    (2)查询development部的工资最高的前10位员工信息


    select * from salaries left JOIN dept_emp on dept_emp.emp_no=salaries.emp_no left join departments on departments.dept_no=dept_emp.dept_no where departments.dept_name='Development' ORDER BY salaries.salary desc LIMIT 10;

    (3)取出部门历任管理者

    select * from departments LEFT JOIN dept_manager on departments.dept_no=dept_manager.dept_no;

    (4)计算各个部门的平均工资并排序,给出平均工资、部门名称

    select avg(s.salary),dp.dept_name from salaries  s left JOIN dept_emp d on s.emp_no=d.emp_no LEFT JOIN departments dp on dp.dept_no=d.dept_no GROUP BY d.dept_no ORDER BY avg(s.salary) DESC;

  • 相关阅读:
    zoj3690 Choosing number
    zoj 3724 Delivery 离线处理+线段树
    hdu4422 The Little Girl who Picks Mushrooms
    hdu3555 Bomb 简单数位dp
    HDU2089 不要62 简单数位dp
    解析JSON的四种方式
    iOS中几种传值的方式
    iOS代码里面出现乱码的和模拟器没有添加模拟器的解决方法:
    UIAlterview的使用方法
    ios集成支付宝的功能
  • 原文地址:https://www.cnblogs.com/crystal1126/p/14704286.html
Copyright © 2011-2022 走看看