系统设计与数据库系统 作业二 Advanced SQL LAB(三)

简介: 系统设计与数据库系统 作业二 Advanced SQL LAB(三)
  1. List the name of all the Manager who manages at least 2 employees.
SELECT 
    ENAME, NUM
FROM
    (SELECT 
        e1.ENAME, COUNT(*) NUM
    FROM
        emp2019284073 e1
    JOIN emp2019284073 e2 ON e1.EMPNO = e2.MGR
    GROUP BY e1.ENAME) e3
WHERE
    NUM >= 2


16ee9d272de54d8d9adf15ad2f342a36.png

EXERCISES 6 SUB QUERIES.


  1. List the name and job of employees who have the same job as Jones.
SELECT 
    ENAME, JOB
FROM
    emp2019284073
WHERE
    JOB = (SELECT 
            JOB
        FROM
            emp2019284073
        WHERE
            ENAME = 'JONES')
        AND ENAME != 'JONES'

af70f13b435a4114b2148e582acd3691.png

  1. Find all the employees in Department 10 that have a job that is the same as anyone in department 30.
SELECT 
    e.ENAME
FROM
    emp2019284073 e,
    emp2019284073 m
WHERE
    e.deptno != m.deptno AND e.deptno = 10
        AND m.deptno = 30
        AND e.job = m.job;


2d012b6044f4416eb1784708ac5d12a7.png

  1. List the name, job, and department of employees who have the same job as Jones or a salary greater than or equal to Ford.
SELECT 
    ename, job, deptno
FROM
    emp2019284073
WHERE
    (job = (SELECT 
            job
        FROM
            emp2019284073
        WHERE
            ename = 'JONES')
        AND ename != 'JONES')
        OR sal >= (SELECT 
            sal
        FROM
            emp2019284073
        WHERE
            ename = 'FORD' AND ename != 'FORD');


c3a3b3cd8a30417688fd0e91f3679c48.png

  1. Find all employees in department 10 that have a job that is the same as anyone in the Sales department
SELECT 
    ENAME
FROM
    emp2019284073
WHERE
    deptno = 10
        AND job = (SELECT 
            job
        FROM
            dept2019284073
        WHERE
            dname = 'SALES');

7f9bf0479b204d3d98716c3b1c4ef66a.png

  1. Find the employees located in Liverpool who have the same job as Allen. Return the results in alphabetical order by employee name.
SELECT 
    ename
FROM
    emp2019284073 e,
    dept2019284073 d
WHERE
    d.loc = 'LIVERPOOL'
        AND e.deptno = d.deptno
        AND job = (SELECT 
            job
        FROM
            emp2019284073
        WHERE
            ename = 'ALLEN')
        AND ename != 'ALLEN'
ORDER BY ename;

96412d3789e848b69efcaf1fc678bee1.png

  1. Find all the employees that earn more than the average salary of employees in their department.
SELECT 
    e.ename
FROM
    emp2019284073 e,
    (SELECT 
        deptno, AVG(sal) salVal
    FROM
        emp2019284073
    GROUP BY deptno) d
WHERE
e.deptno = d.deptno AND e.sal > d.salVal;

9e4d898a260740faace29b8549040814.png

  1. Find all the employees that earn more than JONES, using temporary labels to abbreviate table names.


SELECT 
    e.ename
FROM
    emp2019284073 e
WHERE
    sal > (SELECT 
            sal
        FROM
            emp2019284073
        WHERE
            ename = 'JONES');


0b8a2f470b994b9cbf6df78cb7c5292f.png


  1. List the Name of all employees who earn Highest salary and Second Highest salary.
SELECT 
    ENAME
FROM
    (SELECT 
        ENAME
    FROM
        emp2019284073
    ORDER BY SAL DESC) a
LIMIT 2

83763574f58645a39b3c3f2f8ae012dd.png


EXERCISES 7 Data Manipulation


