数据库实验多表查询实验报告

合集下载

数据库系统原理实验报告

数据库系统原理实验报告

数据库系统原理实验报告一、实验目的掌握数据库基本操作,熟悉数据库系统的结构和组成部分,了解数据库系统原理二、实验环境操作系统:Windows 10三、实验内容1.创建数据库首先通过命令行或图形界面方式登录数据库系统,创建一个新的数据库。

命令如下:CREATE DATABASE testdb;2.创建数据表在新创建的数据库中,创建一个新的数据表。

表名为student,包含字段id(学号)、name(姓名)、age(年龄)、gender(性别)。

命令如下:USE testdb;CREATE TABLE studentid INT PRIMARY KEY,name VARCHAR(20),age INT,gender VARCHAR(2)3.插入数据向数据表中插入若干条记录。

命令如下:INSERT INTO student (id, name, age, gender) VALUES (1, '张三', 20, '男');INSERT INTO student (id, name, age, gender) VALUES (2, '李四', 22, '女');INSERT INTO student (id, name, age, gender) VALUES (3, '王五', 21, '男');4.查询数据从数据表中查询记录。

命令如下:SELECT * FROM student;5.更新数据更新数据表中的条记录。

命令如下:UPDATE student SET age=23 WHERE id=1;6.删除数据删除数据表中的条记录。

DELETE FROM student WHERE id=2;四、实验结果1.创建数据库成功;2.创建数据表成功;3.插入数据成功;4.查询数据成功;5.更新数据成功;6.删除数据成功。

Access实验报告

Access实验报告

Access数据库实验报告院系:计算机科学与技术学院班级:1205班(文理)姓名:***学号:*************实验目的:1.掌握Access数据库的创建和打开2.掌握Access中数据表的设计和创建及维护。

3.掌握Access中窗体、查询、报表等的设计和创建4.熟练掌握SQL结构化查询语言。

