重新学习数据库(1)

重新学习数据库(1)数据库学习 1.简单查询 2022-07-13 测试脚本: drop TABLE emp;drop TABLE dept;drop TABLE salgrade;create table dept(d

重新学习数据库(1)

                                                                   数据库学习

1.简单查询  2022-07-13

测试脚本:

drop TABLE emp;
drop TABLE dept;
drop TABLE salgrade;
create table dept
(
deptno integer(4) not null,
dname varchar(14),
loc varchar(13)
);
alter table dept add constraint pk_dept primary key (deptno);
create table emp
(
empno integer(4) not null,
ename varchar(10),
job varchar(9),
mgr integer(4),
hiredate date,
sal decimal(7,2),
comm decimal(7,2),
deptno integer(2)
);
alter table emp add constraint pk_emp primary key (empno);
alter table emp add constraint fk_deptno foreign key (deptno) references dept (deptno);
create table salgrade
(
grade integer(1),
losal decimal(7,2),
hisal decimal(7,2)
);
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”);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (1, 700, 1200);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (2, 1201, 1400);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (3, 1401, 2000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (4, 2001, 3000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (5, 3001, 9999);
— 下面要特别注意,%d-%m-%Y 里的 d 和 m 一定要小写
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, “SMITH”, “CLERK”, 7902, STR_TO_DATE(“17-12-1980”, “%d-%m-%Y”), 800.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, “ALLEN”, “SALESMAN”, 7698, STR_TO_DATE(“20-02-1981”, “%d-%m-%Y”), 1600.00, 300.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, “WARD”, “SALESMAN”, 7698, STR_TO_DATE(“22-02-1981”, “%d-%m-%Y”), 1250.00, 500.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, “JONES”, “MANAGER”, 7839, STR_TO_DATE(“02-04-1981”, “%d-%m-%Y”), 2975.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, “MARTIN”, “SALESMAN”, 7698, STR_TO_DATE(“28-09-1981”, “%d-%m-%Y”), 1250.00, 1400.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, “BLAKE”, “MANAGER”, 7839, STR_TO_DATE(“01-05-1981”, “%d-%m-%Y”), 2850.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, “CLARK”, “MANAGER”, 7839, STR_TO_DATE(“09-06-1981”, “%d-%m-%Y”), 2450.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, “SCOTT”, “ANALYST”, 7566, STR_TO_DATE(“19-04-1987”, “%d-%m-%Y”), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, “KING”, “PRESIDENT”, null, STR_TO_DATE(“17-11-1981”, “%d-%m-%Y”), 5000.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, “TURNER”, “SALESMAN”, 7698, STR_TO_DATE(“08-09-1981”, “%d-%m-%Y”), 1500.00, 0.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, “ADAMS”, “CLERK”, 7788, STR_TO_DATE(“23-05-1987”, “%d-%m-%Y”), 1100.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, “JAMES”, “CLERK”, 7698, STR_TO_DATE(“03-12-1981”, “%d-%m-%Y”), 950.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, “FORD”, “ANALYST”, 7566, STR_TO_DATE(“03-12-1981”, “%d-%m-%Y”), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, “MILLER”, “CLERK”, 7782, STR_TO_DATE(“23-01-1982”, “%d-%m-%Y”), 1300.00, null, 10);

单元概述

通过本章的学习能够了解MySQL结构查询语言的概念,掌握SELECT查询语句的基本语法,掌握SELECT查询语句中过滤条件的使用,掌握过滤条件中比较运算符和逻辑运算符的使用,掌握查询结果的排序等

单元练习:

1. 查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
SELECT ename,hiredate,job
FROM emp
WHERE hiredate>”1982-7-9″
AND job<> “SALESMAN”;
2. 查询员工姓名的第三个字母是a的员工姓名。
SELECT ename
FROM emp
WHERE ename
LIKE “__a%”;
3. 查询除了10、20号部门以外的员工姓名、部门编号。
SELECT ename,deptno
FROM emp
WHERE deptno
not in (10,20);
4. 查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。
SELECT *
FROM emp
WHERE deptno = 30
ORDER BY sal DESC, ename ASC;
5. 查询没有上级的员工(经理号为空)的员工姓名。
SELECT ename
FROM emp
WHERE mgr is null;
6. 查询工资大于等于4500并且部门为10或者20的员工的姓名工资、部门编号。
SELECT ename,sal,deptno
FROM emp
WHERE sal > 4500
AND deptno in (10,20);

课后练习:

  1. 查询入职日期在82年至85年的员工姓名,入职日期。

  2. 查询月薪在3000到5000的员工姓名,月薪。

  3. 查询部门编号为10或者20的员工姓名,部门编号。

  4. 查询经理编号为7902, 7566, 7788的员工姓名,经理编号

    SELECT ename,hiredate FROM emp WHERE hiredate BETWEEN “1982-01-01” AND “1985-12-31”

    SELECT ename,sal FROM emp WHERE sal BETWEEN 3000 and 5000

    SELECT ename,deptno FROM emp WHERE deptno IN (10,20)

    SELECT ename,mgr FROM emp WHERE mgr in (7902,7566,7788)

    1. 查询员工姓名以W开头的员工姓名。

    2. 查询员工姓名倒数第2个字符为T的员工姓名。

    3. 查询奖金为空的员工姓名,奖金。

      SELECT ename FROM emp WHERE ename LIKE “W%”

      SELECT ename FROM emp WHERE ename LIKE “%T_”

      SELECT ename,comm FROM emp WHERE comm is null

    1.查询工资超过2000并且职位是 MANAGER或SALESMAN的员工姓名、职位、工资

    SELECT ename,job,sal

    FROM emp WHERE hiredate >2000AND job IN (“MANAGER”,”SALESMAN”)

     

     

  5. 查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。

  6. 查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。

  7. 查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。

    SELECT ename,hiredate,salSELECT ename,hiredate,salFROM emp WHERE deptno in (10,20)and sal BETWEEN 3000 and 5000

    SELECT ename,hiredate,jobFROM emp WHERE hiredate LIKE “1981%”and job not like “SALES%”

    SELECT ename,job,deptnoFROM empWHERE job in (“SALESMAN”,”MANAGER”)AND deptno IN (10,20)AND ename LIKE “%A%”AND ename LIKE “%A%”

    1.查询部门在20或30的员工姓名,部门编号,并按照工资升序排序。

    SELECT ename,deptno FROM emp WHERE deptno IN (20,30) ORDER BY sal ASC

    2.查询工资在2000-3000之间,部门不在10号的员工姓名,部门编号,工资,并按照部门升序,工资降序排序。

    SELECT ename,deptno,sal FROM emp WHERE sal BETWEEN 2000 AND 3000 AND deptno <> 10 ORDER BY deptno ASC,sal DESC

    3.查询入职日期在82年至83年之间,职位以SALES或者MAN开头的员工姓名,入职日期,职位,并按照入职日期降序排序

    SELECT ename,hiredate,job FROM emp WHERE hiredate BETWEEN “1982-01-01” AND “1982-12-31”AND (job like “SALES%” or job like “MAN%”) ORDER BY hiredate DESC

1.查询入职日期最早的前5名员工姓名,入职日期

SELECT ename,hiredate FROM emp ORDER BY hiredate ASC LIMIT 0,5;

 

2.查询20号部门下入职日期最早的前2名员工姓名,入职日期。

SELECT ename,hiredate FROM emp,dept WHERE emp.deptno=dept.deptno AND dept.deptno=20 ORDER BY hiredate ASC LIMIT 0,2;

 

3.按照每页显示5条记录,分别查询第1页,第2页,第3页信息,要求显示员工姓名、入职日期、部门编号 。

SELECT ename,hiredate,deptno FROM emp LIMIT 0,5

SELECT ename,hiredate,deptno FROM emp LIMIT 5,5

SELECT ename,hiredate,deptno FROM emp LIMIT 10,5

 

 

原文地址:https://www.cnblogs.com/Aegeansea666/archive/2022/07/18/16484379.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5005.html

(0)
上一篇 2023-05-26
下一篇 2023-05-27

相关推荐

  • 织梦dedecms如何让内容页显示不同的内容,但是每次更新都不变[亲测有效]

    织梦dedecms如何让内容页显示不同的内容,但是每次更新都不变[亲测有效]织梦dedecms如何让内容页显示不同的内容,但是每次更新都不变。 今天圈子里面有个朋友,给我提了一个需求,他的内容页里面有个相关推荐,他想每个内容页显示的内容都不一样,但是内容要固定的,更新不要变。

    2023-02-22
    107
  • Python数据类型及其应用场景

    Python数据类型及其应用场景Python是一种高级编程语言,流行于众多领域,如Web开发、数据科学、人工智能等,而数据类型是Python语言中的基础。Python提供了多种数据类型,包括数值型、字符串型、列表、元组、字典、集合等,每一种类型都有其特定的应用场景。

    2024-02-22
    55
  • 安装pg10_pl7安装教程

    安装pg10_pl7安装教程安装pg10 一、install yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64

    2023-03-07
    97
  • redis笔记01[通俗易懂]

    redis笔记01[通俗易懂]起步 redis简介 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. redis与其他key-value缓存产品有一下三个特点: redis支持数据的持久化,可…

    2023-02-06
    114
  • 数据库 国产化_数据库厂商

    数据库 国产化_数据库厂商’天底下没有完美的数据库,也许Oracle是个例外”,前阵子几个DBA在讨论国产化替代时,有人就这么说。确实是的,Oracle算是比较完美的数据库产品了,不过现在很多用户都在面临从Oracle数据库向

    2023-06-20
    106
  • 谈谈报表工具支持的数据源[通俗易懂]

    谈谈报表工具支持的数据源[通俗易懂]报表工具早期基本都是基于关系型数据库作为数据来源,但现在文件类、newsql、nosql,服务类来源应用越来越广泛。 报表工具也应与时俱进!目前都搞不搞的定?靠 Api 还是有更好的方式? 本篇将介…

    2023-01-25
    103
  • redis将一个key设置为永不过期

    redis将一个key设置为永不过期这次介绍三个 redis 命令: Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。 PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。

    2023-04-22
    126
  • 优化网页标签,提升页面流量

    优化网页标签,提升页面流量在现代互联网时代,网页的流量对于网站运营来说是至关重要的。为了吸引更多的访问者,网站需要进行优化,而其中一个关键的优化手段就是对网页标签进行优化。在本文中,我们将会从多个方面介绍如何优化网页标签,从而提升页面流量。

    2024-01-30
    57

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注