Create a new table called loans with columns named LNO NUMBER (3), EMPNO NUMBER (4), TYPE CHAR (1), AMNT NUMBER (8,2), Create all constraints, such as Primary Key, Foreign Key, Check


CREATE TABLE loan2019284073 (
    LNO DECIMAL(3) PRIMARY KEY,
    EMPNO DECIMAL(4),
    TYPE CHAR(1),
    AMNT DECIMAL(8 , 2 )
)
  1. Insert the following data


5111d677da3e46bca11de7fc4e79ccdf.png

INSERT INTO loan2019284073 VALUES(23,7499,'M',20000.00);
INSERT INTO loan2019284073 VALUES(42,7499,'C',2000.00);
INSERT INTO loan2019284073 VALUES(65,7844,'M',3564.00);


  1. Check that you have created 3 new records in Loans
SELECT 
    *
FROM
    loan2019284073;



  1. The Loans table must be altered to include another column OUTST NUMBER (8,2)


ALTER TABLE loan2019284073 ADD(OUTSET DECIMAL(8,2))


  1. Add 10% interest to all M type loans
UPDATE loan2019284073 
SET 
    AMNT = AMNT * 1.1
WHERE
    TYPE = 'M' AND LNO > 0;

9e5f684d1244413dbb4ad121f928c9d6.png

  1. Remove all loans less than £3000.00
DELETE FROM loan2019284073 
WHERE
    AMNT < 3000 AND LNO > 0;

50771b68758b4feb857c6d0843f87038.png


  1. Change the name of loans table to accounts


ALTER TABLE loan2019284073 RENAME ACCOUNT2019284073;


  1. Change the name of column LNO to LOANNO


ALTER TABLE `dong2019284073`.`account2019284073` CHANGE COLUMN `LNO` `LOANNO` DECIMAL(3,0) NOT NULL ;

f1703a330bec4082a8a1ab7b80e84258.png


  1. Create a view for use by personnel in department 30 showing employee name, number, job and hiredate.
CREATE VIEW view2019284073 AS
    SELECT 
        ENAME, EMPNO, JOB, hiredate
    FROM
        emp2019284073
    WHERE
        deptno = 30


4574d17bc8e7432c9323f3a106e6e992.png


  1. Create a view which shows summary information for each department.
CREATE VIEW view2019284073 AS
    SELECT 
        *
    FROM
        dept2019284073

b202ced5f6814cfdbcc1c5040dea398c.png

Experiment process and content


From this experiment of MySQL, I learned how to select different kinds of data from a database, how to edit values by language of MySQL. I also learn the use of “JOIN”, “GROUP BY”, “HAVING”. Now, I can write some uncomplex functions to show data.


During this experiment, errors occur sometimes. With the help of my

classmates and knowledge in Internet, I finally finished this experiment

successfully. For example, in Exercise7 question 5 and question6, the select don’t need to edit or compare the primary key, but in safe mode, the comparison of primary key is necessary. Thus, the script “LNO > 0” is necessary.

相关文章
|
26天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
38 2
|
26天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
40 4
|
6月前
|
SQL 关系型数据库 数据库
【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】
【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】
219 10
|
7月前
|
关系型数据库 MySQL Go
mysql,数据库Server returns invalid timezone. Go to ‘Advanced‘ tab 数据库的行和列没有出现怎么办p
mysql,数据库Server returns invalid timezone. Go to ‘Advanced‘ tab 数据库的行和列没有出现怎么办p
|
8月前
|
关系型数据库 MySQL 数据库
MySQL数据库作业设计之豆瓣音乐
MySQL数据库作业设计之豆瓣音乐
46 0
|
8月前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
|
8月前
|
SQL 关系型数据库 MySQL
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
194 0
|
8月前
|
SQL 数据可视化 关系型数据库
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
|
8月前
|
安全 BI 数据库
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
139 0

热门文章

最新文章