5.初步掌握数据库系统的开发与应用6.并对Access做一定的总结实验内容与步骤:1.Access数据库的建立和维护:了解数据库、数据库管理系统,数据库系统的概念;了解Access数据库;了解表;了解数据的录入和维护;了解数据表间关联;了解数据表对象的复制、删除与更名,学会创建“教务管理”数据库;学会利用表设计视图创建表;学会导入表;学会建立表间联系;学会修改表结构;学会操作表记录2.Access查询、窗体和报表:了解查询及创建方法;了解窗体及创建方法;了解报表及创建方法;学会选择查询、参数查询、总计查询;学会窗体设计;学会报表设计3.结构化查询语言(SQL):了解SQL语言;理解数据定义语言,掌握数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)等操作;理解数据操纵语言,掌握数据操作的命令由插入(INSERT)、删除(DELETE)、更新(UPDATE)、检索(SELECT)等组成;掌握SQL 语言的核心——SELECT语言;学会使用SQL查询;使用报表向导创建基于SQL 查询数据源的报表;学会SQL语句创建表;学会使用SQL语句修改表结构、表记录;学会使用SQL语句创建查询第二章构建Access数据库一、创建Access数据库的方式<1>. 使用数据库向导创建数据库1.跟随Access的数据库向导创建“讲座管理”数据库步骤:(1)启动数据库向导,打开数据库“模板”对话框(2)启动“数据库向导”(3)回答向导提出的问题(4)自动创建数据库及数据库对象“我的公司信息”对话框.“讲座管理”数据库的主切换面板<2>自行创建空数据库1.创建“教学管理”空数据库操作步骤:(1)打开“新建文件”对话框(2)选取数据库名称和保存数据库文件的路径(3)浏览数据库“教学管理”数据库窗口2.归纳分析(1)今后会使用其它想到创建对象,其主要步骤全部相同(2)中断向导工作a.在数据库向导对话框的各个接口单击“取消”按钮,Access会取消向导所做的所有工作b.在数据库向导对话框中的各个接口单击“完成”按钮,Access会保留在该部之前向导所做的工作,对于还没有回答的问题,Access选取系统默认选项c.单击向导对话框中的“上一步”按钮,可返回向导的上一步,修改上一步中所做的设置第三章创建与使用表对象一、构建表结构<1>通过表设计器创建表结构1.使用Access表设计器在“教学管理”数据库中创建“教师”表结构操作步骤:(1)打开表“设计”视图(2)定义字段名称、数据类型(3)定义字段大小及其字段属性(4)设置主关键词(5)保存表结构确定表名新创建的“教师”表<2>通过表向导创建表结构1.使用Access表向导在“教学管理”数据库中创建“学生”表结构操作步骤:(1)启动Access表向导(2)回答向导问题(3)向导自动创建“学生”表结构表创建的“学生”表结构<3>通过输入数据创建表结构1.通过输入数据在“教学管理”数据库中直接创建“课程”表操作步骤:(1)打开资料表视图(2)输入字段名称(3)选取表名,设置主键(4)直接输入数据课程数据二、设置字段属性<1>设置“字段大小”属性与“格式”属性1.设置“课程”表中数字型与文本型字段元元的字段大小设置“教师”表中日期型字段的格式<2> 设置“输入屏蔽”属性1.通过输入屏蔽向导设置“教师”表中的“参加工作日期”字段的“输入屏蔽”属性操作步骤:(1)打开“教师”表(2)启动输入屏蔽向导(3)问答向导提问(4)自动创建输入屏蔽对象屏蔽属性设置三、创建“教学管理”数据库表的关系<1> 创建与编辑表之间的关系1.在关系视图窗口为“教师”、“学生”、“课程”、“学生选修课”与“教师授课课程”表建立关系操作步骤:(1)打开关系视图窗口(2)编辑关系关系视图第四章在Access数据库中维护与操作表一、维护表<1>维护表结构1.在“教学管理”数据库“学生”表中插入一个名称为“电话”的文本字段元元操作步骤:(1)在表中插入新字段(2)修改表中字段名称与字段属性(3)删除表中字段<2>维护表内容操作步骤:(1)向表中添加新纪录(图中黑色部分为新添加的记录)<3>美化表外观1.设置“学生”表的格式操作步骤:(1)在资料表视图中打开“学生”表(2)选择主窗口菜单栏上的“格式”->“数据表”命令,打开“设置数据表格式”对话框(3)在对话框中可修改数据表单元格、网线格、背景色、边框与线条的外观(4)在对话框中单击“确定”按钮,即可看到新外观的资料表2.改变“学生”表显示数据的字体,使数据显示的更美观、清晰、醒目操作步骤:(1)在资料表视图中打开“学生”表(2)选择主窗口菜单栏上的“格式”—>“字体”命令,打开“字体”对话框(3)在对话框中设置字体、字型、字号、颜色等(4)在对话框中单击“确定”按钮,可在数据表视图中看到改变了字体及数据表格式的“学生”表二、操作表<1> 快速查找表中的数据1.通过定位器查找“学生”的4号记录操作步骤:a.在资料表视图中打开“学生”表b.在记录编号框输入要查找的记录号4c.按Enter键,游标将定位到4号记录上2.通过“查找”和替换对话框的“查找”选项卡在“学生”表查找姓名为“王红”的数据操作步骤:a.在资料表视图中打开“学生”表b.选择菜单栏中的“编辑”—>“查找”命令,打开“查找和替换”对话框c.在“查找内容”下拉列表框中输入要查找的数据“王红”d.在“查找范围”下拉列表框中选择“学生:表”e.在“匹配”下拉列表框中选择“整个字段”f.“搜索”下拉列表框中选择“全部”g.单击“查找下一个”按钮,将查找指定的数据,找到的数据会高亮显示h.继续单击“查找下一个”按钮,可查找下一个满足条件的资料<2>简便替换表中的资料1.使用替换功能将“学生”表中“所在学院”字段中的“经济管理学院”数据替换为“经管学院”操作步骤:a.在数据标示图中打开“学生”表,单击“所在学院”字段标题按钮选择该列b.选择主窗口菜单栏上的“编辑”命令—>“替换”命令,打开“查找和替换”对话框c.在“查找内容”框中输入要查找的数据“经济管理学院”d.在“替换为”框中输入替换后的数据“经管学院”e.在“查找范围”框中选择“学生:表”f.在“匹配”框中选择“整个字段”g.在“搜索”框中选择“全部”h.单击“全部替换”按钮<3>按指定条件筛选表中的记录1.在“学生”表中筛选出满足条件“政治面貌=党员”的记录操作步骤:a.在资料表视图打开“学生”表b.在“政治面貌”字段中选中“党员”数据c.单击工具栏上的“按选定内容筛选”按钮,即可筛选出所要的记录d.单击“取消筛选”按钮,可恢复整个数据表记录第五章创建与使用查询对象一、使用查询对象查找所需数据<1> 实用查询从一个表中查找数据1.创建名称为“学生主要信息”的选择查询对象,从“学生”表中查找“学号”、“姓名”、“性别”、“班级”字段的数据操作步骤:a.在Access中打开“教学管理数据库”b.打开查询设计器c.选择查询对象的数据来源d.确定查询对象查找的数据字段e.保存查询对象f.预览查询对象添加多个表的查询设计视图查询对象找到的数据<2>使用查询从多个表中查找数据1.创建名称为“学生成绩”的查询对象,从“学生”、“学生选修课程”、“课程”3个表中查找“学号”、“姓名”、“课程名称”、“课程成绩”字段的数据操作步骤:a.在Access中打开“教学管理”数据库b.打开查询设计器c.选择查询数据的来源表d.确定查询对象要查找的数据字段e.设置查找的条件二、使用查询对象操作数据<1> 使用查询将指定的数据生成一个新表1.创建名称为“生成学生成绩信息表查询”对象,该查询用来创建一个包含字段“学号、姓名、性别、班级、课程成绩、课程名称、学分”的新表“学生成绩查询”操作步骤:a.打开查询设计视图b.将查询另存为一个新查询对象c.将查询定义为“生成表查询”类型d.预览将要生成的表e.生成新表第六章创建与使用窗体对象一、通过自动方式创建窗体<1> 创建纵栏式窗体1.使用“自动窗体”方式创建名称为“学生信息输入窗口”的纵栏式窗体对象,该窗体用来向“学生”表输入数据操作步骤:a.打开“教学管理”数据库b.在数据库对象窗口“对象”栏单击“表”按钮,选择“学生”表 c.在主窗口工具栏中单击“自动窗体”按钮,单击后即自动创建纵栏式船体对象e.保存窗体对象为“学生信息输入窗口”纵栏式窗体<2>创建表格式窗体1.使用“自动创建窗体”方式创建名称为“学生主要信息浏览窗口”的表格式窗体对象,该窗体用来浏览“学生主要信息”表中的数据操作步骤a.在“教学管理”数据库窗口“对象”栏中选“窗体”对象b.单击数据库窗口工具栏上的“新建”按钮c.在打开的“新建窗体”对话框中“自动创建窗体:表格式”d.并在表/查询列表中选择表“学生主要信息”e.单击“确定”按钮,即可自动创建窗体f.保存窗体对象为“学生主要信息浏览窗口”二、通过向导创建窗体<1>创建主/子式窗体1.通过窗体向导创建基于“学生”、“课程”两个表的名称为“学生选修课程主子式窗口”的主/子式窗体对象,该窗体用来输入、显示学生选修的课程信息操作步骤:(1)启动窗体向导a.启动access数据库打开“教学管理”数据库b.在数据口窗口“对象”栏选中“窗体”对象c.在“使用向导创建窗体”创建方法上双击,即可启动窗体向导,打开“窗体向导”对话框(2)回答向导提问a.在下面连续提问的向导对话框中回答向导提出的问题b.确定窗体上查看数据的方式c.确定子窗体使用的布局e.确定窗体使用的样式f.确定窗体与子窗体使用的标题(3)自动创建窗体三、通过设计器创建窗体<1>认识窗体设计视图1.打开窗体设计视图的方式(1)启动access数据库打开“教学管理”数据库(2)在数据库窗口“对象”栏选中“窗体”对象(3)在“在设计视图创建中创建窗体”创建方法上双击,即可打开窗体设计视图2.窗体的组成及节的功能(1)窗体的5个组成部分在窗体设计视图中右击,在弹出的快捷菜单中分别选择“页面页眉/页脚”和“窗体页眉/页脚”,会显示窗体的5个部分。

