• mysql练习题


     数据准备

    CREATE TABLE `dept` (
    `did` int(11) NOT NULL AUTO_INCREMENT,
    `dname` varchar(255) DEFAULT NULL,
    `address` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`did`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

    -- ----------------------------
    -- Records of dept
    -- ----------------------------
    INSERT INTO `dept` VALUES ('1', '武当', '湖北');
    INSERT INTO `dept` VALUES ('2', '华山', '陕西');
    INSERT INTO `dept` VALUES ('3', '嵩山', '河南');
    INSERT INTO `dept` VALUES ('4', '日月神教', '黑木崖');

    -- ----------------------------
    -- Table structure for ren
    -- ----------------------------
    DROP TABLE IF EXISTS `ren`;
    CREATE TABLE `ren` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) DEFAULT NULL,
    `age` int(11) DEFAULT NULL,
    `salary` int(10) DEFAULT NULL,
    `leader` int(11) DEFAULT NULL,
    `menpai` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

    -- ----------------------------
    -- Records of ren
    -- ----------------------------
    INSERT INTO `ren` VALUES ('1', '张三丰', '100', '10000', '0', '武当');
    INSERT INTO `ren` VALUES ('2', '张无忌', '20', '8000', '0', '明教');
    INSERT INTO `ren` VALUES ('3', '岳不群', '40', '6500', '0', '华山');
    INSERT INTO `ren` VALUES ('4', '东方不败', '35', '12000', '0', '日月神教');
    INSERT INTO `ren` VALUES ('5', '令狐冲', '21', '4000', '3', '华山');
    INSERT INTO `ren` VALUES ('6', '林平之', '18', '2000', '3', '华山');
    INSERT INTO `ren` VALUES ('7', '金毛狮王', '50', '10000', '2', '明教');
    INSERT INTO `ren` VALUES ('8', '张翠山', '46', '10000', '1', '武当');
    INSERT INTO `ren` VALUES ('9', '张远桥', '55', '6500', '1', '武当');
    INSERT INTO `ren` VALUES ('10', 'Alex', '12', '350', '0', 'python');

    数据准备

     

    1.表关系

      

     注意:创建表时,根据合理性设置字段的长度和类型.

    复制代码

    -- 1.查询所有人员信息
    -- SELECT * FROM ren INNER JOIN dept on ren.menpai = dept.dname
    -- 2.只查询人员的姓名和年龄
    -- SELECT name,age FROM ren
    -- 3.查询年龄为20岁的有哪些人员
    -- SELECT * FROM ren WHERE age>20

    -- 4.查询60岁以下的人员有哪些人员
    -- SELECT * FROM ren WHERE age <60

    -- 5.查询50岁以上并且工资大于8000的人员有哪些
    -- SELECT * FROM ren WHERE age>50 and salary >8000

    -- 6.查询姓[张]的人员有哪些
    -- SELECT * FROM ren WHERE `name` LIKE '张%'

    -- 7.查询哪些人员属于 武当/华山/嵩山
    -- SELECT menpai,`name` FROM ren WHERE menpai IN('武当','华山','嵩山')

    -- 8.查询工资在 5000-8900 的人员有哪些
    -- SELECT name,salary FROM ren WHERE salary BETWEEN 5000 and 8900
    -- 9.查询所有人员,要求按工资倒序排列
    -- SELECT * FROM ren ORDER BY salary DESC
    -- 10.查询令狐冲的领导人是谁
    -- SELECT * FROM ren WHERE name = ’令狐冲‘


    -- 11.查询人员表中最高工资是多少
    -- SELECT NAME,salary FROM ren ORDER BY salary DESC LIMIT 1

    -- 12.查询人员表中最低工资是多少
    -- SELECT NAME, salary FROM ren ORDER BY salary Asc LIMIT 1
    -- SELECT MIN(salary) FROM ren

    -- 13.查询所有人员的平均工资是多少-- 
    -- SELECT AVG(salary) FROM ren

    -- 14.查询所有人员的工资总和是多少
    -- SELECT SUM(salary) FROM ren

    -- 15.查询目前有多少个人员
    -- SELECT COUNT(id)FROM ren

    -- 16.查询当前武林中有哪些门派
    -- SELECT dname FROM dept

    -- 17.查询 武当派 最高工资是谁-- 
    -- SELECT `name`, MAX(salary) FROM ren INNER JOIN dept on ren.menpai=dept.dname where ren.menpai='武当'

    -- 18.查询各门派的平均工资是多少
    -- SELECT menpai,avg(salary) FROM ren GROUP BY ren.menpai
    -- 19.查询当前武林中有哪些门派的平均工资大于8000 并按工资倒序排列
    -- SELECT menpai,AVG(salary) FROM ren GROUP BY ren.menpai HAVING avg(salary)>8000 ORDER BY salary

    -- 20.查询当前人员表的中的第3条数据到第7条数据
    -- SELECT * FROM ren LIMIT 3,7

    -- 22.查询武当派下有哪些弟子
    -- SELECT menpai,`name` FROM ren WHERE menpai ='武当'

    -- 23.查询各门派的工资总和按倒序/正序排列
    -- SELECT menpai,SUM(salary) FROM ren GROUP BY menpai


    -- 25.将武当派 张三丰 修改为 张丰
    -- update ren set name='张丰' where NAME='张三丰'

    -- 29.在湖北省内的门派中的人员有哪些.
    -- SELECT dname,`name` FROM dept INNER JOIN ren ON dept.dname= ren.menpai WHERE address='湖北'


    -- 30.在陕西省内门派中的工资小于5000,年龄大于20岁的人员有哪些,按主键倒序排列
    -- SELECT `name` FROM dept INNER JOIN ren WHERE address='陕西' and salary<5000 AND age>20 ORDER BY ren.id DESC

    -- -------------------------疑难部分-------------------------------

    -- 21.查询哪些门派下没有弟子(错误)
    -- SELECT menpai FROM dept RIGHT JOIN ren ON dept.dname=ren.menpai

    -- 24.删除工资重复的人员,请保留年龄最大的一个人

    -- 26.将所有门派大哥工资上调10%,但不包括Alex.


    -- 27.查看哪些人员的门派已登记地理位置.
    -- SELECT dname FROM dept WHERE address = NULL


    -- 28.查询所有人员门派的位置信息,不存在位置信息则不显示

    复制代码

    2.下面:开始你的表演

    1.查询所有人员信息

    2.只查询人员的姓名和年龄

    3.查询年龄为20岁的有哪些人员

    4.查询60岁以下的人员有哪些人员

    5.查询50岁以上并且工资大于8000的人员有哪些

    6.查询姓[张]的人员有哪些

    7.查询哪些人员属于 武当/华山/嵩山

    8.查询工资在 5000-8900 的人员有哪些

    9.查询所有人员,要求按工资倒序排列

    10.查询令狐冲的领导人是谁

    11.查询人员表中最高工资是多少

    12.查询人员表中最低工资是多少

    13.查询所有人员的平均工资是多少

    14.查询所有人员的工资总和是多少

    15.查询目前有多少个人员

    16.查询当前武林中有哪些门派

    17.查询 武当派 最高工资是谁

    18.查询各门派的平均工资是多少

    19.查询当前武林中有哪些门派的平均工资大于8000 并按工资倒序排列

    20.查询当前人员表的中的第3条数据到第7条数据

    21.查询哪些门派下没有弟子

    22.查询武当派下有哪些弟子

    23.查询各门派的工资总和按倒序/正序排列

    24.删除工资重复的人员,请保留年龄最大的一个人

    25.将武当派 张三丰 修改为 张丰

    26.将所有门派大哥工资上调10%,但不包括Alex.

    27.查看哪些人员的门派已登记地理位置.

    28.查询所有人员门派的位置信息,不存在位置信息则不显示

    29.在湖北省内的门派中的人员有哪些.

    30.在陕西省内门派中的工资小于5000,年龄大于20岁的人员有哪些,按主键倒序排列

  • 相关阅读:
    练习一
    Oracle删除一个库里面的所有表
    bat脚本中,@echo on与@echo off的使用
    bat命令之执行脚本后不退出窗口
    福清游玩
    MyEclipse快捷键
    过滤器与拦截器
    Anaconda-Jupyter的简单使用
    pycharm简单配置
    4、 vim&shell
  • 原文地址:https://www.cnblogs.com/xyhh/p/10855566.html
Copyright © 2020-2023  润新知