目的要求:
(1)掌握SELECT语句的基本用法
(2)掌握子查询的表示
(3)掌握连接查询的表示
(4)掌握SELECT语句的GEOUP BY子句的作用和使用方法
(5)掌握SELECT语句的ORDER BY子句的作用和使用方法
实验准备:
(1)了解SELECT语句的基本语法格式
(2)了解SELECT语句执行方法
(3)了解子查询的表示方法
(4)了解查询的表示方法
(5)了解SELECT语句的GROUP BY子句的作用和使用方法
(6)了解SELECT语句的ORDER BY子句的作用
(7)了解SELECT语句的LIMIT子句的作用
实验内容:
1.SELECT语句的基本使用
(1)用SELECT语句查询Departmrnts表的所有记录。(2分)

SELECT * FROM zhangyk_departments

(2)用SELECT语句查询Salary表的所有记录。(2分)

SELECT * FROM zhangyk_salary

(3)用SELECT语句查询Departments表的部门号和部门名称列。(2分)

SELECT departmentID,departmentName FROM zhangyk_departments

(4)查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。(3分)

SELECT DISTINCT departmentID,sex
FROM zhangyk_employees

(5)查询月收入高于2000的员工号码。(3分)

SELECT employmeeID from zhangyk_salary
WHERE Income>2000

(6)查询所有1970以后出生的员工的姓名和住址。(3分)

SELECT name,address
FROM zhangyk_employees
WHERE brithday>='1970-01-01'

(7)查询所有财务部门的员工号码和姓名。(3分)

SELECT Employees,name
from zhangyk_employees e INNER JOIN zhangyk_departments d on
e.departmentID=d.departmentID

(8)查询Empoyees表中男员工的姓名和出生日期,要求个列标题用中文表示。(3分)

SELECT name 姓名,brithday 出生日期
FROM zhangyk_employees
WHERE sex=1