SQL数据库实验报告 (1)

SQL数据库实验报告  (1)

资源与环境科学学院实验报告一、上机实习名称:SQL Server的安装及数据库的建立二、实验目的:1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。

2、熟悉对DBMS的操作3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。

三、实验内容:1、根据安装文件的说明安装数据库管理系统。

2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。

3、掌握管理工具的使用(1)SQL Server Management Studio的使用➢连接服务器的方法➢查询分析器的使用(2)配置管理器的使用4、了解数据库系统的逻辑组件:它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。

今后将学习如何操作这些数据库对象。

5.在SSMS中创建数据库和表四、实验步骤1. SQL Server 2008的体系结构和特点介绍SQL Server 是一个关系数据库管理系统。

由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL Server版本。

SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact)Microsoft SQL Server 2008系统由4个主要部分组成。

这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。

2. SQL Server管理工作室的启动打开windows控制面板—管理—服务,启动SQL Server 服务,如下图(1)开始→程序→Microsoft SQL Server 2008→SQL Server Management Studio(如图1.1所示)。

实验:数据库单表查询

实验:数据库单表查询

实验:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。

二、实验环境已安装SQL Server 2005 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解数据库查询;2.了解数据库查询的实现方式;3.完成实验报告;五、实验内容及步骤以《实验:管理SQL Server表数据》数据库中数据为基础,请使用T-SQL 语句实现以下操作:1.列出所有不姓刘的所有学生;GOselect*from studentwhere sname not like'刘%'2.列出姓‚沈‛且全名为3个汉字的学生;USE studentGOselect*from studentwhere sname like'王_[^ ]'3.显示在1985年以后出生的学生的基本信息;GOselect*from studentwhere sage<(year(getdate())-1985)4.按照‚性别、学号、姓名、年龄、院系‛的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其他显示为‚条件不明‛;USE studentGOselect ssex=case ssexwhen'男'then'男生'when'女'then'女生'else'条件不明'end,sno,sname,sage,sdeptfrom student5.查询出课程名含有‚数据‛字串的所有课程基本信息;USE studentGOselect*from coursewhere cname like'%数据%'6.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;USE studentGOselect sno,sname,ssex,sage,sdept from studentwhere sno like'_______[1-4,9]%'or sno like'________[1-4,9]'7.列出选修了‘1’课程的学生,按成绩的降序排列;USE studentGOselect student.sno,sname,ssex,sage,sdept,grade from student,scwhere cno=1 and student.sno=sc.snoorder by grade DESCGO8.列出同时选修‚1‛号课程和‚2‛号课程的所有学生的学号;USE studentGOselect a.sno from sc a,sc bwhere o=1 and o=2 and a.sno=b.sno9.列出课程表中全部信息,按先修课的升序排列;USE studentgoselect*from courseorder by cpno ASCGo10.列出年龄超过平均值的所有学生名单,按年龄的降序显示;USE studentgoselect*from studentwhere sage>(select avg(sage)from student)order by sage DESC11.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为‚学号,姓名,性别,出生年份,院系‛;USE studentgoselect sno 学号,sname 姓名,ssex 性别,(year(getdate())-sage)出生年份,sdept 院系from studentorder by(year(getdate())-sage)ASC12.按照院系降序显示所有学生的‚院系,学号、姓名、性别、年龄‛等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;USE studentgoselect院系=case sdeptwhen'CS'then'计算机系'when'IS'then'信息系'when'MA'then'数学系'when'EN'then'外语系'when'CM'then'中医系'when'WM'then'西医系'else'院系不明'end, sno 学号,sname 姓名,ssex 性别,sage 年龄from studentorder by sdept DESC13.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段‚院系规模‛,其中若该院系人数>=5则该字段值为‚规模很大‛,若该院系人数大于等于4小于5则该字段值为‚规模一般‛,若该院系人数大于等于2小于4则该字段值为‚规模稍小‛,否则显示‚规模很小‛;USE studentgoselect distinct'院系'=sdept,'院系规模'=casewhen count(*)>=5 then'规模很大'when count(*)>=4 and count(*)<5 then'规模一般'when count(*)>=2 and count(*)<4 then'规模稍小'else'规模很小'end from studentgroup by sdept14.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;USE studentgoselect sno,cno,grade from scwhere grade between 70 and 80order by cno DESC,grade DESCgo15.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为‚学生总人数,平均年龄‛;USE studentgoselect'学生总人数'=count(*),'平均年龄'=A VG(sage)from student16.显示选修的课程数大于3的各个学生的选修课程数;USE studentgoselect sno 学号,'选修课程数'=count(cno)from scgroup by snohaving count(cno)>317.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;use studentgoselect distinct cno,'选修人数'=count(sno),'最高成绩'=MAX(grade),'最低成绩'=MIN(grade),'平均成绩'=A VG(grade)FROM scgroup by cnoorder by cno DESC18.显示平均成绩大于‚200515001‛学生平均成绩的各个学生的学号、平均成绩;use studentgoselect sno 学号,'平均成绩'=avg(grade)from scgroup by snohaving avg(grade)>(select avg(grade)from scwhere sno='200515001')19.显示选修各个课程的及格的人数、及格比率;use studentgoselect distinct cno ,'及格人数'=sum(case when grade>60 then 1 else 0 end),'及格比率'=sum(case when grade>60 then 1 else 0 end)/count(*)from scgroup by cno20.显示选修课程数最多的学号及选修课程数最少的学号;use studentgoselect distinct'学修课程最多的学号'=sno,'选修课程数'=count(cno)from scgroup by snohaving count(cno)>=all(select count(cno)from scgroup by sno)select distinct'学修课程最少的学号'=sno,'选修课程数'=count(cno)from scgroup by snohaving count(cno)<=all(select count(cno)from scgroup by sno)21.显示各个院系男女生人数,其中在结果集中列标题分别指定为‚院系名称、男生人数、女生人数‛;use studentgoselect distinct sdept 院系名称,'男生人数'=sum(case ssex when'男'then 1 else 0 end), '女生人数'=sum(case ssex when'女'THEN 1 ELSE 0 end)from STUDENTgroup by sdept22.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;USE studentgoselect distinct'不及格学生学号'=sno,'平均分数'=avg(grade)from sc group by snohaving sum(case when grade<60 then 1 else 0 end)>=2六、出现问题及解决办法如:某些查询操作无法执行,如何解决?。

