实验3 数据库的查询和视图
实验目的
(1)掌握SELECT语句的基本语法
(2)掌握子查询的表示
(3)掌握连接查询的表示
(4)掌握数据汇总的方法
(5)掌握SELECT语句的GROUP BY子句的作用和使用方法
(6)掌握SELECT语句的ORDER BY子句的作用和使用方法
(7)掌握视图的使用方法
实验准备
(1)了解SELECT语句的基本语法格式和执行方法
(2)了解子查询的表示方法,连接查询和数据汇总的方法
(3)了解SELECT语句的GROUP BY子句的作用和使用方法
(4)了解SELECT语句的ORDER BY子句的作用
(5)了解视图的作用和创建视图的方法
(6)了解视图的使用方法
实验内容
一.SELECT语句的基本使用
1.对于实验2给出的数据库表结构,查询每个雇员的所有数据。在SQL*PLUS 窗口中输入下面语句并执行:
Select * from employees
思考与练习:用SELECT语句查询Departments和Salary中的所有记录
2.查询每个雇员的地址和电话。在SQL*PLUS窗口中输入下面语句并执行:Select address,phonenumber from employees;
思考与练习:用SELECT语句查询Departments和Salary表的一列或若干列3.查询employeeID为000001的雇员的地址和电话。在SQL*PLUS窗口中输入如下语句并执行:
Select address, phonenumber from employees where employeeID=’000001’
思考与练习:用SELECT语句查询Departments和Salary表中满足条件的一列或若干列
4.查询employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址,电话。在SQL*PLUS窗口中输入下面语句并执行:Select address as 地址, phonenumber as 电话号码from employees where sex=0;
注意:使用AS子句可指定目标列的标题。
5.计算每个雇员的实际收入。在SQL*PLUS窗口中输入下面语句并执行:Select employeeid,income-outcome as 实际收入from salary
6.找出所有姓王的雇员的部门号。在SQL*PLUS窗口中输入下面语句并执行:
Select departmentID from employees where name like ‘王%’
思考与练习:找出所有地址中含有“中山”的雇员的号码及部门号
7.找出所有收入在2000-3000元之间的雇员号码。在SQL*PLUS窗口中输入下面语句并执行:
Select employeeId from salary where income between 2000 and 3000
思考与练习:找出所在部门1或2工作的雇员的号码
注意:在SELECT语句中LIK、E BETWEEN AND、IN、NOT谓语词的作用
二、子查询的使用
1.查找财务部工作的雇员的情况。在SQL*PLUS窗口中输入下面语句并执行:Select * from employees
Where departmentid=(
Select departmentID from departments
Where departmentname=’财务部’)
思考与练习:用子查询的方法查找所有收入在2500元以下的雇员的情况。
2.查找财务部门年龄不低于研发部雇员年龄的雇员姓名。在SQL*PLUS窗口中输入下面语句并执行:
Select neme from employees where departmentid in
(select departmentid from departments where departmentname=’财务部’) and
Birthday !>all (select birthday from employees where departmentID in
(select departmentID from departments where departmentname=’研发部’)
思考与练习:用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名。
3.查找比所有财务部收入都高的雇员的姓名。在SQL*PLUS窗口中输入下面语句并执行:
Select name from employees where employeeid in
( select employeeid from salary
Where income>all ( select income from salary where
Employeeid in( select employeeid from employees where departmentid=( select departmentid from departments where departmentname=’财务部’))));
思考与练习:用子查询的方法查找所有年龄比研发部年龄都大的雇员的姓名
三、连接查询的使用
1.查询每个雇员的基本信息及薪水的情况。在SQL*PLUS窗口中输入下面语句并执行:
Select employees.*,salary.* from employees,salary
Where employees.employeeid=salary.employeeid;
思考与练习:查询每个雇员的基本信息及其工作的部门的情况
2.查找财务部收入在2200元以上的雇员姓名及其薪水详情。在SQL*PLUS 窗口中输入下面语句并执行:
Select name,income,outcome from employees,salary,departments
Where employees.employeeid=salary.employeeid and employees.departmentid=departments.departmentid and departmentname=’财务部’and income>2200;
思考与练习:查询研发部在1966年以前出生的雇员姓名及其薪水详情。四、数据汇总
1.求财务部雇员的平均收入。在SQL*PLUS窗口中输入下面语句并执行:
Select avg(income) as ‘财务部雇员的平均收入’ from salary
Where employeeid in (select employeeid from employees where departmentid=( select departmentid from departments where departmentname=’财务部’));
思考与练习:查询财务部雇员的最高收入和最低收入
2.求财务部雇员的平均实际收入。在SQL*PLUS窗口中输入下面语句并执行:
Select avg(income-outcome) as ‘财务部雇员的平均实际收入’ from salary
Where employeeid in (select employeeid from employees where departmentid=( select departmentid from departments where departmentname=’财务部’));
3.求财务部雇员的总人数。在SQL*PLUS窗口中输入下面语句并执行:Select count(employeeid)
From employees
Where departmentid=(select departmentid from departments where departmentname=’财务部’);
思考与练习:统计财务部门收入在2500元以上的雇员的人数。
五、GROUP BY、ORDER BY子句的使用
1.求各部门的人数。在SQL*PLUS窗口中输入下面语句并执行:
Select count(employeeid) from employees
Group by departmentid
思考与练习:统计各部门收入在2000元以上的雇员的人数
2.将雇员的情况按收入由低到高排列。在SQL*PLUS窗口中输入下面语句并执行:
Select employees.*,salary.* from employees,salary
Where employees.employeeid=salary.employeeid
Order by income
思考于练习:将各雇员的情况按出生时间的先后排序(降序)
在学生选课数据库中完成规定查询,并创建视图。 1.查询线性代数不及格的同学的学号和姓名; SQL语句为:SELECT名单$.学号,姓名 FROM名单$,学生选课信息和成绩$,课程$ WHERE名单$.学号=学生选课信息和成绩$.学号AND课程$.课号=学生选课信息和成绩$.课号AND 课程$.课程名='线性代数' AND学生选课信息和成绩$.成绩<60; 执行后结果为: 2.查询没有选课记录的同学的所有基本信息; SQL语句为:SELECT* FROM名单$ WHERE NOTEXISTS (SELECT* FROM学生选课信息和成绩$
WHERE学号=名单$.学号); 执行后结果为: 3.查询具有简介先修课的课程信息及对应的先修课名;SQL语句为:SELECTFIRST.课号,SECOND.课程名FROM课程$FIRST,课程$SECOND WHEREFIRST.先修课号=SECOND.课号; 执行后结果如下:
4.统计高等数学(1)的平均成绩; SQL语句为:SELECT AVG(成绩) FROM学生选课信息和成绩$,课程$ WHERE学生选课信息和成绩$.课号=课程$.课号AND课程$.课程名='高等数学(1)'; 执行后结果如下: 5.统计各门课的选课人数; SQL语句为:SELECT课号,COUNT(学号) FROM学生选课信息和成绩$ GROUPBY课号; 执行后结果为:
6.查询选修5门课以上的学生的学号;SQL语句为:SELECT学号 FROM学生选课信息和成绩$ GROUPBY学号 HAVING COUNT(*)>5; 执行后结果为:
华中科技大学 《数据库技术与应用》实验报告专业班级:学生姓名:学号: 实验地点:指导教师: 实验日期时间: 一、实验项目名称:数据查询 二、实验学时: 三、实验目的: 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 四、实验工具或环境 一台装有SQL sever2008的计算机五、实验内容、步骤、代码和结果: 0. 创建studentsdb数据库及其相应表,并录入数据。 在SQL Server管理平台上,点击“新建查询”打开查询编辑器窗口,复制粘贴附件“创建数据库代码”中的代码到查询编辑器窗口,运行即可生成相关数据库和表,并有相应的数据。 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly') (4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85
(6)SELECT 2,3,POWER(2,3) 选做 (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 (2)查询学号为0002的学生的姓名和家庭住址。 select姓名,家庭住址from student_info where学号 ='0002' (3)找出所有男同学的学号和姓名。 select姓名,家庭住址from student_info where性别='男' 3.使用SELECT语句进行条件查询 (1)在grade表中查找分数在80~90分为内的学生的学号和分数。 select学号,分数from grade where分数>='80'and分数<='90' (2)在grade表中查询课程编号为0003的学生的平均分。 select AVG(分数)as平均分from grade where课程编号='0003'
实验四数据库的查询和视图 T4.1 数据库的查询 1.目的与要求 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 2 实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDERBY子句的作用; 3实验内容 SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行: USEYGGL GO SELECT * FROM Employees 【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。 用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: Use YGGL GO SELECT Address PhoneNumber
FROM Employees 【思考与练习】 a.用SELECT语句查询Deparments和Salary表的一列或若干列。 b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。 c.查询EmployeeID为000001的雇员的地址和电话。 Use YGGL GO SELECT Address PhoneNumber FROM Employees WHERE EmployeeID=’000001’ 【思考与练习】 a.查询月收入高于2000元的员工号码。 b.查询1970年以后出生的员工的姓名和住址。 c.查询所有财务部的员工的号码和姓名。 查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标 题分别指定为地址、电话。 USE YGGL GO SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees WHERE Sex=0 【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。 ⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。 SELECTNameAS姓名, CASE WHENSex=1 THEN男 WHENSex=1 THEN女 END AS性别 FROMEmployees
实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握SELECT语句的GROUP BY子句的作用和使用方法。 (5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2、实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECT语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解SELECT语句的GROUP BY子句的作用和使用方法。 (6)了解 SELECT语句的ORDER BY子句的作用。 3、实验内容 (1)SELECT语句的基本使用。 ①对于实验二给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 【思考与练习】 用SELECT语句查询Departments表和Salary表中所有信息。
新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现总共有60行受影响。 ②用SECECT语句查询Employees表中每个雇员的地址和电话号码。 新建一个查询,在“查询分析器”窗口中输入如下代码并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现有12行记录受影响 【思考与练习】 A、用SELECT语句查询Departments表和Salary表的一列或若干行。
利用SELECT语句查询Departments表和Salary表中 EmployeeID为000001的记录,在“查询分析器”中输入以下代码。 执行后在下方会出现所有EmployeeID=000001的记录 B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。 对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。 上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。 可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。 ③查询EmployeeID为000001的雇员的地址和电话。
一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:
(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:
二 〇 一 五 年 四 月 题 目:数据库的查询和视图 学生姓名:孙跃 学 院:理学院 系 别:数学系 专 业:信息与计算科学 班 级:信计12-2 任课教师:侯睿 《数据库原理及应用》实验报告
一、练习目的 1、数据库的查询 (1)掌握SELECT语句的基本语法; (2)掌握子查询的表示; (3)掌握连接查询的表示; (4)掌握SELECT语句的GROUP BY子句的作用与使用方法; (5)掌握SELECT语句的ORDER BY子句的作用与使用方法; 2、视图的使用 (1)熟悉视图的概念和作用; (2)熟悉视图的创建方法; (3)熟悉如何查询和修改视图。 二、练习准备 1、数据库的查询 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUP BY子句的作用与使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 2、视图的使用 (1)了解视图的概念; (2)了解创建视图的方法; (3)了解并掌握对视图的操作。 三、实验程序 实验4.1 数据库的查询 1、(1)对于实验2给出的数据库结构,查询每个雇员的所有数据. USE YGGL GO SELECT* FROM Employees (2)用SELECT语句查询Employees表中每个雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees (3)查询EmployeeID为000001的雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees WHERE EmployeeID='000001' GO (4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话. SELECT Address AS地址,PhoneNumber AS电话 FROM Employees WHERE Sex=0 (5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”. SELECT Name AS姓名, CASE
应用数学学院_学院专业_1__班学号 姓名___ ___教师评定 实验题目数据库的查询 一、实验目的与要求 实验目的:使学生掌握SQL Server查询分析器的使用方法,加深对SQL 和Transact-SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法;嵌套查询语句;熟练掌握数据查询中的分组、统计、计算和组合的操作方法。 实验要求: 1、简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等; 2、连接查询操作; 3、嵌套查询。在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS 操作符进行嵌套查询操作; 4、分组查询实验。包括分组条件表达、选择组条件的表达方法; 5、使用函数查询。包括统计函数和分组统计函数的使用方法; 6、组合查询实验; 二、实验方案 将查询需求用Transact-SQL语言表示;在SQL Server查询分析器的输入区中输入Transact-SQL查询语句;设置查询分析器的结果区为标准执行或网格执行方式;发布执行命令,并在结果区中查看结果; 三、实验结果和数据处理 1、学生选课库的各个表截图: (1)学生表
(2)课程表 (3)选课表 2、图书-读者库的各个表截图(1)图书表
(2)读者表 (3)借阅表 实验步骤: 1、简单查询: l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作.①求数学系学生的学号和姓名。 select 学号,姓名 from 学生 where 所在系='数学';
结果: ②求选修了课程的学生学号。 select distinct 学号 from 选课 结果: ③求选修A1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 select 学号,成绩 from 选课 where 课程号='A1' order by 成绩 desc,学号 asc 结果: ④获选修课程A1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。select 学号,成绩*0.8 from 选课 where 课程号='A1' and 成绩 between 80 and 90 结果: ⑤求数学系或计算机系姓张的学生的信息。 select * from 学生 where 所在系 in ('数学','计算机') and 姓名 like '张%'; 结果; ⑥求缺少了成绩的学生的学号和课程号。(本库中没有学生没有成绩) select 学号,课程号 from 选课 where 成绩 is null
数据库实验四:S Q L数 据查询
数据库实验四:SQL数据查询 一、实验目的与要求: 1.实验目的 熟练掌握SQL SELECT语句,能运用查询语句完成各种查询。 实验内容: 在实验三和实验四的基础上完成查询操作,将题目中的x, y等具体化: 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。 (2)查询某个表中的所有记录。 (3)使用单个条件的简单查询。 (4)使用多个条件(AND关系)的查询。 (5)使用多个条件(OR关系)的查询。 (6)使用多个条件(混合AND和OR关系)的查询。 (7)使用带NOT运算的查询。 (8)使用BETWEEN···AND···的查询。 (9)使用NOT···BETWEEN···AND···的查询。 (10)使用LIKE运算符的字符串匹配查询。 (11)使用LIKE运算符的模板匹配查询。 (12)查询空值和非空值的查询 (13)结果要求排序的查询 (14)查询结果按多列排序,并分别要求升序和降序的查询。 (15)使用TOP显示前若干记录的查询。 (16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示。 2、连接查询 (17)两个关系的连接查询。 (18)带其他查询条件的两个关系的连接查询。 (19)多个关系(三个以上)的连接查询。 (20)两个关系的广义笛卡尔积运算结果。 (21)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自然连接的结果。 (22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段。 (23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息(即包括不 是任何课程责任教师的教师信息)。 (24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反映目前没有确定责任教 师的课程信息。 (25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师
数据库实验04 查询 1)调出上个实验创建的三个表。方法:附加XSKC数据库或运行创建3个表的SQL语句。2)用SQL增加数据语句输入四个表中数据。其中学生表不得少于10个,课程注册表不得少于8个,学期成绩表不得少于30个。注意:输入数据时应先输入主表数据,再输入有外键的数据;同时注意各表已经定义约束条件。 学生表: 课程注册表: 学期成绩表:
3)设计查询语句并在查询编辑器中进行查询。 ①求选修了某门课程的学生姓名。 ②查询某个学生所选修的课程的课程号,课程名称以及成绩。
③查询参与了所有课程选修的学生姓名和学生所在的系别。 该条查询结果为空:④查询没有选修任何一个课程的学生姓名和所在系别。 ⑤查询课程没有学生选修的课程名称。
该条查询结果为空: ⑥查询选修了某个老师的所有课程的学号、姓名和所在系别。 ⑦列出每门课程的平均分、最高分、最低分。 ⑧对所有学生求出所选修课程的最高分、平均分。
⑨对某老师的授课的某课程的分数都增加5分。 查询操作续: 1、查询全体学生的学号、姓名、性别和年龄。 2、查询某专业且某班级的学生,列出学号、性别和出生日期。 由于所插入的表中没有写入班别信息,为显示结果,在此忽略班级限制,
3、查询姓“陈”的学生的学号、姓名和系别。 4、查询姓“陈”的且全名为两个字的学生的学号、姓名和系别。 5、查询查询姓“陈或姓“李”或姓“张”学生的学号、姓名和系别。 6、列出某课程编号的成绩在前三名的学生的学号、成绩。(如果第三名有多个学生都列出)。 7、统计各个系别的学生人数。 8、统计各门课程的平均分、最高分、最低分,结果集按平均分降序排列。
南京信息工程大学实验(实习)报告 实验(实习)名称实验4 数据库的查询和视图实验(实习)日期2016.10.24 得分指导教师方忠进系计算机专业网络工程年级2014 班次 2 姓名刘信言学号20142346074 一.实验目的 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 二、实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 三、实验内容 T4.1 数据库的查询 (1)SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行:
【思考与练习】 用SELECT语句查询Departments和Salary表中所有的数据信息。
②用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: 【思考与练习】 a. 用SELECT语句查询Deparments和Salary表的一列或若干列。 b. 查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
③查询EmployeeID为000001的雇员的地址和电话。 【思考与练习】 a.查询月收入高于2000元的员工号码。
实验一简单查询 在订单数据库中完成如下的查询 (1) 查询所有业务部门的员工姓名、职称、薪水 命令: select employeeName2612,headShip2612,salary2612 from Employee2612 where department2612='业务科' 结果: (2) 查询名字中含有“有限”的客户姓名和所在地。 命令: select CustomerName2612,address2612 from Customer2612 where CustomerName2612 like '%有限%' 结果: (3) 查询出姓“王”并且姓名的最后一个字为“成”的员工。 命令: select * from Employee2612 where employeeName2612 like '王%成' 结果: (4) 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。 命令:
select employeeName2612,department2612,headShip2612,address2612, case sex2612 when 'M' then '男' when 'F' then '女' end as 性别 from Employee2612 where address2612 like '%上海%' or address2612 like '%南昌%' and sex2612='F' 结果: (5) 在表sales中挑出销售金额大于等于10000元的订单。 命令: SELECT orderNo2612,sum(quantity2612*price2612) as total FROM OrderDetail2612 GROUP BY orderNo2612 HA VING sum(quantity2612*price2612)>10000 结果: (6) 选取订单金额最高的前10%的订单数据。 命令: select TOP 10 PERCENT orderNo2612, sum(quantity2612*price2612) as total from OrderDetail2612 group by orderNo2612 ORDER BY total desc 结果: (7) 查询出职务为“职员”或职务为“科长”的女员工的信息。 命令: select * from Employee2612 where headShip2612 in ('科长','职员') and sex2612='F' 结果:
实验7数据查询 【实验内容】 7.1单表查询 1、指定列或全部列查询 1) 查询S表中全体学生的详细记录 use jxsk select * from S 出言岂select - f Tdtt s| .1结杲 SEX AGE DEPT NATEVE J_a, i so i王青 山 19计算机NULL 2SI—赵亦17软件MULL 35218计算机NULL 4S3弓綽明胃IS信息NULL 554李四21包动ft NULL &S519软件NULL 756昊丽20计算机NULL 8S7范思明女ie NULL 9S820自动化NULL 10 S919枫牛NULL 2) 查询所有学生的姓名及其岀生年份。 use jxsk select SN, 2012 - AGEfrom S 1 「王 諭】 1&93 2赵亦1995 J钱尔1594 4號慣明隔 &李四1S51 6周展憫1553 7昊丽1382 8范思明1994 S??1S92 10张海涛 2、按条件查询及模糊查询 1)查询考试成绩有不及格的学生的学号。 use jxsk selectdistinct SNOfrom SCwhere SCORE<60 2)查询年龄在20 —23岁之间的学生的姓名、系名和年龄use jxsk select SN,
DEPT, AGEfrom S where AGE>=20 and AGE<= 30 □ us* select 5N, DEET, troni 5 L AGE>=20 ard AGE<-30 V结果J消息 | SH DEPT , 实验三--数据库中的数据查询及视图操作实验报告 长春大学计算机学院科学与技术专业 数据库原理实验报告 实验 名称: 实验三数据库中的数据查询及视图操作(1) 班级: 姓 名: 学 号: 实验地点: 日期: 一、实验目的: 1.继续熟练SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.掌握SELECT语句的使用。 3.掌握单表查询,多表查询以及嵌套查询。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验三),(如:041540538张三(实验三)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 【实验环境】 1.SQL SERVER 2005/2008; 2.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】 针对实验一建立的数据库的表,用select语句完成如下查询操作,写出select语句,并给出操作结果。 1.针对SPJ数据库中的四个表,实现如下查询: (1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件的供应商名SNAME; (4)求供应工程J1零件P1的供应商名SNAME; (5)求供应工程J1零件为红色的供应商号码 SNO; (6)求没有使用天津供应商生产的红色零件的 工程号JNO; (7)求至少用了供应商S1所供应的全部零件的 工程号JNO; (8)找出使用上海产的零件的工程名称; 2.针对学生-课程数据库中的三个表,用嵌套方法查询实现如下查询: (1)查询选修了数据库的学生姓名。 (2)查询比计算机系CS所有学生年龄都大的学生信息。 (3)列出“李勇”选修的所有课程的课名和成绩。(4)查询数据库的先行课的课程名。 3.针对实验一建立的SPXS数据库中的三个表,实现如下查询: (1)查询与商品“电视”颜色相同的商品名; (2)查询不销售商品P2的商店名; (3)查询至少销售商品P1、P2两种商品的商店名; (4)所有商店都销售的商品号。 (5)只销售一种商品P4的商店名。 三、实验结果与分析: 写出操作语句,粘贴查询结果(粘贴结果要求粘贴SQL Server Managemet Studio整个窗口): 实验五:数据库综合查询 姓名:潘年品学号:120802010027 一、实验目的 1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件种类和表示方法; 3. 掌握连接查询的表示及使用; 4. 掌握嵌套查询的表示及使用; 5. 了解集合查询的表示及使用。 二、实验环境 已安装DBMS的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1. 了解SELECT语句的基本语法格式和执行方法; 2. 了解连接查询的表示及使用; 3. 了解嵌套查询的表示及使用; 4. 了解集合查询的表示及使用; 5. 完成实验报告; 五、实验内容及步骤 以数据库原理实验2数据为基础,请使用T-SQL 语句实现进行以下操作:1.查询以‘数据_'开头,且倒数第3个字符为‘结'的课程的详细情况; 2.查询名字中第2个字为‘阳'的学生姓名和学号及选修的课程号、课程名; 3.列出选修了‘数学'或者‘大学英语'的学生学号、姓名、所在院系、选修课程号及成绩; 4. 查询缺少成绩的所有学生的详细情况; 年龄不同的所有学生的信息;)假设姓名唯一(查询与‘张力'5. 6. 查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩; 7. 按照?学号,姓名,所在院系,已修学分?的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和; 8. 列出只选修一门课程的学生的学号、姓名、院系及成绩; 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;9. 两门课程的学生的基本信息;?10. 只选修?数据库?和?数据结构 课程的学生的基本信息;?或?数据结构?至少选修?数据库11. 数据库实验——简单查询 ————————————————————————————————作者:————————————————————————————————日期: 数据库原理与应用实验报告 题目:简单查询 学号:_________ 姓名:_________ 教师:_________ 实验题目 简单查询 1、实验内容 1 创建教材P74第5题的4张表,S, P, J, SPJ 2 向4张表中插入P75页的数据 3 查询供应工程J1林剑的供应商号码SNO 4 查询供应工程J1零件P1的供应商号码SNO 5 查询供应工程J1零件为红色的供应商号码SNO 6 查询没有使用天津供应商生产的红色零件的工程号JNO 7(思考题)查询至少用了供应商S1所供应的全部零件的工程号JNO。 2、实验目的与要求 熟悉SQL语句 3、实验环境 已安装SQL Server 2008 企业版的计算机; 具有局域网环境,有固定IP; 4、实验结果与分析 1 创建教材P74第5题的4张表,S, P, J, SPJ create table s (sno varchar(45) primary key, sname varchar(45), status integer(4), city varchar(4) ); create table p (pno varchar(45) primary key, pname varchar(45), color varchar(45), weight integer(3)); create table j (jno varchar(45) primary key, jname varchar(45), city varchar(45)); create table spj (sno varchar(45), pno varchar(45), jno varchar(45), qty integer(4), primary key(sno,pno,jno), foreign key (sno) references s(sno), foreign key (pno) references p(pno), foreign key (jno) references j(jno),); 3 查询供应工程J1林剑的供应商号码SNO select distinct sno from spj where jno=’J1’ 实验二:简单查询和连接查询 (一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据 的更新。 (二)实验内容: ①查询所有“天津”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (一)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程 的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 (三)完成情况(附上设计的SQL语句),语句与查询结果: ①查询所有“天津”的供应商明细; Select * From S Where CITY=‘天津’ ②查询所有“红色”的14公斤以上的零件。Select * From P Where COLOR=‘红’and WEIGHT>14 ③查询工程名称中含有“厂”字的工程明细。 Select * From J Where JNAME NOT IN(‘三建’,‘一汽’) (二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 Select S.*,J.* From S,J Where S.CITY=J.CITY ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程 的名称,并按照供应、工程、零件排序。 Select SNAME,JNAME,PNAME From S,J,P,SPJ Where SPJ.SNO=S.SNO and SPJ.JNO=J.JNO and SPJ.PNO=P.PNO 师学院数学与计算机科学学院 《数据库》实验报告 实验序号:07 实验项目名称:数据查询 学号2014210758 姓名邹业安专业、班级14信科实验地点222 指导教师褚万军时间2017.6.07 一、实验目的及要求 ?掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。 ?掌握用条件表达式表示检索条件。 ?掌握用聚合函数计算统计检索结果。 二、实验设备(环境)及要求 1、环境要求: 硬件:PC(PII以上,128M以上存)、因特网接入; 软件:在SQL Server 2000中 三、实验容与步骤 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。select distinct 学号 from 选课 select 学号 from 选课 (2)查询某个表中的所有记录 查询教师表中的所有记录 (3)使用单个条件的简单查询 查询成绩大于50的学生的学号select 学号 from 选课where 成绩>50 (4)使用多个条件(AND关系)的查询 select工资 from教师 where工资>200 and工资<500 (5)使用多个条件(OR关系)的查询 select工资 from教师 where工资<200 or工资>500 (6)使用多个条件(混合AND和OR关系)的查询 select*from学生 where (院系='2'and生源='')or(院系='6'and生源='') (7)使用带NOT运算的查询 select * from 学生 where not (生源='') (8)使用BETWEEN???AND???的查询 select * from 选课 where 成绩 between 86 and 93 (9)使用NOT???BETWEEN???AND???的查询select * from 选课 where 成绩 not between 76 and 93 (10)使用LIKE运算符的字符串匹配查询。 select * from 课程 where 课程性质 like '专业__' 实验3 数据库的查询和视图 实验目的 (1)掌握SELECT语句的基本语法 (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握数据汇总的方法 (5)掌握SELECT语句的GROUP BY子句的作用和使用方法 (6)掌握SELECT语句的ORDER BY子句的作用和使用方法 (7)掌握视图的使用方法 实验准备 (1)了解SELECT语句的基本语法格式和执行方法 (2)了解子查询的表示方法,连接查询和数据汇总的方法 (3)了解SELECT语句的GROUP BY子句的作用和使用方法 (4)了解SELECT语句的ORDER BY子句的作用 (5)了解视图的作用和创建视图的方法 (6)了解视图的使用方法 实验内容 一.SELECT语句的基本使用 1.对于实验2给出的数据库表结构,查询每个雇员的所有数据。在SQL*PLUS 窗口中输入下面语句并执行: Select * from employees 思考与练习:用SELECT语句查询Departments和Salary中的所有记录 2.查询每个雇员的地址和电话。在SQL*PLUS窗口中输入下面语句并执行:Select address,phonenumber from employees; 思考与练习:用SELECT语句查询Departments和Salary表的一列或若干列3.查询employeeID为000001的雇员的地址和电话。在SQL*PLUS窗口中输入如下语句并执行: Select address, phonenumber from employees where employeeID=’000001’ 思考与练习:用SELECT语句查询Departments和Salary表中满足条件的一列或若干列 4.查询employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址,电话。在SQL*PLUS窗口中输入下面语句并执行:Select address as 地址, phonenumber as 电话号码from employees where sex=0; 注意:使用AS子句可指定目标列的标题。 5.计算每个雇员的实际收入。在SQL*PLUS窗口中输入下面语句并执行:Select employeeid,income-outcome as 实际收入from salary 6.找出所有姓王的雇员的部门号。在SQL*PLUS窗口中输入下面语句并执行: Select departmentID from employees where name like ‘王%’ 实验2数据库的查询 一、实验目的及意义 通过本实验进一步理解及掌握如何利用查询向导、查询设计器及SQL语句实现数据库的查询操作。 二、实验的基本原理及方法 数据库选用ACCESS。查询向导、查询设计器及SQL基本语句的语法、各类运算符、函数及表达式的应用。 三、实验内容及要求 在“学籍管理”数据库的基础上验证一下内容: 1.利用设计视图、或者查询向导验证教材P73--P94中的例题,要求每节至少选 做一题,并将主要过程及结果拷贝到实验记录中。 2.用SQL语句验证4.9节的相关例题,或验证课堂案例,并选择其中一题将结果 拷贝到实验记录中。要求有SQL视图的截图及运行结果的截图。 3.请自行设计3-4个应用题,并用SQL语句实现之,将相关的SQL语句及运行结 果截图至实验记录中。 四、实验记录: 1、教材P73-P94例题综合 2、书本SQL查询例题25-33 3、自行设计题 五、实验思考题 1.ACCESS数据库中,对象“表”与对象“查询”有何区别? 答:表——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。 查询——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。 查询对象用来合理显示数据,是一个操作的集合,它本质上是一条SQL语言编写的命令,而数据表对象用来存储基础数据,是数据的集合。查询对象里的显示数据可以由一个或多个表里的某些列按照条件组成。 2. 在“联合查询”查询中,如果相联合的表的结构不完全一致,会出现什么结果? 答:相联合的表的结构不一致,包括字段数、数据类型等存在差异时,往往无法将表或查询的字段合并到一个集中中查看,很难将要检索的数据完整地呈现出来。 实验3 数据库查询实验 一.实验目的 本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 二.实验内容 1.简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等。 具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数 据查询操作。 1.求数学系学生的学号和姓名 2.求选修了课程的学生学号 3.求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。 4.求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。 5.求数学系或计算机系姓张的学生的信息。 6.求缺少了成绩的学生的学号和课程号 2.连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 7.查询每个学生的情况以及他所选修的课程 8.求学生的学号、姓名、选修的课程及成绩 9.求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩 10.查询每一门课程的间接先行课(即先行课的先行课) 3 .嵌套查询操作。实验的主要内容是:在SQL Server查询分析器中使用IN、比较符、 ANY或ALL和EXISTS操作符进行嵌套查询操作。 具体完成以下例题。将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。 例1 求选修了高等数学的学号和姓名 例2 求C1课程的成绩高于刘晨的学生学号和成绩 例 3 求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生) 例4 求其他系中比计算机系学生年龄都小的学生 例5 求选修了C2课程的学生姓名 例6 求没有选修C2课程的学生姓名 例7 查询选修了全部课程的学生姓名 例8 求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名 4.分组、统计、计算和集合的操作 1)分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。实验三--数据库中的数据查询及视图操作实验报告
数据库实验五
数据库实验——简单查询
数据库实验二-简单查询和连接查询
数据库数据查询实验报告
实验3 数据库的查询和视图
实验2 数据库的查询
实验3 数据库查询实验