• 多测师课堂008_mysql之单表(001练习题1)高级讲师肖sir


    建表:

    #部门表

    create table dept(

        deptno int primary key,

        dname varchar(14), -- 部门名称

        loc varchar(13)-- 部门地址

    )default charset=utf8 ;

    insert into dept values (10,'会计部','纽约');

    insert into dept values (20,'技术部','达拉斯');

    insert into dept values (30,'销售部','芝加哥');

    insert into dept values (40,'运营部','波士顿');

    select * from dept

    #员工表

    drop table emp;

    create table emp(

        empno int  primary key, -- 员工编号

        ename varchar(10), -- 员工姓名

        job varchar(9), -- 员工工作

        mgr int, -- 员工直属领导编号

        hiredate date, -- 入职时间

        sal double, -- 工资

        comm double, -- 奖金

        deptno int,  -- 所在部门

        foreign key (deptno) references dept(deptno)) default  charset=utf8;  -- 关联dept表  

    -- alter table emp add foreign key (deptno) references dept(deptno);

    insert into emp values(7369,'smith','职员',7566,"1980-12-17",800,null,20);

    insert into emp values(7499,'allen','销售员',7698,'1981-02-20',1600,300,30);

    insert into emp values(7521,'ward','销售员',7698,'1981-02-22',1250,500,30);

    insert into emp values(7566,'jones','经理',7839,'1981-04-02',2975,null,20);

    insert into emp values(7654,'martin','销售员',7698,'1981-09-28',1250,1400,30);

    insert into emp values(7698,'blake','经理',7839,'1981-05-01',2850,null,30);

    insert into emp values(7782,'clark','经理',7839,'1981-06-09',2450,null,10);

    insert into emp values(7788,'scott','职员',7566,'1987-07-03',3000,2000,20);

    insert into emp values(7839,'king','董事长',null,'1981-11-17',5000,null,10);

    insert into emp values(7844,'turners','销售员',7698,'1981-09-08',1500,50,30);

    insert into emp values(7876,'adams','职员',7566,'1987-07-13',1100,null,20);

    insert into emp values(7900,'james','职员',7698,'1981-12-03',1250,null,30);

    insert into emp values(7902,'ford','销售员',7566,'1981-12-03',3000,null,20);

    insert into emp values(7934,'miller','职员',7782,'1981-01-23',1300,null,10);

    #工资等级表

    create table salgrade(

        grade int,-- 等级

        losal double, -- 最低工资

        hisal double ) default charset=utf8; -- 最高工资

    insert into salgrade values (1,500,1000);

    insert into salgrade values (2,1001,1500);

    insert into salgrade values (3,1501,2000);

    insert into salgrade values (4,2001,3000);

    insert into salgrade values (5,3001,9999);

    单表题目:

    #1、查找部门30中员工的详细信息。

    #2、找出从事职员工作的员工的编号、姓名、部门号。(clerk  职员,办事员)

    #3、检索出奖金多于基本工资的员工信息。

    #4、检索出奖金多于基本工资60%的员工信息。

    #5、找出10部门的经理、20部门的职员 的员工信息。(manager经理;管理

    #6、找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。(sal 工资)

    #7、找出获得奖金的员工的工作。(comm奖金)

    #8、找出奖金少于100或者没有获得奖金的员工的信息。

    #9、找出姓名以abs开始的员工信息.

    #10、找到名字长度为6个字符的员工信息。

    #11、名字中不包含r字符的员工信息。

    select * from emp where ename not like '%r%';

    #12、查找员工的详细信息并按姓名排序。

    #13、返回员工的信息并按工作降序工资升序排列。(升序的规则)  

    #14、计算员工的日薪(30)

    #15、找出姓名中包含a的员工信息。

    2:多表查询答案

    #1、返回拥有员工的部门名、部门号。

    #2、工资水平多于smith的员工信息。

    #3、返回员工和所属经理的姓名。

    #4、返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。

    #5、返回员工姓名及其所在的部门名称。

    #6、返回从事clerk工作的员工姓名和所在部门名称。(CLERK销售)

    #7、返回部门号及其本部门的最低工资。

    #8、返回销售部(sales)所有员工的姓名。

    #9、返回工资水平多于平均工资的员工。

    #10、返回与SCOTT从事相同工作的员工。(职员)

    #11、返回与30部门员工工资水平相同的员工姓名与工资。

    #12、返回工资高于30部门所有员工工资水平的员工信息。

    #13、返回部门号、部门名、部门所在位置及其每个部门的工员总数。

    #14、返回员工的姓名、所在部门名及其工资。

    #15、返回员工的详细信息。(包括部门名)

    #16、返回员工工作及其从事此工作的最低工资。

    #17、计算出员工的年薪,并且以年薪排序。

    #18、返回工资处于第四级别的员工的姓名。

    #19、返回工资为二等级的职员名字、部门所在地、和二等级的最低工资和最高工资

    #20.工资等级多于smith的员工信息。

    题目:

    #1、查找部门30中员工的详细信息。

    SELECT * FROM EMP WHERE DEPTNO="30"

    #2、找出从事职员工作的员工的编号、姓名、部门号。(clerk  职员,办事员)

    SELECT EMPNO,ENAME,DEPTNO FROM EMP WHERE JOB="职员"

    #3、检索出奖金多于基本工资的员工信息。

    SELECT * from EMP where COMM>SAL;

    #4、检索出奖金多于基本工资60%的员工信息。

    SELECT * from EMP WHERE COMM>SAL*0.6

    #5、找出10部门的经理、20部门的职员 的员工信息。(manager经理;管理

    select * from EMP where DEPTNO=10 and JOB='经理' union select * from EMP where DEPTNO=20 and JOB='职员';

    select * from EMP where (DEPTNO=10 and JOB='经理') or (DEPTNO=20 and JOB='职员');

    #6、找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。(sal 工资)

    select * from emp where (job='经理' and deptno=10) or (job='职员' and deptno=20) or (job!='经理' and job!='职员' and sal>2000);

    select * from EMP where (DEPTNO=10 and JOB='经理') or (DEPTNO=20 and JOB='职员') or (JOB not in('经理','职员') and SAL>2000);

    SELECT * FROM EMP WHERE (JOB="经理" and DEPTNO=10)OR(JOB="职员" and DEPTNO=20)OR (JOB<>"职员" AND JOB<>"经理" AND SAL>2000)

    #7、找出获得奖金的员工的工作。(comm奖金)

    SELECT ENAME,COMM FROM EMP WHERE COMM IS NOT NULL

    select distinct(JOB) from EMP where COMM is not null;

    select job from emp where comm>0l;

    SELECT ENAME ,JOB FROM EMP WHERE COMM>0

    #8、找出奖金少于100或者没有获得奖金的员工的信息。

    SELECT * FROM EMP WHERE COMM IS NULL OR COMM<100

    select * from EMP where COMM BETWEEN 0 and 100 ;

    #9、找出姓名以ABS开始的员工信息.

    select * from ygb where ENAME like 'A%' or ENAME like 'B%' or ENAME like 'S%'

    select * from EMP where ENAME regexp '^[ABS]';

    #10、找到名字长度为6个字符的员工信息。

    select * from emp where length(ename)=6;

    select * from emp where ename like '______';

    #11、名字中不包含R字符的员工信息。

    select * from emp where ename not like '%R%';

    #12、查找员工的详细信息并按姓名排序。

    SELECT * FROM EMP ORDER BY ENAME ASC

    #13、返回员工的信息并按工作降序工资升序排列。(升序的规则)

    SELECT * FROM EMP ORDER BY JOB DESC,SAL ASC

    #14、计算员工的日薪(30)

    SELECT ENAME,SAL/30 FROM EMP;

    #15、找出姓名中包含A的员工信息

    SELECT * FROM EMP WHERE ENAME LIKE"%A%"

    一个学生表

    分别记录姓名,年龄,性别,班级,语文,数学,英语字段

    create table student2(

    id int primary key ,

    name char(20),

    sex char(10),

    age int(3),

    mobile char(20),

    class char(10),

    english int(10),

    chinese int(10),

    math int(10)

    )engine=innodb default charset=utf8;

    insert into student2 values

    (1,'小红','女',23,'13813828824','1719',77,88,98),

    (2,'小明','男',23,'13713713711','1720',56,66,55),

    (3,'小李','男',23,'15915913911','1719',78,64,87),

    (4,'小张','男',23,'15915913912','1720',77,76,77),

    (5,'小白','女',24,'15915913913','1719',90,89,98),

    (6,'小陈','女',19,'15915913914','1719',84,100,81),

    (7,'小钱','女',20,'15915913915',null,45,99,93);

    题目

    题目1

    查询1719班学生的成绩信息(指english,chinese,math)

    题目2

    查询1719班学生语文成绩大于80小于90的学生信息

    题目3

    查询学生表中5-7行的数据信息

    题目4

    显示1719班英语成绩为90,数学成绩为98的namemobile信息

    题目5

    显示1719班学生信息并且以语文成绩降序排序(所有的信息)

    题目6

    查询1719与1720班,语文成绩与数学成绩都小于80的namemobile信息

    题目7

    查询英语平均分大于80分的班级,英语平均分

    题目8

    按班级查出数学最高分

    题目9

    查询出每班数学最低分

    题目10

    查询每班数学总分

    题目11

    查询每班数学平均分

    题目12

    查询出每班学生总数

    题目13

    在表中插入一条小谢的成绩数据

    题目14

    把英语分数小于60的同学分数改为60分?

    题目15

    删除数学不及格的数据?

  • 相关阅读:
    base64是什么东东,base64 图片显示,在线编辑器
    中文字符 与 十六进制Unicode编码 相互转换
    全面理解Python中self的用法
    Python之使用元类MetaClass
    Python之MySQL数据库连接驱动aiomysql的使用
    Python实战网站开发:Day2编写Web App骨架
    Python实战网站开发:Day3编写ORM
    Python之MySQL数据库连接驱动pymysql的使用
    【CV基础】为什么一些深度学习的图像预处理使用mean=[0.485, 0.456, 0.406] and std=[0.229, 0.224, 0.225]来正则化?
    与人合作创业是一门大艺术(转)
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13970906.html
Copyright © 2020-2023  润新知