Access数据库实验报告

Access数据库实验报告

Access数据库实验报告《Access 数据库实验报告》一、实验目的本次实验的主要目的是通过实际操作和使用 Access 数据库,深入了解数据库的基本概念、结构和功能,掌握数据库的创建、表的设计、数据的录入与编辑、查询的建立和使用、报表的生成等基本操作,提高对数据库管理和数据处理的能力。

二、实验环境1、操作系统:Windows 102、数据库软件:Microsoft Access 2019三、实验内容及步骤1、数据库的创建启动 Microsoft Access 2019 软件,选择“新建空白数据库”,为数据库命名为“学生管理系统”,并指定保存位置。

2、表的设计(1)分析需求:确定需要存储的学生信息,包括学号、姓名、性别、年龄、专业等字段。

(2)创建表:在“学生管理系统”数据库中,点击“创建”选项卡,选择“表设计”。

依次输入字段名称、数据类型和相关属性。

例如,学号字段设置为“自动编号”,姓名字段设置为“文本”,长度为 20,性别字段设置为“文本”,长度为 2,年龄字段设置为“数字”,专业字段设置为“文本”,长度为 50。

3、数据的录入与编辑(1)打开创建好的表,切换到“数据表视图”。

(2)逐行录入学生的相关信息。

在录入过程中,注意数据的准确性和完整性。

