数据库上机(实验一)作业
- 格式:doc
- 大小:50.50 KB
- 文档页数:4
图1-1 通过开始菜单启动Access图1-2 Access启动后出现的对话框、打开已有的数据库文件启动后的初始对话框中,选择“打开已有文件”单选项并在其下的列表框中选择“罗斯文示例数据库”),可以很快地打开列出的数据库文件。
如果需要的数据库文件没有列出,则可选择“更多的文件”项,继而打开标准的“打开”对话框,从中选择数据库文件来图1-3 打开了一个数据库文件后的Access窗口所示的Access窗口中,有标题栏、菜单栏、工具栏按钮、状态栏和数据库设计视图数据库设计视图窗口的构成包括三个部分:命令按钮组(位于窗口上端的八个按钮)按钮组(位于窗口左部),对象成员集合(位于窗口右下部)。
选择不同的对象类别按钮,对应类别的对象成员集合显示在其右边。
如图1-3中选中了“表”对象类别按钮,其右边即显示出该数据库中的图1-4 帮助窗口中的目录选项卡图1-5 “文件新建数据库”对话框在新建的空白数据库SPJ中,选择表对象后单击“新建”按钮,则出现“新建表”对话框所示),从中可以选择以“数据表视图”、“设计视图”或“表向导”等不同的方式新附:SQL实验题答案零件表:P(PNO,PNAME,COLOR,WEIGHT)工程表:J(JNO,JNAME,CITY)供应商:S(SNO,SNAME,STATUS,CITY)联系表:SPJ(PNO,JNO,SNO,QTY)写出SQL查询:1.取出所在城市为天津的所有工程的全部细节;SELECT *FROM JWHERE (CITY = ‘天津’)σcity=’天津’(J)2.取出重量最轻的零件代号;SELECT PNOFROM PWHERE WEIGHT = (SELECT MIN(WEIGHT)FROM P )3.取出为工程J1提供零件的供应商代号;SELECT DISTINCT SNOFROM SPJWHERE JNO = ‘J1’ПSNO(σjno=’j1’(SPJ))4.取出为工程J1提供零件P1的供应商代号;SELECT SNOFROM SPJWHERE (PNO = ‘P1’ AND JNO = ‘J1’)5.取出由供应商S1提供零件的工程名称;SELECT J.JNAMEFROM SPJ INNER JOIN J ON J.JNO = SPJ.JNO WHERE SNO = ‘S1’Пjname(σsno=’s1’(SPJ)*Пjno,jname(S))6.取出供应商S1提供的零件的颜色;SELECT DISTINCT P.COLORFROM P INNER JOIN SPJ ON P.PNO = SPJ.PNO WHERE SNO = ‘S1’Пcolor(σsno=’s1’(SPJ)*Пpno,color(P))7.取出为工程J1或J2提供零件的供应商代号;SELECT DISTINCT SNOFROM SPJWHERE JNO = ‘J1’ OR JNO = ‘J2’8.取出为工程J1提供红色零件的供应商代号;WHERE JNO = ‘J1’ AND COLOR = ‘红’9.取出为所在城市是天津的工程提供零件的供应商代号;SELECT DISTINCT SPJ.SNOFROM J INNER JION SPJ ON J.JNO = SPJ.JNOWHERE CITY = ‘天津’10.取出为所在城市是天津或北京的工程提供红色零件的供应商代号;SELECT DISTINCT SPJ.SNOFROM (J INNER JION SPJ ON J.JNO = SPJ.JNO)INNER JION P ON SPJ.PNO = P.PNOWHERE (J.CITY = ‘天津’ OR J.CITY = ‘北京’) AND COLOR = ‘红’11.取出与工程所在城市相同的供应商所提供的零件代号;SELECT DISTINCT SPJ.PNOFROM (J INNER JION SPJ ON J.JNO = SPJ.JNO)INNER JION S ON SPJ.SNO = S.SNOWHERE J.CITY = S.CITY12.取出天津的供应商提供给天津的任一工程的零件代号;SELECT DISTINCT SPJ.PNOFROM (S INNER JION SPJ ON S.SNO = SPJ.SNO)INNER JION J ON SPJ.JNO = J.JNOWHERE S.CITY = ‘天津’ AND J.CITY = ‘天津’13.取出与工程不在同一城市的供应商提供零件的工程代号;SELECT DISTINCT J.JNOFROM (S INNER JION SPJ ON S.SNO = SPJ.SNO)INNER JION J ON SPJ.JNO = J.JNOWHERE J.CITY < > S.CITY14.取出天津供应商不提供任何零件的工程的代号;SELECT DISTINCT JNOFROM SPJWHERE JNO NOT IN (SELECT SPJ.JNOFROM S INNER JION SPJ ON S.SNO = SPJ.SNOWHERE S.CITY = ‘天津’)15.取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件;SELECT DISTINCT SNOFROM SPJWHERE PNO IN (SELECT PNOFROM PWHERE COLOR = ‘红’)16.取出所有这样的二元组(CITY,CITY),使得第1个城市的供应商为第2个城市的工程提供零件;SELECT DISTINCT S.CITY, J.CITYFROM (S INNER JION SPJ ON S.SNO = SPJ.SNO)INNER JION J ON SPJ.JNO = J.JNOSELECT DISTINCT S.CITY, SPJ.PNO, J.CITYFROM (S INNER JION SPJ ON S.SNO = SPJ.SNO)INNER JION J ON SPJ.JNO = J.JNO18.重复17题,但不检索两个CITY 值相同的三元组。
试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,ount,s.snamefrom(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
数据库上机实验报告摘要:本次数据库上机实验主要介绍了SQL语言在数据库中的应用,通过实际操作掌握了SQL语言的基本语法和常用命令,同时实践了数据库的建立、数据表的创建、数据插入、修改、删除、以及查询等操作。
本文将详细介绍实验中所使用的数据结构和算法,以及实验数据和结果的分析与总结。
一、实验目的本次实验的目的是对数据库相关的运用做一次实践操作,包括了数据库的建立、数据表的创建、数据插入、修改、删除、以及查询等操作。
力求将理论知识与实践经验相结合,为今后的数据库实践奠定基础。
二、实验原理本次实验中主要使用的是SQL语言对数据库进行管理。
SQL是一种结构化查询语言,可以对数据库进行查询、操作、管理等。
通过SQL语言对数据库中的数据进行增、删、改、查等操作,可以实现对数据的有效管理。
三、实验步骤1. 建立数据库首先在本地电脑建立数据库,可以通过使用全局管理工具进行实现。
2. 创建数据表在数据库中创建数据表,可以用CREATE TABLE命令来实现。
首先需要指定表的名称,其次需要指定表的字段名及其数据类型。
3. 插入数据表创建好之后,可以向表中插入数据。
可以使用INSERT命令将数据插入到表中,INSERT后面接表名和插入的数据。
4. 数据查询对于已经插入到数据库中的数据,可以进行查询操作。
可以通过SELECT语句对数据库进行查询。
SELECT后面需要指定要查询的字段名或者使用星号表示要查询全部字段。
5. 数据修改在数据库中,数据的修改一般是使用UPDATE命令来实现。
通过UPDATE语句可以修改已经存在的数据信息。
6. 数据删除表中的某个项不再需要时,可以通过DELETE语句来删除数据库中的数据项。
DELETE命令后面跟上要删除的数据。
四、实验结果通过SQL的基本命令,我们在本地电脑中成功的建立起了一个数据库,并把相关的数据插入到该数据库中。
在查询过程中,SQL可以只按照需要查询的数据来进行操作,使得数据的处理过程更加高效。
数据库上机实验报告数据库上机实验报告引言:数据库是现代信息技术中非常重要的一个组成部分,它可以帮助我们有效地存储、管理和检索大量的数据。
本次上机实验旨在通过实际操作,加深对数据库的理解,并掌握一些基本的数据库操作技巧。
实验环境:本次实验使用的是MySQL数据库管理系统,通过MySQL Workbench进行操作。
数据库中包含了一个学生信息表,其中包括学生的学号、姓名、性别、年龄等信息。
实验内容:1. 创建数据库首先,我们需要创建一个数据库来存储学生信息。
通过在MySQL Workbench中执行CREATE DATABASE语句,我们成功创建了一个名为"student"的数据库。
2. 创建数据表接下来,我们需要在数据库中创建一个数据表来存储学生信息。
通过执行CREATE TABLE语句,我们定义了一个名为"student_info"的数据表,并指定了各个字段的名称和数据类型。
例如,学号字段的数据类型为INT,姓名字段的数据类型为VARCHAR(20)等。
3. 插入数据在数据表创建完成后,我们需要向其中插入一些数据。
通过执行INSERT INTO语句,我们成功插入了几条学生信息记录。
例如,学号为1001的学生姓名为张三,性别为男,年龄为20岁。
4. 查询数据数据库的一个重要功能就是能够快速检索和查询数据。
通过执行SELECT语句,我们可以根据特定的条件来查询数据。
例如,我们可以查询所有性别为女的学生信息,或者查询年龄在18岁以上的学生信息。
5. 更新数据有时候,我们需要修改已有的数据。
通过执行UPDATE语句,我们可以更新数据表中的记录。
例如,我们可以将学号为1001的学生姓名由张三修改为李四。
6. 删除数据如果某条数据不再需要,我们可以通过执行DELETE语句将其从数据表中删除。
例如,我们可以删除学号为1001的学生信息记录。
实验总结:通过本次实验,我对数据库的基本概念和操作有了更深入的理解。
数据库上机实验报告引言:数据库是一种用于存储和管理数据的工具,它在现代社会中的重要性无可忽视。
本次实验旨在通过实际上机操作,加深对数据库的理解,并熟悉其相关操作和功能。
一、实验背景在信息时代的大背景下,各种类型的数据呈现指数级增长。
为了有效地存储和管理这些数据,数据库被广泛采用。
数据库管理系统(DBMS)是一套软件工具,用于定义、创建、管理和检索数据库。
本次实验将使用一款流行的开源DBMS工具MySQL。
二、实验目的1. 了解数据库的基本概念和原理;2. 掌握数据库的基本操作;3. 理解并应用SQL语言;4. 通过实际操作,熟悉数据库的增删改查功能。
三、实验过程1. 数据库的创建与连接首先,在MySQL中创建一个新的数据库,并通过合适的用户名和密码连接到该数据库。
数据库连接作为与数据库通信的接口,是进行各种操作的基础。
2. 数据表的创建与设置创建数据表是数据库设计的核心部分。
在实验过程中,我们选择创建一个学生信息表格。
通过指定各个字段的数据类型、长度以及约束,定义了学生信息表的结构。
3. 数据的插入与查询在学生信息表中插入若干条测试数据,包括学生姓名、年龄、性别、学号等信息。
通过SQL语句,我们可以灵活地插入、查询和过滤数据。
例如,查询年龄大于20岁的学生或者查询特定学号的学生等。
4. 数据的更新与删除数据库的更新和删除操作是不可或缺的。
我们可以通过SQL语句,修改特定记录的字段值,或者删除某些记录,以实现数据的动态维护和管理。
四、实验结果与分析通过实验操作,我们成功创建了学生信息表格,并插入了若干测试数据。
在查询功能上,我们能够根据不同的条件,按照要求查询指定的学生信息。
此外,我们还尝试了数据的更新和删除操作,成功地修改了一部分学生的年龄和性别,并删除了一些无效的记录。
五、实验总结通过本次数据库上机实验,我对数据库的基本概念、原理和操作有了更深入的了解。
在实践中,我能熟练地使用创建数据库、创建数据表、插入数据、查询数据以及修改和删除数据等功能。
实验一数据表的建立一、实验目的:熟悉Access 2000的操作环境,并了解关系数据库中关系在Access 2000中的表示——数据表,同时掌握数据表建立的不同方法。
二、实验要求:1.掌握Access 2000的启动和退出;2.了解Access 2000的特性;3.熟悉Access 2000的操作界面、窗口组成各元素;4.掌握Access 2000中建立、保存数据库的方法;5.掌握Access 2000中打开数据库的方法;6.掌握在Access 2000数据库中建立数据表的方法;7.掌握数据表中字段属性的设置和修改;8.掌握数据表中数据的输入、修改、添加、删除;9.掌握在Access 2000数据表的两种视图。
三、实验内容:1、启动Access 2000;2、打开已有的数据库文件(如“罗斯文示例数据库”);3、熟悉Access的操作环境,了解其窗口组成各元素;4、通过帮助了解Access 2000的功能和新特性;5、在Access 2000中新建一个SPJ数据库,并在其中用三种不同的方法(数据表视图、表向导、设计视图)新建S、P、J、SPJ四个数据表,各表结构及内容见下页;6、根据表中数据设置各字段的类型及大小,并设置S、P、J表的主键分别为SNO、PNO、JNO,SPJ表的主键为SNO+PNO+JNO,这些字段不能取空值、而且各记录的值互不相同;7、为S表的CITY字段设置有效性规则,限定其输入的城市只能为“天津”、“北京”、“上海”之一;为SPJ表的QTY字段设置有效性规则,限定其输入的数量在100~900之间;8、按表格所示内容输入各表数据;9、练习表中记录的浏览、修改、插入、删除;10、退出Access。
四、实验步骤:1、启动Access 2000在Windows中单击“开始/程序/Microsoft Access”命令即可启动Access,如图1-1所示。
启动Access后,即可看到一个初始对话框出现,如图1-2所示。
实验一大型数据库的基本操作一、实验目的1.熟悉大型数据库实验环境,以MS SQL SERVER为例。
2.掌握MS SQL SERVER的企业管理器的用法。
3.能够根据给定的设计要求,设计数据库和数据库表结构。
4.能够使用MS SQL SERVER的企业管理器完成数据库创建和表创建等操作。
5.能够往表中添加数据记录。
二、实验内容(1)创建数据库1.数据库名字为:abc;实验图如下:2.此数据库包含两个数据文件,其中主数据文件的逻辑文件名为:Data1,物理文件名为Data1_data.mdf,辅助数据文件的逻辑文件名为:Data2,物理文件名为Data2_data.ndf.逻辑文件名如下所示:物理文件名如下所示:Data1初始大小为3MB,存放在新建目录下,增长方式为自动增长,每次增加1MB,最多增长到10MB.Data2初始大小为2MB,同主数据文件存放在相同的位置,不自动增长。
3.日志文件的逻辑文件名为:log1,物理文件名为log1_log.ldf。
初始大小为2MB,同主数据文件存放在相同的位置,增长方式为自动增长,每次增加15%。
(2)创建表为描述销售人员对产品的销售情况,定义了三张表:销售人员表、产品表和销售情况表,分别用于描述销售人员的基本信息、产品的基本信息和销售人员与产品之间的销售情况。
三张表如下所示:写出在“abc”数据库中定义这三张表的语句并创建这三张表,(请将语句以文件形式保存下来,文件名为“考生名.sql”,存放在新建的目录下。
可以将下述所有的SQL语句均保存到此文件中,在文件中要注明题号),三张表的结构为:注:括号中为表名和列名的拼音表示,建表时用拼音表示表名和列名即可。
1.销售人员表(XSRYB)包括如下字段:职工号(ZGH):普通编码定长字符型,6位长,主码姓名(XM):普通编码定长字符型,10位长,非空年龄(NL):整型,取值范围为20 ~ 60,允许空地区(DQ):普通编码可变长字符型,10位长,允许空邮政编码(YZhBM):普通编码定长字符型,6位长,每一位必须是数字,允许空销售人员表实验图如下图所示:其中年龄(NL)约束条件20~60 check约束如下:邮政编码(YZhBM)每一位必须是数字,允许空的check约束语句如下:2.产品表(CPB)包括如下字段:产品号(CPH):普通编码定长字符型,6位长,主码产品名(CPM):普通编码可变长字符型,20位长,非空生产厂家(SCCJ):普通编码定长字符型,10位长,非空价格(JG):整型,大于0,允许空生产日期(SCRQ): 小日期时间型(SmallDatetime),允许空,默认为系统当前日期产品表实验图如下所示:其中价格(JG)大于0的check约束语句如下:3.销售情况表(XSQKB)包括如下字段:职工号(ZGH):普通编码定长字符型,6位长,非空产品号(CPH):普通编码定长字符型,6位长,非空销售日期(XSRQ):小日期时间型,非空销售数量(XSSL):整型,允许空其中:(职工号,产品号,销售日期)为主码销售情况表如下:职工号为引用销售人员表的外码,产品号为引用产品表的外码。
实验一:建立数据库及基本表一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)。
三个表各个字段的数据类型:(4) 利用企业管理器向表中输入数据。
2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:create database s_c(2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句:create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) )创建基本表课程表course(cno,cname, ccredit)的sql语句:create table course( cno c(4),cname c(10),ccredit c(2) )创建基本表成绩表sc(sno,cno,grade)的sql语句:create table sc( sno c(8),cno c(4),grade n(4) )(3) 在窗口下分别键入DROP TABLE Student及DROP TABLE SC命令,运行后观察结果。
数据库系统原理上机实验预备知识一、本实验指导书采用的数据库例子(见本课程参考用书《数据库系统概论》(第三版)P59) Student-Course-SC数据库:一个学生可以修多门课程,一门课程可以被多个学生选修,则学生、课程之间的E-R图如下:转化为关系数据模型:Student(Sno, Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)物理数据模型如下:数据库名MySC表名Student实体名学生属性名列名(字段名)数据类型长度允许空描述学号Sno char 5否学生的学号(主键)姓名Sname char 8否学生的姓名性别Ssex char 2学生的性别年龄Sage:tinyint l学生的年龄所在系Sdept char 2学生所在系数据库名MySC表名Course实体名课程属性名列名(字段名)数据类型长度允许空描述课程号Cno char 1否课程的编号(主键)课程名Cname char 20否课程的名称先行课Cpno char L课程先行课的编号学分Ccredit tinyint 1课程的年学分数据库名MySC表名SC实体名学生选课属性名列名(字段名)数据类型长度允许空描述学号Sno char 5否学生的学号(外键)课程号Cno char 3否谍程的编号(外键)成绩Grade tinyint 1学生该门课的成绩主键 (Sno.Cno)索引:对表Course中的字段Ccredit创建降序索引,索引名为IX_Course_Ccredit;检查约束:对表Student中的字段Sno创建检查约束LEN(Sno)>4,约束名为CK_Student_Sno;图表:建立名为“SC_Diagrame1”的图表,反映“SC”、“Student”、“Course”三张表间的备份和维护计划:为自己所建立的数据库创建备份和维护计划。
实验一 SQL Server 2005 的安装和环境介绍一.实验目的与要求:1.掌握SQL Server 2005 服务器的安装方法2.了解SQL Server 2005 的环境3.了解数据库及其对象二.实验准备1.了解SQL Server 2005的版本2.了解SQL Server 2005各版本对硬件和软件的需求三.实验要求1.写出SQL SERVER 2005的功能与特点, 使用方法, 应用状况的报告2.完成SQL SERVER 2005的安装、启动、登录。
四.实验内容1.安装SQL Server 2005实验一 SQL Server 2005 的安装和环境介绍●实验指导——安装SQL Server 20051.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2.将 SQL Server 2005 DVD 插入 DVD 驱动器。
如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到 DVD 的根目录然后启动splash.hta。
3.在自动运行的对话框中,单击“运行 SQL Server 安装向导”。
4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。
接受许可协议后即可激活“下一步”按钮。
若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。
如下图:5.在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。
有关组件要求的详细信息,请单击该页底部的“帮助”按钮。
若要开始执行组件更新,请单击“安装”。
更新完成之后若要继续,请单击“完成”。
6.在 SQL Server 安装向导的“欢迎”页上,单击“下一步”以继续安装。
7.在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。
8.在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。
数据库上机实验作业题1.从课程表中查询所有课程信息2.从课程表中查询课程类别的信息。
3.从课程表中查询课程类别,要求消除值相同的那些行。
4.从学生表中查询所有的信息,要求只显示查询结果的前6行数据。
5.查询课程表中课程编号、课程名称、教师、上课时间、限制选课人数和报名人数,要求查询结果显示如下:6.查询课程表的信息,要求给出查询结果为:7.在课程表中查询课程类别为“信息技术”,并且学分为“2”的课程。
8.查询课程表的课程信息、报名人数与限选人数之比。
9.查询课程表中最小的报名人数、最大的报名人数以及平均报名人数。
10.查询课程信息、报名人数与限选人数之比。
要求查询结果按照报名人数升降排序。
11.查询课程表的教师名、课程编号、课程名,要求查询结果按照教师名降序排序,教师名相同时,则按照课程编号升序排序。
12.查询课程编号为“004”、“007”、“013”的课程信息。
13.查询课程编号不为“004”、“007”、“013”的课程编号和课程名称。
14.查询课程名以字母D开始的课程信息。
15.查询课程名以“制作”两字结尾的课程信息。
16.查询姓名第二个字为“宝”的学生信息。
17.查询不姓“刘”的学生信息。
18.查询课程表中教师姓名未定的课程信息。
19.查询报名人数少于15人的课程信息。
20.查询报名人数少于25并且多于15人的课程信息。
21.查询报名人数少于25并且等于15人的课程信息,要求查询结果按照报名人数降序排列。
22.查询报名人数少于25并且少于15人的课程信息,要求查询结果按照报名人数降序排列。
23.查询课程表中“信息技术”类课程信息,并计算平均报名人数。
24.按类别显示课程信息,并计算各类课程的平均报名人数。
25.按课程类别分组统计各类课程的平均报名人数。
26.查询“信息技术”类课程的平均报名人数。
27.查询平均报名人数大于25人的课程类别和每类平均报名人数。
28.查询报名人数大于平均报名人数的课程信息。
实验作业要求:这是数据库的上机实验作业题,请大家任选其中的两个数据库,完成以下任务:(1)绘制E-R图(2)写出所有关系模式(即表)(3)写出创建所有表的SQL语句(包括外键参考语句)注意事项:在作业中要明确标出是哪两个数据库。
数据库设计实例一学生选课数据库某学院有基本实体集:系、教师、学生和课程。
它们各有属性:系:系编号、系名,位置课程:课程号,课程名称,开课学期学生:学生学号,学生姓名、性别、地址教师:员工号,教师姓名,办公室实体间有联系:每个系有一位系主任,有多位教师;一个教师仅在一个系任;每个系开设多门不同课程;每门课程各由一位教师授课;一个学生可以在不同的系选修多门课程。
存在联系有:1对1 :系与系主任(系主任是教师)1对多:系与教师、系与课程,教师与课程多对多:学生与课程数据库设计实例二虚拟主机业务管理有实体:职工(职工号、姓名、性别、出生年月、工作类别、职称、密码、备注)主机(主机序号、操作系统、生产厂商、状态、空间数量、备注)用户单位(用户单位名称、联系人姓名、联系电话)实体之间的关系:职工(销售员)与主机的管理关系是一对多的关系一个销售员可销售多台主机,一台主机只能由售员销售。
职工(运行维护员)与主机的维护关系是多对多关系,一个运行维护员可维护多台主机,一台主机能多个运行维护员维护。
职工(管理员)与主机是一对多关系,一个管理员管理多台主机,一台主机只能由一个管理员管理,主机与用户单位是多对多的,一台主机可分配给多个用户单位,一个用户单位可租用多台主机。
每次租用由一位销售员经手数据库设计实例三再就业信息管理有实体:职工(编号、姓名、性别、出生年月、工作类别、职称、工作年限、专业、学历)企业(企业编号、企业名称、企业性质、联系人姓名、联系电话)岗位(岗位编号、岗位名称、学历要求、职称要求、工种、工作年限)实体之间的关系职工与岗位之间的申请关系是多对多的关系,一个职工可申请多个就职岗位,同样一个岗位能被许多职工申请。
附录2上机实验附录2.1 上机实验11.启动“MicroSoft Office Access 2010”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格上的“MicroSoft Office帮助”,便显出“Access帮助”窗口。
单击该帮助窗口中的“Access 2010入门”标题下的“Access 2010数据库设计基础”,便可选看列出的“数据库设计基础”的那些内容。
2.启动“MicroSoft Office Access 2010”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格上的“MicroSoft Office帮助”,便显出“Access帮助”窗口。
单击该帮助窗口中的“Access 2010入门”标题下的“Access 演示”,显出“演示”的主题列表,单击主题列表中的“演示:认识导航窗格”,便可进行观看。
同理,可查看其他的Access帮助信息。
附录2.2 上机实验21.在用户盘的根目录中(如G:\)创建一个名为“上机实验”文件夹。
2.在“上机实验”文件夹中创建一个名为“学生管理系统.accdb”的数据库。
3.在“学生管理系统”数据库中创建如下的表:295296(1)根据表3-2所示的“学系”表结构,创建一个表名为“学系”的表,主键是“学系代码”。
“学系”表中包含学系代码、学系名称、办公电话、学系简介和学系资料等字段。
表3-2 “学系”表结构(2)根据表3-3所示的“专业”表结构,创建一个表名为“专业”的表,主键是“专业代码”。
“专业”表中包含专业代码、专业名称、学制年限、学系代码和专业简介字段。
表3-3 “专业”表结构(3)根据表3-4所示的“班级”表结构,创建一个表名为“班级”的表,主键是“班级号”。
“班级”表中包含班级号、班级名称、年级、专业代码,班主任和联系电话字段。
表3-4 “班级”表结构(4)根据表3-5所示的“学生”表结构,创建一个表名为“学生”的表,主键是“学号”。
实验一生物信息学数据库和软件的搜索【实验目的】熟练掌握上网搜索生物信息学数据库和软件的方法及技能。
【实验内容】1、搜索生物信息学数据库或者软件数据库是生物信息学的主要内容,各种数据库几乎覆盖了生命科学的各个领域。
核酸序列数据库有GenBank, EMBL, DDB等,蛋白质序列数据库有SWISS-PROT, PIR, OWL, NRL3D, TrEMBL等,蛋白质片段数据库有PROSITE, BLOCKS, PRINTS等,三维结构数据库有PDB, NDB, BioMagResBank, CCSD等,与蛋白质结构有关的数据库还有SCOP, CATH, FSSP, 3D-ALI, DSSP等,与基因组有关的数据库还有ESTdb, OMIM, GDB, GSDB等,文献数据库有Medline, Uncover等。
另外一些公司还开发了商业数据库,如MDL等。
生物信息学数据库覆盖面广,分布分散且格式不统一, 因此一些生物计算中心将多个数据库整合在一起提供综合服务,如EBI的SRS(Sequence Retrieval System)包含了核酸序列库、蛋白质序列库,三维结构库等30多个数据库及CLUSTALW、PROSITESEARCH等强有力的搜索工具,用户可以进行多个数据库的多种查询。
2、搜索生物信息学软件生物信息学软件的主要功能有:分析和处理实验数据和公共数据,加快研究进度,缩短科研时间;提示、指导、替代实验操作,利用对实验数据的分析所得的结论设计下一阶段的实验;寻找、预测新基因及预测其结构、功能;蛋白高级结构预测。
如:核酸序列分析软件BioEdit、DNAClub等;序列相似性搜索BLAST;多重系列比对软件Clustalx;系统进化树的构建软件Phylip、MEGA等;PCR 引物设计软件Primer premier6.0、oligo6.0等;蛋白质二级、三级结构预测及三维分子浏览工具等等。
【作业】1、搜索生物信息学数据库或者软件。
1《实验一 认识DBMS 》在SQL Server 2005中完成以下操作:(1) 建立SC 数据库,数据库命名:SC_姓名拼音+学号后三位,如SC_xiebing131;(2) 在其中建立Student 表、Course 表和SC 表,表结构如下,自己选择各属性的数据类型;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 为主码,并且Sname 取值也唯一 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 为主码,并且Cname 取值也唯一选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码(3) 参照教材在各表中输入一定的记录,在student 表中输入一条自己的记录;(4) 进行表结构的修改和记录的修改、删除操作;(5) 验证教材P45基本关系具有的6个性质;(6) 分离数据库,保存数据库文件,以后上机要带上。
《实验二数据定义》实验内容:(1) 数据库的定义与删除(2)基本表的创建、修改及删除;(3) 索引的创建和删除;(4) 使用SQL 对数据进行完整性控制(实体完整性、参照完整性);(一)使用命令行方式建立SPJ 数据库(1)用SQL 语言建立SPJ 数据库,数据库命名:SPJ-姓名拼音+学号后三位,如SPJ-liyan112;(2)用SQL 语言在其中建立S 表、P 表、J 表和SPJ 表(要求进行完整性定义),表结构如下;厂家 S (SNO ,SNAME ,STA TUS ,CITY ),其中STA TUS (状态)为整型,其他均为字符型产品 P (PNO ,PNAME ,COLOR ,WEIGHT ),其中WEIGHT (重量)为浮点型,其他均为字符型工程 J (JNO ,JNAME ,CITY ),其中各属性均为字符型供应 SPJ (SNO ,PNO ,JNO ,QTY ),其中QTY (供应量)为整型,其他均为字符型建立数据表的语法格式CREA TE TABLE <表名>(<列名><数据类型>[<列级完整性约束条件> ] [,<列名><数据类型>[<列级完整性约束条件>]] …[,<表级完整性约束条件> ] );(3) 参照教材用SQL 语言分别在4个数据表中输入一定的记录;插入数据的语法格式:INSERTINTO <表名> [(<属性列1>[,<属性列2 >…)]V ALUES (<常量1> [,<常量2>] … )(4) 保存SQL 文件,文件名:SPJ-姓名拼音+学号后三位.sql ,如SPJ-xukai012.sql(二)使用命令行方式建立学生课程数据库(1) 用SQL 语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan ;(2) 用SQL 语言在学生课程数据库中建立3个表,要求进行完整性定义;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 不能为空,值是唯一的,并且Sname 取值也唯一,Sage 自定义约束“大于16” 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 不能为空,值是唯一的,并且Cname 取值也唯一教师关系Teacher(Tno ,Tname ,Department ,Email ,Salary) 其中Tno 不能为空,值是唯一的选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码,Grade 的数据类型为int(3) 修改数据表:✓ 将SC 表中Grade 的数据类型改为f loat ;✓ 在Student 表中增加一个属性Scome 记录学生的入学时间,其数据类型为DATETIME ;✓ 删除Student 表中新增加Scome 属性;✓ 删除表Teacher 表中的Email 属性;✓ 删除Student 表中对Sname 属性创建的Unique 约束。
实验环境:Microsoft SQL Server 2000或Microsoft SQL Server 2005实验目的:◆熟练使用SQL定义子语言、操纵子语言命令语句;◆掌握关系模型上的完整性约束机制;◆掌握一定的数据库系统管理技术。
实验要求:◆完成所有上机题(选做“三、数据库系统管理实验”),实验课结束时上交实验报告及相关数据文件!一、SQL数据库语言操作实验1、SQL定义子语言实验1-1 利用SQL语句创建、修改、删除数据库。
创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。
其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。
修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最大为25MB,以2MB速度增长。
实验指导:打开Microsoft SQL Server 2000的“查询分析器”,输入以下代码:Create Database EmployeeOn Primary( Name=Empdat1,Filename=’d:\你的学号\data\Empdat1.mdf ’,Size=10MB,MaxSize=50MB,FileGrowth=5MB)( Name=Empdat2,Filename=’d:\你的学号\data\Empdat2.ndf ’,Size=5MB,MaxSize=25MB,FileGrowth=2MB)Log On( Name=Emplog,Filename=’d:\你的学号\data\Emplog.ldf ’,Size=5MB,MaxSize=25MB,FileGrowth=5%)按“Ctrl+F5”执行语句,或点击快捷图标栏的“√”图标执行之,完成数据库的创建附:增加、修改、删除数据或日志文件用以下命令:ALTER DATABASE 数据库名ADD FILE <filespec>[,…n]| MODIFY FILE <fiespec>| REMOVE FILE逻辑文件名| ADD LOG FILE<filespec>[,…n]| MODIFY NAME=新数据库名<filespec>::=( NAME=逻辑文件名[,NEWNAME=新逻辑文件名][,FILENAME=‘OS文件的路径及名字’][,SIZE=文件的初始大小][,MAXSIZE=最大的文件尺寸][,FILEGROWTH=文件大小增量])1-2 利用SQL创建人员表person、月薪表salary及部门表dept。
数据库上机实验五篇范文第一篇:数据库上机实验创建数据表与数据输入Part I.使用SQL Server Management Studio创建数据表和输入数据 1.在SQL Server Management Studio中创建数据表 P69 1.(1)-(6)2.为数据表输入数据 P76 4.(1)-(4)3.数据浏览P771.(1)-(2)2.(1)-(3)Part II.使用SQL语句创建数据表和输入数据 1.使用SQL语句创建数据表 P72.例3-22.使用SQL语句输入数据 P82.例3.8习题:P.105(1)(2)insert 数据操作Insert、Update、DeleteP105 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)Delete Transact-SQL语句基础1 1.将teaching数据库中score 表的studentno列设置为引用表student的外键。
ALTER TABLE Score ADD CONSTRAINT FK_score_student FOREIGN KEY(studentno)REFERENCES student(studentno)2.将teaching数据库中class表的classname创建UNIQUE约束。
ALTER TABLE class ADD CONSTRAINT UQ_class UNIQUE(classname)执行如下插入语句,查看提示信息INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’)3.为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。
数据库实验报告实验1 熟悉SQLSserver2000一.SQL安装1.运行Autorun程序,选择安装项。
2.单击安装组件,进入欢迎界面,单击下一步。
3.选择要安装的计算机,选择“创建新的SQLServer实例,单击下一步。
4.输入个人信息,同意软件许可协议,选择“服务器和客户端工具”5.安装类型选项选择经典安装,单击下一步。
6.设置服务账号对话框,需要输入一个NT网络上的账号以便登录NT网络,设定密码永久有效。
7.在身份验证模式对话框中,选择“Windows身份验证模式”。
8.安装完毕。
二.查询分析器使用1.单击开始---程序---Microsoft SQL Sever---查询分析器SQL查询分析器由文件,编辑,查询,工具,窗口和帮助6项菜单组成。
1.文件菜单中可以连接断开服务器,新建查询。
2.编辑菜单用于清除、查找、替换等编辑窗口。
3.查询窗口可以分析执行命令显示结果4.工具菜单浏览搜索对象管理统计5.窗口菜单显示切换移动窗口三.SQL企业管理器如图,在控制根目录中展开服务器,点击数据库选择新建可以新建数据库。
单击文件名,位置栏可以重命名,更改存放途径。
同理可以删除数据库创建表,删除表等。
实验2 数据定义操作实验内容:1.链接SQL服务器2.打开SQL查询分析器3.利用create database语句在SQL文件夹数据文件夹内创建数据库student4.选定数据库use database_student利用create table 语句在指定数据库中创建表,用学号sno char(10) primary key语句,设定学号为主键。
姓名sname char(20) unique, 年龄参加与计算用短整型年龄sage smallint,5.用alter table语句修改表,加入s_entrance列。
6.同理create table创建表S17.选定数据库use database_student用drop table语句删除表S8.选定数据库,用create unique index +name语句分别创建每列索引。
数据库上机实验报告实验名称:数据库上机实验报告实验目的:通过在数据库环境下进行上机实验,掌握数据库的基本操作和SQL语言的使用。
实验内容:1. 创建数据库首先创建一个数据库,可以使用MySQL、Oracle或其他数据库管理系统的命令行或可视化工具创建。
命名为“example”。
2. 创建表在“example”数据库中创建一个新表,表名为“students”。
定义表结构,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 插入数据向“students”表中插入若干条学生数据,包括学号、姓名、性别、年龄、班级等信息。
4. 查询数据使用SQL语句查询“students”表中的数据,例如查询年龄小于20岁的学生、查询班级为一班的学生等。
5. 更新数据使用SQL语句更新“students”表中的数据,例如将年龄小于18岁的学生的班级改为2班。
6. 删除数据使用SQL语句删除“students”表中的数据,例如删除性别为女的学生、删除班级为三班的学生等。
7. 关闭数据库使用命令或可视化工具关闭数据库连接。
实验步骤:1. 打开MySQL命令行或可视化工具,创建名为“example”的数据库。
2. 通过CREATE TABLE语句在“example”数据库中创建名为“students”的表,并定义表结构。
3. 使用INSERT INTO语句向“students”表中插入学生数据。
4. 使用SELECT语句查询“students”表中的数据。
5. 使用UPDATE语句更新“students”表中的数据。
6. 使用DELETE语句删除“students”表中的数据。
7. 关闭MySQL连接。
实验结果:1. 创建“example”数据库成功。
2. 创建“students”表成功,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 成功插入若干条学生数据。
4. 成功查询“students”表中的数据,符合查询条件的学生数据被正确显示。
在订单数据库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)查询出职务为“职员”或职务为“科长”的女员工的信息。
select employeeNo 员工编号,employeeName 员工姓名,case sexwhen'F'then'女'when'M'then'男'end性别,birthday 出生日期,address 地址,telephone 联系电话,hireDate 雇佣时间,department 所属部门,headShip 职务,salary 薪水from Employeewhere sex like'F'and headShip like'职员'or sex like'F'and headShip like'科长'(6)选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。
select customerNo 客户编号,customerName 客户名称,address 地址from Customerwhere customerNo not between'C20050001'and'C20050004'(7)在表OrderMaster中挑选出销售金额大于等于5000元的订单。
先统计订单主表中的订单金额,使用命令:update OrderMaster set orderSum=sum2from OrderMaster a,(select orderNo,sum(quantity *price) sum2from OrderDetailgroup by orderNo) bwhere a.orderNo=b.orderNoselect*from OrderMasterwhere orderSum>=5000(8)在订单主表中选取订单金额最高的前10%的订单数据。
select top 10 percent*from OrderMasterorder by orderSum desc(9)计算一共销售了几种商品。
select count(*)种类from(select distinct ProductNofrom OrderDetail)a(10)计算OrderDetail表中每种商品的销售数量、平均销售单价和总销售金额,并且依据销售金额有大到小排序输出。
select productNo 商品编号,sum(quantity)销售数量,sum(quantity*price)/sum(quantity)平均销售单价,sum(quantity*price)总销售金额from OrderDetailgroup by productNoorder by sum(quantity*price)desc(11)按客户编号统计每个客户2008年2月的订单总金额。
select a.customerNo 客户编号,orderDate 订单日期,sum(orderSum)总金额from OrderMaster a,Customer bwhere a.customerNo=b.customerNo and year(orderDate)='2008'andmonth(orderDate)='2'group by a.customerNo,orderDate(12)统计至少销售了10件以上的商品编号和销售数量。
select productNo 商品编号,sum(quantity)销售数量from OrderDetailgroup by productNohaving sum(quantity)>=10order by sum(quantity)desc(13)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资。
select count(*)员工人数,avg(salary)平均工资from Employeewhere department='业务科'and year(birthday)='1973'or year(birthday)='1967'(14)实验问题①给出SQL语句实现分组聚合操作的执行过程。
答:1,首先执行FROM语句,查找到各表数据2,其次执行WHERE语句,对数据进行筛选以及表与表的连接3,然后执行GROUP BY语句,将数据划分组4,使用聚集函数进行计算5,使用HA VING语句进行筛选分组②WHERE和HA VING子句都是用于指定查询条件的,请给出你对这两个子句的理解,用实例说明。
答:WHERE子句:作用于整个查询对象,对元组进行过滤。
HA VING子句:作用于分组,对分组内部进行过滤。
必须和GROUP BY配合使用。
举例:WHERE:(1) 查询所有财务部门的员工信息。
SELECT *FROM employeeWHERE department='财务科'HA VING:查询最高分在80以上的每个同学的平均分和最高分SELECT studentNo,avg(score) ,max(score)FROM ScoreGROUP BY studentNoHA VING max(score)>=80(按studentNo分好了组,having在分组内部过滤)③在分组聚集操作中,为什么在查询列中,除了集聚函数运算,其它表达式必须包含在GROUP BY子句中。
答:如果查询列除集聚函数外的表达式不包含在GROUP BY子句中,则聚合没有意义,例如查询客户号,订单号,订单总额。
只按客户号分组的话,语义变得不明确,因为一个客户可能有多张订单,按客户号分组但是订单总额不知道分配到那张订单去。
④分析条件BETWEEN ... AND、AND、OR等关键字的使用方法。
答:BETWEEN ... AND是介于两个值之间的时候的查询条件;AND 连接两个条件,同时成立;OR 连接两个条件,一方成立即可。
⑤请总结SQL语句中的单表查询语句的使用方法。
答:⒈查询所有列SELECT * FROM [表名]2.查询指定列SELECT [字段列表] FROM [表名]3. 消除重复元组:SELECT Distinct [字段列表] FROM [表名]4.查询经过计算的列SELECT 【字段及字段表达式】 FROM 【表名】5. 指定查询结果的查询SELECT TOP n [PERCENT] 【字段列表】 FROM 【表名】6.给属性取别名①:SELECT 【字段名】1 as ''A'' FROM 【表名】②:SELECT "A"=字段名1 FROM 【表名】③:SELECT 字段名1 "A" FROM 【表名】7.选择查询SELECT 【字段名列表】 FROM 【表名】 WHERE 【条件表达式】条件表达式运算符:比较运算:=,<,<=,>,>=,!<,!>,!=,<>逻辑查询:or,AND,not范围查询:between… AND,not between …AND集合查询:IN,not IN字符匹配查询:ike,not LIKE空值查询:is null,is not null8.排序查询SELECT 【字段名1】,【字段名2】 FROM 【表名】WHERE 【条件表达式】ORDER BY 【字段表达式1】,【字段表达式2】 [ASC][DESC]9.分组查询①SELECT 字段名列表 FROM 表名 [WHERE 条件表达式]GROUP BY 字段名②SELECT 字段名列表 FROM 表名 [WHERE条件表达式] GROUP BY 字段名 HAVING 筛选表达式10.聚合查询SELECT count([ALL| DISTINCT]{*|字段名列表}) FROM 表名[WHERE 条件表达式]SELECT sum| avg| max| min ([ALL| DISTINCT]<字段名列表>)FROM 表名[WHERE 条件表达式]。