数据库系统实验二
数据库原理与应用实验二
实验报告专用纸课程数据库原理与应用学院专业(班级)姓名学号日期实验2SQL Server数据库的管理一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构的特点。
2.学会使用企业管理器对数据库进行管理。
3.学会使用Transact-SQL语句对数据库进行管理。
1.在企业管理器中创建studentsdb数据库。
二、实验内容及步骤(1)运行SQL Server管理器,启动企业管理器,展开服务器“(LOCAL)(Windows NT)”。
(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。
在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。
2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“数据文件”、“事务日志”、“文件组”、“选项”和“权限”页面。
3.打开studentsdb数据库的“属性”对话框,在“数据文件”选项卡中修改studentsdb数据文件的“分配空间”大小为2MB。
指定“最大文件大小”为5MB.在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
成绩:教师签名:_____________实验报告专用纸课程学院专业(班级)姓名学号日期5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。
6.在企业管理器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。
成绩:教师签名:_____________实验报告专用纸课程学院专业(班级)姓名学号日期7.使用企业管理器将studb数据库的名称更改为student_db。
《数据库系统原理》实验2
《数据库系统原理》实验报告姓名:指导教师:学号:实验日期:2016/6/7一、实验目的根据如下内容创建数据表结构,自行定义主键和外键约束,并完成如下查询:二、实验原理:1、Find the name, loan number and loan amount of all customers; rename the columnname loan_number as loan_id.alter table loan change column loan_number loan_id char(10);2、Find the names of all customers whose street includes the substring “Main”.Select customer_name from customer where customer_street like “%main%”;select customer_name from customer where customer_street like '%Main%';3、Find all customers who have a loan, an account, or both:(select customer_name from borrower where loan_number in (select loan_id from loan)) union (select account_number from depositor where account_number in (select account_number fromaccount));4、Find all customers who have both a loan and an account.select customer_name from borrower where customer_name in (select customer_name fromdepositor);5、Find all customers who have an account but no loan.(select customer_name from borrower where customer_name not in (select custormer_namefrom depositor));select avg(balance) from account;select count(*) from customer;select count(*) from depositor;9、Find the number of depositors for each branch.mysql> select A.branch_name, count(D.customer_name) from depositor as D,accountas A where A.account_number=D.account_number group by branch_name;10、Find the names of all branches where the average account balance is morethan $1,200.mysql> select branch_name,avg(balance) from account group by branch_name havingavg(balance)>1200;amount.select loan_id from loan where amount is null;12、Find all customers who have both an account and a loan at the bank.select customer_name from borrower where customer_name in (select customer_name from depositor);13、Find all customers who have a loan at the bank but do not have an account atthe bank(select customer_name from borrower where customer_name not in (select custormer_name from depositor));14、Find all customers who have both an account and a loan at the Perryridgebranchmysql> select customer_name from borrower as B, loan as L where B.loan_number =L.loan_id and L.branch_name='Perryridge' and customer_name in (select customer_name from depositor);15、Find all branches that have greater assets than some branch located inBrooklyn.mysql> select assets from branch where assets>(select max(assets) from branch where branch_city='Brooklyn');16、Find the names of all branches that have greater assets than all brancheslocated in Brooklyn.mysql> select branch_name, assets from branch where assets>(select max(assets) f rom branch where branch_city='Brooklyn');。
数据库原理及应用实验二
实验2.1 数据查询一、实验目的1.掌握利用T-SQL语言对数据库数据进行查询的方法,包括简单查询、多表连接查询以及嵌套查询。
2.理解在数据库表中对暑假的UNLL值的处理方式。
3.掌握T-SQL集合运算。
二、实验内容对提供的数据库LibraryLib,按以下要求进行查询操作:1.查询图书价格在15~30元之间的所有图书的书名、书号、出版日期、价格和库存册书,且结果按书号进行升序排序。
2.查询图书名称中包含“计算机”的所有图书信息。
3.查询借书应归还日期在2009年8月1日前的用户账户。
4.找出还没有联系电话的出版社信息。
5.查询所有图书的平均价格。
6.查询各个出版社的图书的平均价格。
7.查询已经归还且超期图书数至少超过2本德借书证号及其超期图书总数。
8.查询库存册数低于10的图书书名、库存数和其出版该图书的出版社名称。
9.查询一年相同月份里出版的不同图书的书名、出版日期和出版社标识。
10.查询用户信息和该用户的借出图书标识、应归还日期。
如果该用户没有借阅图书,只显示该用户信息。
11.查询借阅了“清华大学出版社”出版的图书且尚未归还的用户总人数。
12.查询借阅了书名包含“Delphi”和“编程”的图书且还未归还这些图书的用户姓名、图书名、应归还日期。
13.查询借阅图书应归还日期为“2009年8月1日”前且库存册数小于10的图书的用户姓名、所在院系、联系电话、借阅图书的出版社名称、书名。
14.找出和书号为“730200899X”的图书有相同购书数量的图书名称、书号、出版社标识及库存数。
15.查询图书价格高于出版该图书的出版社的所有图书平均价格的图书名称、出版社标识和图书价格。
16.查询在书库中的从来没有被读者借阅过的图书信息。
17.查询有图书价格大于或等于标识为“2”的出版社的所有图书价格的出版社标识。
18.查询每一本图书的书名、图书书号、出版社标识、图书价格及该图书书号的前一个书号。
19.利用集合运算,查询图书号为“5084-3567-7”或“7050191836”的图书名称、书号和库存册数。
数据库原理实验2数据查询
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
数据库管理系统SQL实验报告2011-S2
要求:
1.文件格式要求:
a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、分离后的数
据库、如有查询代码(.sql文件)和其它文件也一并放入。
b. 文件夹以“学号姓名班级_S2”为文件名。
其中,S1表示这是实验1的报告,S
大写,以后的实验报告以类似方法编号顺延,注意:你的学号放在姓名前。
c. 注意:所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或
打不开。
2.提交方式和时间:一周内完成,不得超过两周。
完成后将文件包发到我邮箱
bbwhs@。
3.报告格式和内容要求:
a. 内容和格式整齐。
大标题采用黑体四号字加粗,小标题采用小四号字加粗。
正
文采用五号宋体,单倍行距。
b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。
c. 不要在报告中写与实验内容无关的话,内容要有条理、完整、并能突出重点,
要将遇到的主要问题说明。
4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。
《数据库实验》实验二 数据操作实验
院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
数据库系统原理与设计 实验二答案
实验四多表查询1 实验目的与要求(1) 熟练掌握SQL语句的使用。
(2) 熟练使用SQL语句进行连接操作。
2 实验内容1)实验题目:(1) 找出同一天进入公司服务的员工。
(2) 查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
(3) 在Employee表中查询薪水超过员工平均薪水的员工信息。
(4) 查找有销售记录的客户编号、名称和订单总额。
(5) 查询没有订购商品的客户编号和客户名称。
(6) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(7) 查询OrderMaster表中订单金额最高的订单号及订单金额。
(8) 在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
(9) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
(10) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
(11) 使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为“yyyy-mm-dd”,按客户编号排序,同一客户再按订单金额降序排序输出。
(12) 查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。
(13) 查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(14) 找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。
(15) 查询每种商品的总销售数量及总销售金额,要求显示出商品编号、商品名称、总数量及总金额,并按商品号从小到大排列。
数据库系统实验指导及内容二
数据库系统实验指导及内容二实验六数据查询一.实验目的1.观察查询结果,体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二.实验准备1.成功建立了基本表。
2.了解简单SELECT语句的用法。
3.熟悉查询分析器中的SQL脚本运行环境。
三.实验要求1.完成简单查询和连接查询操作,并验收实验结果提交实验报告四.实验内容所有的查询全部用Tranact-SQL语句实现。
此部分查询包括投影、选择条件表达、数据排序等。
对EDUC数据库实现以下查询:1)查询计算机应用专业的学生学号和姓名;Selectno,namefromtudent,clacwhere.clno=c.clnoandc.pecialty=’计算机应用’;2)查询选修了课程的学生学号,理解为什么使用DISTINCT,并比较未使用ditinct的情况;Selectditinctnofromc;3)查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75输出;Selectnamegrade/0.75fromcwherecno=0001andgradebetween80and90;4)查询计算机应用和数学专业的姓“张”的学生的信息。
Selecttudent.某,cla.pecialtywheretudent.clno=cla.clnoandcla.pecialtyin(‘计算机应用’,’数学’)like’张%’;5)查询“0001”课程的成绩不低于李杰的学生学号和成绩;6)查询其他系中比计算机应用专业学生年龄都小的学生信息;Selecttudent.某,cla.pecialtyfromtduent,clawhereage<all(electagefromtudent,clacwhere.clno=c.clnoandc.pec ialty=’计算机应用’)andcla.peciatynotin(‘计算机应用’);7)查询没有选修“0002”课程的学生姓名;Selectditinctnamefromtudentleftouterjoincontudent.no=c.nowhe recno<>’0002’;8)查询选修了全部课程的学生的姓名,首先向SC表中插入一条记录,具体信息为:学号:20220222,课程号:0007,成绩:70,这里有两种方法;Inertintocvalue(’20220222’,’0007’,’70’);方法一:使用嵌套查询方法二:使用e某it谓词删除所插入的记录;Deletefromcwhereno=’20220222’andcno=’0007’;实验七使用聚集函数的SELECT语句一.实验目的1.熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
数据库系统原理 实验二 以图形界面方式进行数据库和表的创建
实验二以图形界面方式进行数据库和表的创建实验目的:掌握使用图形界面的方式进行库和表的创建,以及数据的插入方法。
实验内容及要求:1、利用图形界面方式创建数据库;2、利用图形界面方式创建一个模式;3、利用图形界面方式在模式中创建表;4、利用图形界面方式在表中插入数据。
实验工具:企业管理器——可以运行在多种操作系统平台上的图形界面总控管理平台。
它允许用户、程序员和管理员进行管理和配置数据库服务器、管理各种数据库对象、管理数据安全、监视数据库服务活动、诊断修改和优化数据库等操作。
企业管理器的总的设计思想是记录下用户通过图形方式进行的操作,并转换成相应的SQL语句。
实验过程及步骤:一、创建TEST数据库创建步骤:打开企业管理器→在企业管理器的【数据库】节点,点击鼠标右键→点击【新建数据库】→弹出【新建数据库窗口】,在该窗口中的“数据库名称”后面输入要创建的数据库名,其他选项默认即可→点击【确定】。
图1 新建数据库二、在TEST数据库中创建SCOT模式实验一中已将TEST数据库创建完成,接下来需要在该数据库中创建SCOT 模式。
模式(Schema)实际上是一个名字空间,它包含命名对象(表,视图,存储过程,函数和序列)。
创建步骤:打开企业管理器→在企业管理器的【模式】节点,点击鼠标右键→点击【新建模式】→弹出【新建模式窗口】,在该窗口中的“模式名”后面输入要创建的模式名,点击【确定】。
图2 新建模式三、创建表在SCOT模式中创建三张表,分别为DEPT部门表、EMP员工表和SALGRADE工资等级表。
其中各表的结构为:DEPT表结构EMP表结构SALGRADE表结构创建步骤:打开企业管理器→在企业管理器的【表】节点,点击鼠标右键→点击【新建表】→弹出【新建表窗口】,在该窗口中的设置列名、数据类型、主键、精度等,点击【保存】,在窗口中输入表名。
图3 创建表四、在表中插入数据DEPT表数据EMP表数据SALGRADE表数据创建步骤:打开企业管理器→在企业管理器的【表】节点中找到插入数据的表名→点击鼠标右键→点击【打开表】下的【返回所有行】→弹出【打开表窗口】,在该窗口中的输入具体数据。
数据库系统实现实验二
应用服务器 服务器) (Web服务器) 服务器
基于Http/Https的请求 基于Http/Https的响应 中间件 中间件 中间件
数据层
Web应用程序 应用程序
一个简单的基于J2EE的WEB应用程序运行模型 的 一个简单的基于 应用程序运行模型
例一
当有人试图在 titles 表中添加或更改数据时, 将向客户端显示一条消息。 USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'reminder' AND type = 'TR') DROP TRIGGER reminder GO CREATE TRIGGER reminder ON titles
使用T-SQL语句创建触发器
CREATE TRIGGER trigger_name ON { table | view } { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } AS { sql_statement }
(1)主要用于强制服从复杂的业务规则或要求。 (1)主要用于强制服从复杂的业务规则或要求。 主要用于强制服从复杂的业务规则或要求 (2)用于强制引用完整性 以便在多个表中添加、 用于强制引用完整性, (2)用于强制引用完整性,以便在多个表中添加、更新或 删除行时,保留在这些表之间所定义的关系。 删除行时,保留在这些表之间所定义的关系。
FOR INSERT, UPDATE AS RAISERROR (50009, 16, 10) GO
例二
创建一个触发器。无论何时订购产品(无论何时向 Order Details表中插入一条记录),这个触发器都将更新 Products表中的一列(UnitsInStock)。用原来的值减去订 购的数量值即为新值。 USE Northwind CREATE TRIGGER OrdDet_Insert ON [Order Details] FOR INSERT AS UPDATE P SET UnitsInStock = P.UnitsInStock - I.Quantity FROM Products AS P INNER JOIN Inserted AS I ON P.ProductID = I.ProductID
最新数据库实验二实验报告
最新数据库实验二实验报告实验目的:1. 熟悉数据库管理系统的基本操作。
2. 掌握数据库的创建、查询、更新和删除等基本操作。
3. 学习并实践SQL语言在数据库管理中的应用。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:MySQL Workbench实验内容:1. 创建数据库- 使用MySQL Workbench连接到MySQL服务器。
- 执行CREATE DATABASE命令创建名为“StudentDB”的数据库。
2. 设计数据表- 在“StudentDB”数据库中创建学生表(Students)和课程表(Courses)。
- 学生表包含字段:学号(ID)、姓名(Name)、年龄(Age)、专业(Major)。
- 课程表包含字段:课程号(CourseID)、课程名(CourseName)、学分(Credits)。
3. 插入数据- 向学生表和课程表中插入一定数量的示例数据。
- 使用INSERT INTO命令并指定具体的值进行数据插入。
4. 查询操作- 实现对学生表和课程表的基本查询,如查询所有学生信息、查询特定专业学生信息等。
- 使用SELECT语句进行查询,并尝试使用WHERE子句进行条件筛选。
5. 更新和删除操作- 修改学生表中的部分数据,如更新学生的选课信息。
- 使用UPDATE命令进行数据更新。
- 删除课程表中的某些课程记录。
- 使用DELETE FROM命令进行数据删除。
6. 数据库的完整性约束- 在创建数据表时设置主键、外键等约束。
- 尝试插入违反约束的数据,并观察数据库的响应。
实验结果:- 成功创建了“StudentDB”数据库以及相应的学生表和课程表。
- 插入数据操作顺利,能够正确输入数据至指定数据表。
- 查询操作无误,能够根据不同条件检索所需数据。
- 更新和删除操作执行正确,数据表中的记录得到相应修改。
- 完整性约束有效,违反约束的操作被数据库拒绝执行。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
《数据库系统原理》实验二 数据库建立
《数据库系统原理》实验二数据库建立在学习数据库系统原理的过程中,实验二“数据库建立”是一个关键的环节。
通过这个实验,我们能够将理论知识转化为实际操作,深入理解数据库的构建和管理。
首先,让我们来明确一下数据库建立的重要性。
数据库就像是一个大型的信息仓库,它以一种有组织、高效的方式存储和管理着大量的数据。
无论是企业的业务数据、学校的学生信息,还是在线购物平台的商品详情,都依赖于数据库来进行存储和管理。
一个设计良好的数据库能够确保数据的准确性、完整性和一致性,同时还能提高数据的检索和处理效率,为各种应用程序提供可靠的数据支持。
在开始建立数据库之前,我们需要进行充分的需求分析。
这就像是为建造一座房子绘制蓝图,要清楚地知道我们需要存储什么样的数据,这些数据之间有什么样的关系,以及数据的使用场景和访问频率等。
例如,如果我们要建立一个学生管理数据库,那么我们需要考虑存储学生的基本信息(如姓名、学号、年龄等)、课程信息(课程名称、课程编号、学分等)以及学生的选课情况等。
通过需求分析,我们可以确定数据库中需要包含哪些表,每个表中需要哪些字段,以及表与表之间的关联关系。
接下来,就是选择合适的数据库管理系统(DBMS)。
常见的DBMS 有 MySQL、Oracle、SQL Server 等。
不同的 DBMS 在功能、性能、易用性和成本等方面可能存在差异,我们需要根据实际需求和自身的技术水平来选择。
对于初学者来说,MySQL 可能是一个不错的选择,它具有开源、免费、易于安装和使用等优点。
在确定了 DBMS 之后,我们就可以开始创建数据库了。
在 MySQL 中,可以使用以下语句来创建一个名为“student_management”的数据库:```sqlCREATE DATABASE student_management;```创建完数据库之后,接下来就是创建表。
表是数据库中存储数据的基本单元,它由一系列的列(字段)和行(记录)组成。
《数据库系统概论》实验报告
《数据库系统概论》实验报告专业:软件工程(2)班姓名:***学号:************题目:实验二(1)交互式SQL 语言实验内容及完成情况:(写出每一种类型的SQL测试用例)(一)数据定义一、基本表操作1.建立基本表1)创建学生表Student,由以下属性组成:学号SNO(INT 型,主码),姓名SNAME(CHAR 型,长度为8,非空唯一),性别SEX(CHAR型,长度为2),所在系DEPTNO (INT型)。
CREATE TABLE Student(SNO INT PRIMARY KEY,SNAME CHAR(8) NOT NULL UNIQUE,SEX CHAR(2),DEPTNO INT);2)创建课程表Course,由以下属性组成:课程号CNO(INT型),课程名CNAME(CHAR 型,长度为20,非空),授课教师编号TNO(INT型),学分CREDIT(INT型)。
其中(CNO,TNO)为主码。
CREATE TABLE Course(CNO INT,CNAME CHAR(20) NOT NULL,TNO INT,CREDIT INT,PRIMARY KEY (CNO,TNO));3)创建学生选课表SC,由以下属性组成:学号SNO,课程CNO,成绩GRADE。
所有属性均为INT型,其中(SNO,CNO)为主码。
CREATE TABLE SC(SNO INT,CNO INT,GRADE INT,PRIMARY KEY(SNO,CNO));4)创建教师表Teacher,由以下属性组成:教师编号TNO(INT型,主码),教师姓名TNAME(CHAR型,长度为8,非空),所在系DEPTNO(INT型)。
CREATE TABLE Teacher(TNO INT PRIMARY KEY,TNAME CHAR(8) NOT NULL,DEPTNO INT);5)创建系表Dept,由以下属性:系号DEPTNO(INT型,主码),系名DNAME(CHAR 型,长度为20,非空)。
数据库系统实验二
实验二姓名:毕泽琨学号:23320122203798一.实验内容查询语句使用基本select语句使用查询条件where、having语句使用Having 语句是在分组筛选时使用即与group by 语句联合使用嵌套查询,in、exists聚集函数:max、min、avg、count集合运算:union、intersect、exceptorder by和group by 语句主要是熟悉嵌套查询!在嵌套查询中,子查询不能使用order by语句二.实验环境:WINDOWS SERVER2003, MS SQL SERVER2000三.实验步骤实验2.1 数据查询实验要求:以School数据库为例,在该数据库中存在四张表格,分别为:●表STUDENT(sid, sname, email, grade);●表TEACHERS(tid, tname, email, salary);●表COURSES(cid, cname, hour);●表CHOICES(no, sid, tid, cid, score)在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。
在表CHOICES中保存学生的选课记录。
按以下要求对数据库进行查询操作:实验步骤:(1)查询年级为2002的所有学生的姓名并按编号升序排列。
(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积点(60分对应积点为1,每增加1分,积点增加0.1)。
(3)查询课时是48或64的课程的名称。
(4)查询所有课程名称中含有data的课程编号。
(5)查询所有选课记录的课程号(不重复显示)。
(6)统计所有教师的平均工资。
(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
(8)统计各个课程的选课人数和平均成绩。
(9)查询至少选修了四门课程的学生编号。
(10)查询编号800028649的学生所选的全部课程的课程名和成绩。
(11)查询所有选修了database的学生的编号。
数据库实验报告实验二参考答案[最终版]
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]1.你的老板要求你创建一个数据量为20G的数据库,但是你现在的硬盘上没有一个这么大空闲容量的分区,只有3个空闲容量为8G的分区,请问,你该如何完成这个任务?答:为该数据库创建3个数据文件,每个数据文件只需保存小于8G的数据,将这3个数据文件分别存储在不同的硬盘分区即可。
注:数据库中的数据都保存在该数据库的若干数据文件中,而非日志文件!2.你想创建一个初始大小为2MB的数据库,但是你却发现你创建的数据库的初始大小是5MB,而且不能小于这个值,请问是什么原因?答:系统数据库中的model数据库为用户创建数据库提供模板,也就是说,在创建数据库时,数据库引擎首先通过复制 Model 数据库中的内容来创建数据库的第一部分,然后再用空页填充新数据库的剩余部分。
因此,用户创建的数据库的初始大小不能小于model数据库的大小。
该问题的原因在于model数据库数据文件的初始大小被设定为5MB。
/***************************SQL语言部分*****************************/ /*创建数据库student*/create database studenton(name=student_data,filename='C:DATAstudent_data.mdf', size=3,maxsize=unlimited,filegrowth=1)log on(name=student_log,filename='C:DATAstudent_log.ldf',size =1,maxsize=20,filegrowth=10%)/*修改数据库student--添加数据文件*/alter database student add filegroup studata /*先增加一个文件组studata*/ goalter database studentadd file(Name=student_data1,filename='D:DATAstudent_data1.nd f',Size=50,Maxsize=500,Filegrowth=30%)to filegroup studata /*删除数据库student */ drop database student第二篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。
数据库原理实验报告(2)实验二 数据库的创建、管理、备份及还原实验
南京晓庄学院《数据库原理与应用》课程实验报告实验二数据库的创建、管理、备份及还原实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改数据库的基本方法;(2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。
(3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方法。
2.实验要求(1)使用SQL Server Management Studio创建“教学管理”数据库。
(2)使用SQL Server Management Studio修改和删除“教学管理”数据库。
(3)使用Transact-SQL语句创建“教学管理”数据库。
(4)使用Transact-SQL语句修改和删除“教学管理”数据库。
(5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server ManagementStudio对数据库“教学管理”进行备份和还原。
(6)SQL Server 2005数据库文件的分离与附加。
(7)按要求完成实验报告3.实验步骤、结果和总结实验步骤/结果(1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。
(2) 总结在实验中为创建、修改和删除“教学管理”数据库所编写的各条T-SQL语句及其完成了什么功能。
(3)总结使用SQL Server Management Studio备份与还原数据库的几种方法。
4.实验思考:①SQL Server 2005物理数据库包含了哪能几种类型的文件以及它们的作用?②数据库备份与转储包含那些原理?③如果数据或日志文件非空不能删除,查找SQL Server中缩小文件大小的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统实验二实验题目实验二查询数据库一、实验目的熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询1、掌握基本的SELECT查询及其相关子句的使用;2、掌握复杂的SELECT查询,如多表查询、子查询、连接查询和嵌套查询。
二、实验内容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法,掌握存储查询结果的方法,体会各种查询的异同及相互之间的转换,体会各种查询的执行过程,为简单综合应用打下良好的基础。
三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试要求用SELECT完成以下查询,1、对实验一建立的数据库表进行查询简单查询:(1)、查询全部学生的学号、姓名、性别和出身年月日。
查询分析器执行情况:查询结果截图显示SQL语句及执行结果显示SELECT s_no,sname,sex,sbirthdayFROM student_3113006393(2)、查询全体学生的学号、姓名和年龄实现代码及查询结果截图:SELECT s_no,sname,2015-YEAR(sbirthday)FROM student_3113006393(3)、查询院系编号为‘510000’(计算机学院)的全部学生的学号、姓名、性别和出身年月日。
实现代码及查询结果截图:SELECT s_no,sname,sex,sbirthdayFROM student_3113006393WHERE dno='510000'(4)、查询“计算机科学与技术”专业(专业代码为‘******’)并且班级代码为‘0307’的学生的学号、姓名和出生日期。
实现代码及查询结果截图:SELECT s_no,sname,sbirthdayFROM student_3113006393WHERE spno='080605' AND class_no='0307'(5)、查询在‘1983/01/10’以后出生的计算机学院(院系编号为‘******’)学生的学号、姓名、性别和出身年月日。
实现代码及查询结果截图:SELECT s_no,sname,sex,sbirthdayFROM student_3113006393WHERE sbirthday >=1983/01/10(6)、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。
实现代码及查询结果截图:SELECT s_no,sname,sex,sbirthdayFROM student_3113006393ORDER BY sbirthday ASC连接查询:(1)、查询全部学生的学号、姓名、性别、所在院系名称和专业名称实现代码及查询结果截图:SELECT s_no,sname,sex,dept_name,spnameFROMstudent_3113006393,department_3113006393,speciality_31130 06393 WHERE student_3113006393.dno = department_3113006393.dno and student_3113006393.spno = speciality_3113006393.spno(2)、查询选修了课程2(上课编号)的学生的学号、姓名、专业名称和这门课的成绩实现代码及查询结果截图:SELECT student_3113006393.s_no,sname,spname,scoreFROMstudent_3113006393,speciality_3113006393,student_course_311 3006393 WHERE student_course_3113006393.tcid = '2'and student_3113006393.spno = speciality_3113006393.spnoand student_3113006393.s_no = student_course_3113006393.s_no(3)、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。
实现代码及查询结果截图:SELECT student_3113006393.s_no,sname,cnameFROMstudent_3113006393,student_course_3113006393,Course_31130 06393,teacher_course_3113006393 WHERE student_course_3113006393.score < 60and student_3113006393.s_no = student_course_3113006393.s_noand student_course_3113006393.tcid = teacher_course_3113006393.tcidand teacher_course_o = Course_o嵌套查询:(1)、查询没有选修了课程1的学生,列出学生的学号和姓名。
实现代码及查询结果截图:SELECT s_no,snameFROM student_3113006393WHERE s_no IN(SELECT s_noFROM student_course_3113006393WHERE tcid != '1')(2)、查询每门课都是80分以上的学生的学号与姓名。
实现代码及查询结果截图:SELECT s_no,snameFROM student_3113006393WHERE EXISTS(SELECT *FROM student_course_3113006393WHERE student_3113006393.s_no=student_course_3113006393.s_noAND score > 80)2、选用Northwind数据库进行查询(1)、对NothWind. Products表进行简单查询;在查询分析器在窗口下用SELECT语句完成单表查询:查询所有Products的详细记录;查询分析器执行情况:SQL语句及执行结果显示SELECT*FROM Products;查询结果截图显示查询单价(UnitPrice)小于20的Products;查询分析器执行情况:SQL语句及执行结果显示SELECT*FROM ProductsWHERE UnitPrice<20;查询结果截图显示查询Products中最高单价(UnitPrice)是多少;查询分析器执行情况:SQL语句及执行结果显示SELECT MAX(UnitPrice)AS max_UnitPrice FROM Products;查询结果截图显示(2)、在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询:查询所有被订购过得Products的ProductsID和ProductName;查询分析器执行情况:SQL语句及执行结果显示SELECT ProductName,ProductName FROM ProductsWHERE ProductID IN(SELECT DISTINCT ProductIDFROM[Order Details]);查询结果截图显示查询所有被CustomerID为AROUT客和订购过的ProductsID和ProductName;查询分析器执行情况:SQL语句及执行结果显示SELECT ProductName,ProductNameFROM ProductsWHERE ProductID IN(SELECT ProductID FROM[Order Details]WHERE OrderID IN(SELECT OrderID FROM OrdersWHERE CustomerID='AROUT'));查询结果截图显示查询所有被CustomerID为AROUT客和订购过,且单价在20 以上的ProductsID 和ProductName;查询分析器执行情况:SQL语句及执行结果显示SELECT ProductName,ProductNameFROM ProductsWHERE ProductID IN(SELECT ProductID FROM[Order Details]WHERE OrderID IN(SELECT OrderID FROM OrdersWHERE CustomerID='AROUT'))AND UnitPrice>20;查询结果截图显示查询Products中单价(UnitPrice)最高的Products的资料;查询分析器执行情况:SQL语句及执行结果显示SELECT*FROM ProductsWHERE UnitPrice=(SELECT MAX(UnitPrice)AS max_UnitPrice FROM Products);查询结果截图显示五、实验中出现的问题及解决方案问题:2012SQLserver不支持附加2000版本mfd文件解决:利用2008版本中转导出至2012版本问题:连接查询不成功,存在着主键与外键约束解决方案:明确表与表之间存在主键外键约束的表才能进行连接六、思考题1连接查询分哪几类?各有什么特点?答:连接查询可分为內连接和外连接,內连接包括自然连接,等值连接,不等连接;外连接包括左外连接,右外连接,全外连接。
1)自然连接:表关系的笛卡尔积中,首先根据表关系中相同名称的字段自动进行记录匹配,然后去除掉重复的字段。
2)等值连接:表关系的笛卡尔积中,选择所匹配字段值相等的数据记录。
3)不等连接:表关系的笛卡尔积中,选择所匹配字段值不相等的数据记录。
4)左外连接:表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左边表中不匹配的数据记录。
5)右外连接:表关系的笛卡尔积中,除了选择相匹配(相等)的数据记录,还包含关联右边表中不匹配的数据记录。
6)全外连接:表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左右两边表中不匹配的数据记录。
2进行连接查询时应注意哪些问题?1)根据问题判断这个查询最少需要几张表,(要查询的字段要筛选的条件是进行判断的主要条件)2)判断要连接的表之间是否存在公共字段,如果有就可以连接,如果没有那么就要考虑需要一个中间表了3)实施连接,要明确2表关联的公共字段是哪个字段4)连接的表越多,响应的时间就越长。