(3)对录入的数据进行编辑修改,如更正错误、补充遗漏信息等。

4、查询的建立和使用(1)创建查询:点击“创建”选项卡,选择“查询设计”。

(2)添加表:将需要查询的表添加到查询设计视图中。

(3)设置查询条件:例如,查询年龄大于 20 岁的学生信息,在“年龄”字段的条件行中输入“>20”。

(4)运行查询:点击“运行”按钮,查看查询结果。

5、报表的生成(1)创建报表:点击“创建”选项卡,选择“报表设计”。

(2)选择数据源:在报表设计视图中,选择要生成报表的表或查询。

(3)添加报表元素:如标题、文本框、页码等,对报表进行布局和格式设置。

(4)预览和打印报表:点击“视图”选项卡中的“打印预览”,查看报表效果,满意后进行打印。

数据库原理实验2数据查询

数据库原理实验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系的全体学生姓名与学号。

数据库实验报告

数据库实验报告

数据库实验报告实验⼀创建数据库及关系表⼀、实验⽬的1. 掌握SQL Server数据库管理系统的使⽤,能够中该环境中进⾏⽇常数据库操作;2. 掌握在SQL Server中使⽤图形化⼯具创建数据库的⽅法;3.掌握建⽴关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

⼆、实验要求1.了解SQL Server数据库的组成,会使⽤图形化⼯具创建数据库。

