数据库上机作业
- 格式:doc
- 大小:34.50 KB
- 文档页数:3
数据库上机练习题数据库上机练习题在学习数据库课程时,上机练习题是非常重要的一部分。
通过上机练习,我们可以巩固理论知识,提高实践能力,并且更好地理解数据库的概念和应用。
本文将介绍一些常见的数据库上机练习题,帮助读者更好地应对这些挑战。
一、基本查询数据库的基本查询是我们在实际应用中最常用的功能之一。
在上机练习中,我们通常需要编写SQL语句来实现一些简单的查询操作。
比如,查询某个表中的所有记录、按条件筛选记录、排序等等。
举个例子,假设我们有一个学生表,包含学生的学号、姓名、性别和年龄等字段。
我们可以通过以下SQL语句查询所有学生的信息:SELECT * FROM students;如果我们只想查询女生的信息,可以使用以下语句:SELECT * FROM students WHERE gender = '女';二、表的连接在实际应用中,我们经常需要从多个表中获取数据,并进行关联和处理。
上机练习中,表的连接是一个常见的考点。
通过表的连接,我们可以根据某个字段将两个或多个表关联起来,从而获取更丰富的信息。
举个例子,假设我们有一个学生表和一个课程表,学生表中包含学生的学号和姓名,课程表中包含课程的编号和名称。
我们可以使用以下SQL语句查询每个学生所选的课程:SELECT , FROM studentsINNER JOIN coursesON students.student_id = courses.student_id;三、子查询子查询是数据库中非常有用的一种技术,它可以将一个查询的结果作为另一个查询的输入。
在上机练习中,我们经常需要使用子查询来解决一些复杂的问题。
举个例子,假设我们有一个订单表和一个产品表,订单表中包含订单的编号和产品的编号,产品表中包含产品的编号和价格。
我们可以使用以下SQL语句查询每个订单的总金额:SELECT order_id,(SELECT SUM(price) FROM products WHERE products.product_id =orders.product_id) AS total_priceFROM orders;四、数据更新除了查询,数据库还提供了数据更新的功能。
创建数据表与数据输入Part I. 使用SQL Server Management Studio创建数据表和输入数据1. 在SQL Server Management Studio中创建数据表P69 1.(1)-(6)2. 为数据表输入数据P76 4.(1)-(4)3. 数据浏览P77 1. (1)-(2)2. (1)-(3)Part II. 使用SQL语句创建数据表和输入数据1. 使用SQL语句创建数据表P72. 例3-22.使用SQL语句输入数据P82. 例3.8习题:P.105 (1)(2)insert数据操作Insert、Update、Delete P105 3. 上机练习题(2)(4)Insert(100001, 1000, 2002-12-18 0:00:00) (100002, 2000, 2010-3-20 0:00:00)Update(100001, 1500, 2002-12-18 0:00:00) (100002, 2000, 2012-9-25 0:00:00)Delete1.将teaching数据库中score表的studentno列设置为引用表student的外键。
ALTER TABLE ScoreADD CONSTRAINT FK_score_student FOREIGN KEY (studentno)REFERENCES student(studentno)2.将teaching数据库中class表的classname创建UNIQUE约束。
ALTER TABLE classADD CONSTRAINT UQ_class UNIQUE(classname)执行如下插入语句,查看提示信息INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’) 3. 为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。
上机练习:数据库的建立
1.新建项目文件xs
2.在其中新建数据库xsgl
3.在数据库中添加数据库表xsda,xscj,kc
4.设置xsda表的相关属性:
1)设置其学号字段的输入掩码为输入数字。
在浏览窗口的显示标
题为“学生学号”。
设置该字段的注释为“学生编号信息是学
生的唯一标志”。
2)设置入学成绩字段的输入范围为350——750,输入出错时显
示相应的出错信息。
3)设置出生日期的输入范围为1984年——1987年,且在浏览窗
口显示为长日期格式。
4)设置性别字段只能输入“男”或“女”,且默认值为“男”
5)设置记录的有效性规则,要求检验:少数民族学生的入学成绩
在350以上,汉族学生的入学成绩在400分以上。
6)设置xsda表的更新日期只能是每月的9号。
7)设置xsda表在插入新记录时,显示当前的记录数。
8)设置xsda表的表名为xueshengda,表的注释为“学生的基本
信息汇总表”
5.建立三个表的表间永久关系。
6.设置xsda和xscj的参照完整性,更新规则和删除规则为“级联”,
插入规则为“限制”。
7.试着将xsda中王林森的学号“109602”改为“109600”,观察xscj
表中的变化。
8.试着删除xsda中的“马林林”记录,观察xscj表中的变化。
9.试着在xscj中插入记录“000001(学号),001(课程号),89(成
绩)”。
观察结果。
10.设置kc和xscj的参照完整性,更新规则和删除规则为“级联”,
插入规则为“限制”。
在订单数据库OrderDB中,完成如下的查询:(1)查询员工的姓名、职务和薪水。
select employeeName 员工姓名,headShip 职务,salary 薪水from Employee(2)查询姓名中含有“有限”的客户名称和所在地。
select customerName 客户名称,address 所在地from customerwhere customerName like'%有限%'(3)查询出姓“张”并且姓名的最后一个字为“梅”的员工。
select employeeNo 编号,sex 性别,birthday 出生日期,address 地址,telephone 联系电话,employeeName 员工姓名,headShip 职务,salary 薪水from Employeewhere employeeName like'张%梅'(4)查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职务、住址、出生日期和性别。
如果出生日期为空,则显示“不祥”,否则按格式“yyyy—mm—dd”显示,性别用“男”和“女”显示。
select employeeName 员工姓名,department 所属部门,headShip 职务,address 地址,case sexwhen'F'then'女'when'M'then'男'end性别,isnull(convert(char(10),birthday,120),'不详')出生日期from Employeewhere sex like'F'and address like'上海%'or sex like'F'and address like'南昌%'(5)查询出职务为“职员”或职务为“科长”的女员工的信息。
sqlserver上机练习题SQL Server上机练习题SQL Server是一种关系数据库管理系统(RDBMS),被广泛应用于各种企业级应用程序中。
为了能够更好地熟练使用SQL Server,以下是一些上机练习题,帮助您巩固和提升SQL Server的技能。
1. 创建数据库:请创建一个名为"Company"的数据库,用于存储公司员工和部门的信息。
2. 创建表:在"Company"数据库中创建两个表,名为"Employees"和"Departments"。
员工表(Employees)应包含以下列:- 员工ID(EmployeeID):整数类型,主键。
- 员工姓名(EmployeeName):字符串类型,最大长度为50。
- 岗位(Position):字符串类型,最大长度为50。
- 部门ID(DepartmentID):整数类型,外键。
部门表(Departments)应包含以下列:- 部门ID(DepartmentID):整数类型,主键。
- 部门名称(DepartmentName):字符串类型,最大长度为50。
3. 插入数据:向"Employees"表和"Departments"表中插入一些示例数据,确保每个表至少有3条记录。
4. 更新数据:将"Employees"表中ID为1的员工的岗位更改为"经理"。
5. 删除数据:从"Employees"表中删除ID为2的员工。
6. 查询数据:请编写SQL查询语句,执行以下操作:- 检索"Employees"表中所有员工的姓名和岗位。
- 检索"Departments"表中所有部门的名称。
- 检索"Employees"表中岗位为"经理"的员工的姓名和岗位。
上机实验-1Access2003基本操作一、实验目的1.掌握Access2003数据库的构成;2.熟悉Access2003的用户界面。
二、实验内容在Access2003中打开罗斯文示例数据库,结合该数据库来了解Access 数据库的构成,并熟悉Access2003的用户界面。
1.单击“开始”按钮,指向“程序”,然后单击“Microsoft Access”,启动Access2003。
2.在启动对话框中,单击“打开已有文件”下的“罗斯文示例数据库”。
罗斯文示例数据库通常位于“Program Files\Microsoft Office\Office\Samples”文件夹中,文件名为“Northwind.mdb”。
3.在“数据库”窗口中,单击“对象”栏下的“表”,单击“产品”表对象,然后单击“数据库”窗口的工具栏上的“打开”按钮,在“数据表”视图中查看表中的数据记录。
4.从“视图”菜单中选择“设计视图”命令,以切换到设计视图下,查看表中各个字段的定义,例如字段名、数据类型、字段大小等,然后关闭设计视图窗口。
5.在“数据库”窗口中单击“对象”栏下的“查询”,单击“各类产品”查询对象,然后单击“数据库”窗口工具栏上的“打开”按钮,在“数据表”视图下查看运行查询所返回的记录集合。
6.从“视图”菜单中选择“设计视图”命令,以查看创建和修改查询时的用户界面。
7.从“视图”菜单中选择“SQL视图”命令,以查看创建查询时所生成的SQL语句,然后关闭SQL视图窗口。
8.在“数据库”窗口中单击“对象”栏下的“窗体”,单击“产品”窗体对象,然后单击“数据库”窗口工具栏上的“打开”按钮,在窗体视图下查看窗体的运行结果,并单击窗体下方的箭头按钮,在不同记录之间移动。
9.从“视图”菜单中选择“设计视图”命令,以查看设计窗体时的用户界面。
10.从“视图”菜单中选择“数据表视图”命令,以查看存储在基础表中的数据记录,然后关闭数据表视图窗口。
好的,以下是一个简单的MySQL数据库上机操作题:
1.创建一个名为"students"的数据库。
2.在"students"数据库中创建一个名为"student"的表,该表包含以下列:id
(整数类型,主键),name(字符串类型,长度为50),age(整数类型),gender(字符串类型,长度为10)。
3.向"student"表中插入以下数据:
id | name | age | gender
---|-------|-----|-------
1 | Alice | 20 | female
2 | Bob | 22 | male
3 | Carol | 21 | female
4.查询所有年龄大于等于21岁的学生信息。
5.更新Alice的年龄为21岁。
6.删除Bob的记录。
7.查询所有女生的信息。
8.将Carol的性别更改为"male"。
9.查询所有年龄为21岁的学生信息。
10.删除所有年龄为21岁的学生信息。
请根据以上要求在MySQL数据库中进行操作,并给出相应的SQL语句。
一、实习背景随着计算机技术的不断发展,数据库技术已经成为现代信息技术中不可或缺的一部分。
为了使我对数据库技术有更深入的了解,提高我的实际操作能力,我参加了本次数据库上机实习。
本次实习主要基于SQL Server数据库管理系统,通过实际操作,使我掌握了数据库的基本概念、设计方法以及SQL语言的使用。
二、实习目的1. 熟悉数据库管理系统的基本操作,包括数据库的创建、修改、删除等。
2. 掌握数据库设计的基本方法,包括实体-联系模型、关系模型等。
3. 学会使用SQL语言进行数据库的查询、插入、删除、更新等操作。
4. 提高数据库的实际应用能力,为今后的工作打下基础。
三、实习内容1. 数据库管理系统简介数据库管理系统(Database Management System,简称DBMS)是一种软件系统,用于管理数据库中的数据。
常见的数据库管理系统有SQL Server、MySQL、Oracle 等。
本实习主要使用SQL Server数据库管理系统。
2. 数据库设计数据库设计是数据库应用开发过程中的重要环节,主要包括以下步骤:(1)需求分析:了解用户对数据库的需求,包括数据类型、数据量、数据之间的关系等。
(2)概念设计:根据需求分析结果,设计实体-联系模型,描述实体及其之间的关系。
(3)逻辑设计:将概念设计转换为关系模型,确定表结构、字段类型、约束等。
(4)物理设计:根据逻辑设计结果,确定数据库的存储结构,如索引、分区等。
3. 数据库操作(1)创建数据库:使用CREATE DATABASE语句创建数据库。
(2)修改数据库:使用ALTER DATABASE语句修改数据库。
(3)删除数据库:使用DROP DATABASE语句删除数据库。
(4)创建表:使用CREATE TABLE语句创建表。
(5)修改表:使用ALTER TABLE语句修改表。
(6)删除表:使用DROP TABLE语句删除表。
(7)插入数据:使用INSERT INTO语句插入数据。
实用数据库上机作业一.了解SQL Server中的“企业管理器”和“查询分析器”的启动方法和初步界面信息。
二.打开SQL Server的“企业管理器”,新建一个数据库,名称为“Company”,并更改数据库文件和日志文件的目录到D盘的Company下面。
三.打开Company数据库,了解数据库中的各种对象,例如:表(Table),视图(View),用户(User)等。
四.在表(Table)对象中新建两张表(Department和Employee)。
五.字段要求如下:●Departmentd_id 部门编号char(3) 不为空PKd_name 部门名称varchar(20) 不为空d_mananger 部门经理varchar(20) 可为空Uniqued_phone 部门电话varchar(15) 可为空●Employeee_id 员工编号char(6) 不为空PKe_name 员工姓名varchar(20) 不为空e_sex 员工性别nchar(1) 可为空默认’男’e_hire 雇佣时间smalldatetime 可为空e_wage 基本工资money 可为空e_level 员工级别smallint 可为空Checkd_id 部门编号char(3) 不为空FK注:以上表中字段名最好使用英文或拼音。
六.尝试如下操作:●设置各种约束。
(要求e_level在1~5之间取值)●在表中进行多个主键的设置。
●对Char和Varchar类型录入数据,查看区别●查看空格,空字符和Null之间的区别●在日期数据类型字段中尝试录入正确格式的数据七.建立外键关联在表上面单击右键,选取设计表,设置Department和Employee的外键关联,设置为“级联删除”和“级联更新”。
八.添加数据在Department和Employee表中添加五条左右的记录。
九.测试外键测试建立的外键关联,例如:进行主键表的更新和删除,反映的从表中数据的变化。
语句查询数据(二)——汇总查询
【实验内容】
1) 打开“SQL Server Management Studio”窗口。
2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
3)在窗口中输入以下SQL查询命令并执行:
a.在KC表中,统计每学期的总分数
use xscj
select开课学期,
COUNT(学分)as总学分
from kc
b.在XS_KC表中统计每个学生的选修课程的门数
use xscj
select学号,
count(课程号)as选修的课程门数
from xs_kc
c.统计KC表中的总学分,并显示明细信息
use xscj
select*
from kc
order by 总学分
d.按开课学期统计KC表中各期的学分,并显示明细信息
use xscj
select课程名,开课学期,学分
from kc
group by开课学期
e.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分
use xscj
select学号,avg(学分)as平均分
from xs_kc
group by学号
f.查询平均分大于70且小于80的学生学号和平均分
use xscj
select学号,AVG(学分)as平均分
from xs_kc
group by学号
having AVG(学分)>70 and Avg(学分)<=80
g.查询XS_KC表,输出学号、课程号、成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表
TEMP_KC中
use xscj
select学号,课程编号,成绩
into TEMP_KC
from xs_kc
order by课程编号asc,成绩desc
select*from TEMP_KC
h.查询选修了“101”课程的学生的最高分和最低分use xscj
select top 1 *
from教学成绩表
where课程编号='101'
order by分数desc
use xscj
select top 1 *
from教学成绩表
where课程编号='101'
order by分数
或者:
use xscj
select课程号,
MAX(成绩)as最高分,
MIN(成绩)as最低分
from xs_kc
group by课程号
having课程号='101'
i.统计每个学期所开设的课程门数
use xscj
select 开课学期,
count(*)as 课程门数
from kc
group by开课学期
j.查询各专业的学生人数
use xscj
select专业,count(学号)as学生人数
from xsqk
group by专业
使用Select 语句查询数据(三)——连接查询和子查询
【实验内容】
1) 打开“SQL Server Management Studio”窗口。
2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
3)在窗口中输入以下SQL查询命令并执行:
a.查询不及格学生的学号、课程名、授课教师、开课学期的信息
use xscj
select 学号,课程编号,授课教师,开课学期
from xs_kc
where 学分<60
b.按学号分组汇总总分高于100的学生记录,并按总分的降序排列
use xscj
select学号,姓名,总学分
from xsqk,kc
where总学分>100
group by学号
order by总学分desc
c.使用子查询求恰好有两门课程不及格的学生信息
select*
from xsqk
where学号in
(select学号
from xs_kc
where学分<60
having count(课程号)='2')
d.使用子查询查询每门课程的最高分的学生记录
select*
from xsqk
where学号in
(select学号,max(学分)as最高分
from xs_kc,xsqk
where xs_kc.学号=xsqk.学号
group by课程号)
e.使用子查询查询每个学生的最低分的课程记录
select*
from xsqk
where学号in
(select学号,min(学分) as最低分
from xs_kc,xsqk
where xs_kc.学号=xsqk.学号
group by学号)。