系统设计与数据库系统 作业二 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.

相关文章
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1063 152
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
836 156
|
5月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
560 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
9月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
592 1
|
8月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
978 213
|
4月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
316 6
|
10月前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
5月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
413 8
|
6月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
801 8