2.编写建⽴表及主、外码约束的T-SQL语句,并执⾏这些语句,在数据库中建⽴符合要求的关系表。

3.编写修改表结构的语句。

三、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据⽂件的逻辑⽂件名为:Students_dat,存放在D:\Test录下(若D:盘中⽆此⼦⽬录,可先建⽴此⽬录,然后再创建数据库。

);⽂件的初始⼤⼩为:5MB;增长⽅式为⾃动增长,每次增加1MB。

⽇志⽂件的逻辑⽂件名字为:Students_log,也存放在D:\Test⽬录下;⽇志⽂件的初始⼤⼩为:2MB;⽇志⽂件的增长⽅式为⾃动增长,每次增加10%。

2.在已建⽴的Students数据库中,写出创建满⾜下述条件的四张表的SQL 语句,并查看执⾏结果。

Teacher表结构Create table student (Sno char(7)primary key,Sname nchar(10)not null,Ssex nchar(2),Sage tinyint,Sdept nvarchar(20),Spec char(10))create table course(Cno char(10),Cname nvarchar(20)not null,Credit int,Semester tinyint,Primary key(Cno))create table sc(Sno char(7)not null,Cno char(10)not null,Grade tinyint,primary key(Sno,Cno),foreign key(Sno )references Student(Sno), foreign key(Cno )references Course(Cno), ) create table teacher(Tno char(8)not null,Tname char(10)not null,Dept nvarchar(20),Salary numeric(6,2),Birthery smalldatetime)执⾏结果:2.写出实现如下操作的SQL语句,并查看执⾏结果:(1)在SC表中添加⼀个新的修课类别列:列名为:XKLB,类型为char(4)。

sql数据库实验报告

sql数据库实验报告

数据库设计与管理实验报告班级:120506学号:XXXXXXXX姓名:XXX实验一数据库的创建与管理及表的管理一、实验目的1.了解SQL Server 2000中数据库的组成;2.熟练创建、管理数据库和事务日志。

3.熟练掌握创建、修改和删除表的方法;4.掌握向表中添加记录、修改记录及删除记录的方法;二、实验内容1.在D盘或E盘建立以学生名命名的文件夹,如图1所示。