(9)查询Employees员工的姓名住址和收入水平,2000以下的显示为低收入,2000`3000的显示为中等收入,3000以上的显示为高收入。(3分)

select  name,address,case when income<2000 then ;低收入;when income between 2000 and 3000 then ;中收入;when income>3000 then ;高收入;
end as ;收入水平; from Dongc_Employees inner join Dongc_Salary
on Dongc_Employees.EmployeesId=Dongc_Salary.employmeeID

(10)计算Salary表中员工月收入的平均数。(3分)

SELECT AVG(Income) from zhangyk_salary

(11)获得Employees表中的最大的员工号码。(3分)

SELECT MAX(Employees) from zhangyk_employees

(12)计算Salary表中所有员工的总支出。(3分)

SELECT SUM(Outcome)  总支出 FROM zhangyk_salary

(13)查询财务部官员的最高和最低实际收入。(3分)

SELECT MAX(Income-Outcome) 最高实际收入 ,min(Income-Outcome) 最低实际收入
FROM zhangyk_employees e ,zhangyk_salary s,zhangyk_departments d
WHERE e.employees=s.employmeeID
AND e.departmentID=d.departmentID
and departmentName='财务部'

(14)找出所有其地址含有“中山”的雇员的号码及部门号。(3分)

SELECT Employees,departmentID
from zhangyk_Employees
WHERE address LIKE '%中山%'

(15)查找员工号码中倒数第二个数字为0的姓名、地址和学历。(3分)

SELECT name,address,education
FROM zhangyk_Employees WHERE employees LIKE '%0_'

(16)找出所有部门“1”或“2”工作的雇员的号码。(3分)

SELECT employees
from zhangyk_Employees e inner JOIN zhangyk_departments d on
e.departmentID=d.departmentID
WHERE d.departmentID=1 or
d.departmentID=2

2.子查询的使用
(1)用子查询的方法查找所有收入在2500以下的雇员的情况。(5分)

SELECT * FROM zhangyk_Employees
WHERE employees in(
SELECT employees FROM zhangyk_salary
WHERE Income<2500)

(2)用子查询的方法查找研发部比财务部所有雇员收入都高的雇员的姓名。(5分)

SELECT name
FROM zhangyk_employees e ,zhangyk_salary s,zhangyk_departments d
WHERE Income > all(
SELECT Income
from zhangyk_employees e ,zhangyk_salary s,zhangyk_departments d
WHERE e.employees=s.employmeeID
and e.departmentID=d.departmentID
and departmentName='财务部')
and e.employees= s.employmeeID
and e.departmentID=d.departmentID
and departmentName='研发部'

(3)用子查询的方法查找年龄比研发部所有雇员年龄都大的雇员的姓名。(5分)

SELECT name FROM zhangyk_employees
WHERE departmentID in(
SELECT departmentID FROM zhangyk_departments
WHERE departmentName!='研发部')
and brithday <=all(SELECT brithday FROM zhangyk_employees
WHERE departmentID in(SELECT departmentID FROM zhangyk_departments
WHERE departmentName='研发部'))

3.连接查询的使用
(1)查询每个雇员的情况及其工作部门的情况。(4分)

SELECT *
FROM zhangyk_employees e ,zhangyk_salary s,zhangyk_departments d
WHERE e.Employees=s.employmeeID
and e.departmentID=d.departmentID

(2)使用内连接的方法查找不在财务部工作的所有员工信息。(4分)

SELECT * from zhangyk_departments
INNER JOIN zhangyk_employees on
zhangyk_departments.departmentID=zhangyk_employees.departmentID
WHERE departmentName!='财务部'

(3)使用外连接方法查找所有员工的月收入。(4分)

SELECT Income
from zhangyk_employees  LEFT OUTER JOIN zhangyk_salary s
on zhangyk_employees.Employees=s.employmeeID

(4)查询研发部在1966年以前出生的雇员姓名及其薪水详情。(4分)

SELECT name,income,outcome
from zhangyk_employees e ,zhangyk_salary s,zhangyk_departments d
WHERE e.Employees=s.employmeeID
and e.departmentID=d.departmentID
and departmentName ='研发部'
and brithday<'1966-01-01'

4.GROUP BY、ORDER BY和LIMIT子句的使用
(1)按部门列出在该部门工作的员工的人数。(4分)

SELECT departmentID,COUNT(departmentID) 人数
FROM zhangyk_departments
GROUP BY departmentID

(2)按员工的学历分组,列出本科、大专和硕士的人数。(4分)

SELECT education,COUNT(education) 人数
from zhangyk_employees
GROUP BY education

(3)按员工的工作年份分组,统计各个工作年份的人数,如工作1年的多少人,工作2年的多少人。(4分)

SELECT workyear,COUNT(workyear) 人数
FROM zhangyk_employees
GROUP BY workyear

(4)将员工信息按出生日期从小到大排列。(4分)

SELECT *
FROM zhangyk_employees
ORDER BY brithday DESC

(5)在ORDER BY子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列。(4分)

SELECT name,sex,workyear
from zhangyk_employees e ,zhangyk_salary s
WHERE e.Employees=s.employmeeID
ORDER BY (Income-Outcome) DESC

(6)返回Employees表中从第3位员工开始的5个员工的信息。(4分)、

SELECT * from zhangyk_employees
LIMIT 2,3

实验小结:
 注意分号为英文字符下的;在要求查询结果的属性列名用中文表示时,AS可加可不加;模糊查询时,还可用正则表达式;
 用子查询方法时,可在FROM后使用;
 在利用子查询方法时,可将问题分解,先写出框架,在具体实现.

MySQL实验4 数据的查询相关推荐

  1. MySQL SELECT:数据表查询语句

    MySQL 表单查询是指从一张表的数据中查询所需的数据,主要有查询所有字段.查询指定字段.查询指定记录.查询空值.多条件的查询.对查询结果进行排序等. MySQL SELECT 基本语法 MySQL ...

  2. MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

  3. MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询

    实验四          嵌套查询 一.实验目的 掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法. 二.实验环境 三.实验示例 1.  查询与"刘 ...

  4. MySQL数据库实验二 数据基本查询

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握SQL查询语句的一般格式 ...

  5. php查询mysql表里的数据_php查询mysql数据表记录实现代码

    php与mysql是黄金组合,现在我们来讲一下关于php查询mysql数据库记录实现,主要会用到函数mysql_connect mysql_query mysql_select_db mysql_fe ...

  6. mysql前一天的数据_mysql查询前一天数据-mysql根据时间查询前一天数据-吾爱编程网...

    今天一朋友说有个需求是mysql查询前一天的数据,然后进行数据同步,接下来吾爱编程为大家介绍一下关于mysql根据时间查询前一天数据的方法,有需要的小伙伴可以参考一下: 1.date格式:select ...

  7. MySQL实验四数据库的查询_MySQL数据库查询(实验四)

    MySQL数据库查询 准备工作:脚本文件xkgl.sql下载:xkgl脚本.sql 1.执行脚本xkgl.sql (创建xkgl库.表及插入数据),观察有无错误,如有记录错误信息,并解决. (1) 执 ...

  8. 关于mysql百万级别数据条件查询过慢问题以及count()过慢

    检查条件中是否有Long字段 如有Long字段 将Long字段改为String类型 即可 count(*)查询过慢 首先建立索引 CREATE INDEX index2_id(索引名) ON sys_ ...

  9. mysql数据库实验查询_MySQL数据库表数据的查询操作实验

    实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...

最新文章

  1. 阿里云 物联网产品架构
  2. 微软公有云Azure落地中国,全面大规模商用
  3. FPGA设计的基础流程
  4. 永磁交流伺服电机的工作原理与更换新编码器后的常规零位校正方法
  5. Nacos配置中心规范
  6. matlab对多项式求导,matlab中多项式求导
  7. 模型压缩:模型量化打怪升级之路-工具篇
  8. .net 实现微信公众平台的用户信息获取
  9. 6-6-阶段案例:传智书城JSP页面
  10. in function ‘int main()’_FIND_IN_SET 及IN 处理逗号间隔的字符串参数
  11. mysql6.7主从_CentOS 6.7下MySQL主从部署
  12. 【贪心+双指针】LeetCode 11. Container With Most Water
  13. matlab 系统辨识,系统辨识的Matlab实现方法(手把手)..docx
  14. Topsis方法对数据综合评价
  15. springboot+基于JavaWEB学生课程考试系统 毕业设计-附源码171548
  16. 计算机电子智能化贰级,电子与智能化工程专业承包资质分为一级、二级
  17. 微信社群运营是什么,如何做好社群运营?
  18. js 判断2月份多少天
  19. 林群、张景中院士近年来致力于微积分局部公理化,此路不通
  20. 华为手机中的计算机怎么用高级,华为手机DLNA怎么用 华为DLNA共享多媒体文件使用教程...

热门文章

  1. 2012年北京地铁规划图(我好不容易找到的哦)
  2. this kernel requires an x86-64 CPU, but only detected an i686 CPU. unable to boot - please ues a ke
  3. 计算机一级保存文件,计算机等级一级技巧:Word文档保存为PDF文件
  4. cisco(思科)两个不同网段相连接
  5. 1x pcie 速度_利用起闲置的PCIe 1x空间:PCIe 1x的SATA扩展卡,内置2.5寸盘位
  6. GreenPlum数据库集群故障检测与恢复
  7. 黑客攻防(一)网站信息收集
  8. 一“站”成名 | 盘点全球域名收购经典案例
  9. 浏览器访问linux服务器上tomcat中的pdf文件时报404,无法访问的问题
  10. 对接奇门ASCP通过该接口通知商家仓成交订单对应的物流订单信息接口