在E盘建立文件夹2.分别使用企业管理器、CREATE DATABASE命令两种方法创建数据库和事务日志。

要求如下:数据库名字为S ale;数据文件初始大小为3MB,最大为10MB,文件增量为1MB;事务日志初始大小为2MB,最大为15MB,文件增量为1MB。

用企业管理器创建数据库创建数据文件创建事务日志CREATE DA TABASE创建数据库和事务日志3.向Sale中添加数据文件、日志文件(要求与上同);CREATE DATABASE Sale添加数据文件添加日志文件4.向Sale中添加新文件组,向新文件组中添加一个数据文件(要求与上同);向Sale中添加新文件组向文件组中添加数据文件5.删除后添加的数据文件、日志文件及文件组;删除添加的数据文件删除添加的日志文件删除文件组6.分别使用企业管理器及CREATE TABLE 在S ale数据库中创建如下表:客户表(Customer)产品表(P roduct)入库表(ProIn)销售表(ProOut)7.在企业管理器中给Customer、P roduct、ProOut表中输入记录,并练习记录的修改及删除在Customer中输入记录在P roduct表中输入记录在ProOut表中输入记录删除程序运行删除后效果图修改程序运行修改后效果8.向ProOut表中用insert语句插入表中所列最后一条记录;用update语句将销售日期为2002-1-2,客户编号为001,产品编号为00003的销售记录的销售数量改为18;用delete 语句删除客户表(Customer)中地址为新疆的客户。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附页
实验内容:
针对实验数据库shiyan,完成以下单表查询操作:
1.查询为工程J1供应红色零件的供应商号码SNO。

2.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO。

3.查询至少选用了供应商S1所供应的全部零件的工程号JNO。

4.找出工程项目J2使用的各种零件的名称及其重量。

5.找出上海厂商供应的所有零件号码。

6.找出使用上海产的零件的工程名称。

7.找出没有使用天津产的零件的工程号码。

8.找出重量最轻的红色零件的零件编号PNO。

9.找出供应商与工程所在城市相同的供应商提供的零件号码。

10.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME。

11.重复第15题,但不检索两个CITY值相同的三元组。

12.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和。

实验方法、步骤以及实验结果:
操作1
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use ShiYan
go
select sno
from spj
where jno='j1'and pno in(select pno
from p
where color='红')
操作结果:
操作2
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select jno
from spj
where sno in (select sno
from s
where city<>'天津')
and
pno in (select pno
from p
where color='红')
操作结果:
操作3
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
select distinct jno
from spj as x
where not exists ( select *
from spj as y
where sno='s1'
and not exists (select *
from spj as z
where z.pno=y.pno and z.jno=x.jno))
操作结果:
操作4
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select pname,weight
from p,spj
where spj.jno='j2' and spj.pno=p.pno
或者
select pname,weight
from p
where pno in (select distinct pno from spj where jno='j2') 操作结果:
操作5
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct pno
from spj
where sno=(select sno
from s
where city='上海')
操作结果:
操作6
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct jname
from s,j,spj
where spj.jno=j.jno and spj.sno=(select sno
from s
where s.city='上海') 操作结果:
操作7
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct jno
from spj
where sno in (select sno
from s
where city<>'天津')
操作结果:
操作8
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select pno
from p
where weight=(select min(weight)
from p
where color='红')
或者
select top 1 pno
from p
where color='红'
order by weight
操作结果:
操作9
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct pno
from s,j,spj
where s.sno=spj.sno and j.jno=spj.jno and s.city=j.city 操作结果:
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct s.city CITYA, j.city CITYB,p.pname PNAME
from s,p,j,spj
where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno
操作结果:
操作11
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct s.city CITYA, j.city CITYB,p.pname PNAME
from s,p,j,spj
where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno and s.city<>j.city 操作结果:
(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select sum(qty) TotalQTY
from spj
where sno='s1' and jno in(select jno
from j
where jname like '%厂%') 操作结果:。

相关文档
最新文档