SQL数据库实训示例

SQL数据库实训示例
SQL数据库实训示例

附录:

SQL数据库实训示例--------客房管理系统设计

●本系统要求实现以下主要功能:

1.数据录入功能

在本系统中提供客人信息登记功能。可以录入客人的姓名、性别、年龄、身份证号码、家庭住址、工作单位、来自地的地名、入住时间、预计入住天数、客房类别、客房号、离店时间以及缴纳押金金额等信息。在客人退房时,系统根据输入的离店时间及客房单价自动计算客人住宿费金额。

2.数据查询功能

系统需要提供以下查询功能:

(1)查某类客房的入住情况及空房情况,显示所有该类客房空房数目和客房号。

(2)根据客人姓名、来自地的地名、工作单位或家庭住址等信息查询客人信息;根据客房号查询入住客人的信息。

(3)查询某个客人住宿费用情况,显示客人缴纳押金金额、实际入住天数、客房价格、实际住宿费、住宿费差额及余额等信息。

(4)查询所有入住时间达到或超过预计入住天数的客人。

3.数据统计功能

(1)统计一段时间内各类客房的入住情况。

(2)统计全年各月份的客房收入。

(3)统计一段时间内各类客房的入住率。

●系统的实现

1.数据库概念设计

数据库的概念设计就是画出E-R图。

分析前面的系统功能要求,需要一个表来存储和管理客人信息,使系统能够接受客人入住时输入的各项数据,以实现数据录入、查询或统计客人信息等功能。客人是本系统的第一个实体。

为了能实现查询和统计客房入住情况等功能,必须有一个表来存储和管理所有客房的信息。客房是本系统的第二个实体。

客房价格是以客房的类型来制定的。需要建立一个表来记录各种客房类型的信息。它主要为各种查询和统计功能提供客房价格数据。客房类型是第3个实体。

据此可以绘出客房管理系统数据库的E-R图如下:

2.数据库逻辑设计

将数据库的概念模型转换为关系模型:

实体转换成的关系模式有:

客人(序号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来自地的地名,入住时间,预计入住天数,离店时间,押金金额,住宿费)客房(客房号,客房状态,客房类型编号)

客房类型(客房类型编号,客房类型名称,该类型客房价格)

由联系转换成的关系模式有:

登记(序号,客房号)

因为客房与客人是一比多联系,所以可以取消登记这个实体,在客人实体中添加客房号属性。

各关系模式为:

客人(序号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来

自地的地名,入住时间,预计入住天数,离店时间,押金金额,住宿费,客房号)客房(客房号,客房状态,客房类型编号,序号)

客房类型(客房类型编号,客房类型名称,该类型客房价格)

带下划线的属性为各关系模式的主码,字体为粗体的属性为各关系模式的外码。

3.数据库与数据表设计

数据库设计是根据系统功能的要求和数据规模规划数据库服务器选型、数据表结构定义、分配数据库服务器端的功能实现以及创建数据库对象。

在SQL数据库中需要建立3个数据表:客人信息数据表、客房信息数据表和客房类型数据表。

(1)数据库与数据表设计

①客人信息数据表定义

根据系统功能要求,客人信息表需要能接受客人登记入住和离店时输入的所有信息,还必须包括客人最终的住宿费金额,因为住宿费金额是统计客房收入的基本数据。

客人信息表的结构定义如表3—1所示。

表1 客人信息表的结构

其中,cId(序号)是表的主键,惟一标识一个入住的客人。设计时定义它为标识列,系统自动地产生连续的永不重复的序号。

rNum(客房号)在客人信息表中是外键,它是客房信息表的主键,惟一标识一个房间。

通过它,系统将引用到客房类型、客房单价等信息。

客人信息表取名为tbClient

②客房信息数据表定义

客房信息表中应该记录每一个客房的信息和状态,系统查询这些信息并决定客人能否入住。每个客房的类型决定了客房的价格,可供客人入住时选择房间及离店时结算住宿费用。

客房数据表的定义如表2所示。

表2客房信息表的结构

其中,rNum(客房号)是该表的主键,惟一标识一个客房房间。它将作为客人信息表的外键,保证客人信息表的参照完整性。

rStats表示客房的状态,设定其值为“N”时,表示客房没有入住客人;值为“F”时,表示客房已经有客人入住;值为“P”时,表示客房被预定。

rType表示客房的类型,它是该表的一个外键,来自客房类型数据表。

cId将记录入住客人的序号,在客房信息表中增加这一列时,虽然增加了数据冗余,但可以在查询房间中入住客人信息时,提高系统的性能。因为客房信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。

客房信息表取名为tblRoom。

③客房类型数据表定义

客房类型主要描述客房的服务标准和收费价格,这些信息如果包含进每个客房的记录中,将会使客房信息表产生较大的数据冗余,当某种类型的客房价格变动时,用户就不得不对客房信息表中的记录逐一进行修改。

客房类型数据表的定义如表3所示。

其中,rType表示客房类型的编号,作为该表的主键,惟一标识某一类客房。它将作为客房信息表的外键,保证客房信息表数据的参照完整性。

客房类型表取名为tblRoomType。

表3 客房类型数据表

(4)根据上面三个数据表的设计,可执行下面的步骤创建数据表

1)打开企业管理器,在本地服务器上创建新的数据库KFGL。

2)创建表tblClient、tblRoom和tblRoomType

注意:一个表用T-SQL语句建立(建表结构用CREATE TABLE语句,输入数据表记录用INSERT INTO TABLE语句),两个表用用企业管理器建立。

(2)数据完整性设计

设计好表的结构后,需要根据实际应用和操作规则为表制定一系列约束和规则,从而达到保证数据完整性原则的目的。

①主键约束、非空值约束

在三个表的设计中已经规定了每个表的主键列、非空列,这些规定都是在实际应用环境中所必需的。比如tblRoom表中定义了房间号rNum为主键,则在表tblRoom中rNum必须是惟一的——一个饭店不可能出现两个房间号码相同的客房;客房类型rType和客房状态rStats不能为空值,因为rType是辨别客人入住客房种类、住宿费用结算的依据,所以不能为空值;rStats是辨别客人能否入住的依据,所以也不能为空值。

②CHECK约束

对于tblClient表,应该建立一个检查约束,即所有客人的离店时间都不可能小于入住时间。

按下列步骤创建这个约束:

1)打开企业管理器,展开服务器,展开“数据库”,展开“KFGL”数据库,单击“表”。

2)用鼠标右键单击“tblClient”表,选择“设计表”,系统将弹出“设计表”对话窗口。

3)用鼠标右键单击此窗口的上方窗格,单击“CHECK约束”,单击“新建”按钮,在“约束表达式”文本框中输入表达式:([cOutTime)=[cInTime])。

4)选择“对INSERT和UPDATE操作强制约束”复选框,单击“关闭”按钮,完成CHECK约束创建操作。

③使用缺省值

可以将三个数据表中所有货币类型的列都定义为缺省值,特别是指定了“非空”约束的列。tblClient表的预住天数cDay的默认值可定义为1,而客人入住时间cInTime的缺省值应该就是添加客人记录的时间(除非是客房预定,在本系统中暂不考虑客房预定),所以可以设定缺省值为“(GETDATE())”。

④惟一约束

除了每个表的主键需定义为惟一性外,对于tblRoomType的客房类型名rName,也应该定义为惟一的名称。因为在系统功能需求中,要求按客房类型对数据进行统计,如果在统计结果中只显示客房类型编号,用户就必须记忆那种类型是什么编号,这样很不直观。所以应按照相关的SQL Sener数据库教材中建立惟一约束的方法进行创建。

⑤外键约束

在数据表设计中已经讨论了各个表的外键,这里以tblClient为例说明创建步骤,tblRoom和tblRoomType表可以按照相同的步骤进行操作。

1)打开企业管理器,展开服务器,展开“数据库”,展开“KFGL”数据库,单击“表”。

2)用鼠标右键单击“tblClient”表,选择“设计表”,系统将弹出“设计表”对话窗口。

3)用鼠标右键单击此窗口的上方窗格,单击“关系”,在“主键表”下拉框中选择“tblRoom”,在“外键表”中选择“tblClient”。

4)在“主键表”和“外键表”下方的窗格中部选择列名“rNum”,表明出tblRoom 表中的主键“rNum”就是tblClient表中的外键。

5)选择“对INSERT和UPDATE操作强制约束”复选框,表明以后对tblClient 表中的rNum所有的添加和更新操作都会检查在tblRoom表中是否存在与此相应的rNum。单击“关闭”按钮,完成创建外键操作。

⑥规则

为了检查tblClient表中输入的身份证号码CPNUM是有效位数、(我国身份证号码有旧的15位数字和18位数字两种),可以创建一个规则绑定到该列;在数据操作时进行检查。规则的定义语句为:

(LEN ((@CardNum)=15)OR(LEN(@CardNum)=18)

创建和绑定的方法及步骤请参见教材中的相关内容。

⑦标识列

在设计客人信息表tblClient时,我们把客人序号cId定义为标识列,使其在添加记录时自动产生序号,并且每个序号惟一地标识一次客人入住信息。

完成数据完整性设计后,录入模拟数据。

4. 关系图的建立

关系是表之间的链接,用一个表中的外健引用另一个表中的主健。关系线的终结点显示一个主键符号一表示主键到外键的关系,或者显示一个无穷符号以表示一对多关系的外键端。

使用SQL Server 7/2000的企业管理器创建关系图,步骤如下:

(1)启动SQL Server企业管理器,并打开“创建数据库关系图向导”窗

口。

(2)根据向导页一步步开始关系图的创建。

例为KFGL数据库中的客人信息数据(tbClient)表、客房信息数据(tbl tblRoom)表和客房类型数据(tbl tblRoomType)表创建关系图。

(1)从“开始”菜单中的SQL Server程序组中启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。

(2)在左边的目录树结构中选择要创建关系图的数据库文件夹,如“kfgl”文件夹,并在右边的对象窗口中选择并打开其中的“关系图”对象;

图1 打开“SQL Server Enterprise Manager”窗口

(3)从“操作”菜单中选择“新建数据库关系图”命令,打开SQL Server 的“创建数据库关系图向导”窗口,如图2所示。

图2 “创建数据库关系图向导”窗口

(4)单击“下一步”按钮,进入“选择要添加的表”页面,如图3所示。

图3 “选择要添加的表”页面

先在左边的“可用的表”列表框中选择要添加的表,如果要系统自动添加选中表的相关表,可以选中列表框下的“自动添加相关的表”复选框,然后单击“添加”按钮。

这时,在右边的“要添加到关系图中的表”列表框中就会出现选中的表。

(5)单击“下一步”按钮,进入“正在完成数据库关系图向导”页面,如图4所示。

图4 “正在完成数据库关系图向导”页面

(6)单击“完成”按钮,完成数据库关系图的添加,此时在SQL Server企业管理器中就出现了刚才所创建的关系图,如图5所示。

图5 客房管理系统的关系图

(7)点击快捷工具栏中的“”保存图标,将刚创建好的关系图保存

起来。

5.简单查询

简单查询就是SELECT-----FROM------WHERE查询

可以参照教材,对于客房管理系统进行简单查询,完成系统的一些功能。

6.复杂查询

复杂查询包括连接查询、嵌套查询、分组查询、有关组函数的查询等。可参照教材,对于客房管理系统进行复杂查询查询,完成系统的一些功能。

7.视图、触发器和存储过程设计

需要确定哪些业务处理和数据处理的功能使用MS SQL Server来实现,哪些数据处理的功能由应用程序实现。下面将讨论系统需要设计并创建的视图、触发器和存储过程。

(1)客人选择客房处理

客人来到饭店入住前要做的第一件事是选择合适的客房,客人将告知饭店服务员自己需要的客房类型,服务员在系统中选择指定的客房类型后系统将显示所有空余的该类型客房,并显示该类型客房价格供客人参考选择。这个处理过程可以通过一个存储过程来实现。

在这个存储过程中,需要的输入参数是客房类型,输出的结果集是所有这种客房类型的空房记录和价格.定义这个存储过程名为SelRoom,定义输入的参数名为RoomType,定义输出的价格参数名为RoomPrice。根据存储过程的创建语法,编写SelRoom的实现代码如下:

在上面的代码中包含了两个SELECT语句,第一个SELECT语句从tblRoom 表中选择了所有客房类型为输入参数指定类型并且客房状态为“空”(N)的客房号,并将所有记录作为结果集返回;第二个SELECT语句从tblRoomType中取得了指定客房类型的价格,作为输出参数RoomType返回。

(2)客人入住登记处理

客人入住登记操作完成后,入住的客房状态应该及时做相应的改变,并记录客人的序号供以后查询。这一功能可以使用触发器来自动进行;因为进行客人入住登记操作是在客人信息表tblClient中添加一条新的记录,所以可以为tblClient设计一个Insert触发器,当tblClient执行Insert操作后自动更改出tblRoom相应客房记录的数据。

定义这个触发器名称为client_insert。其实现代码如下:

(3)客人离店退房处理

客人在离店退房时,服务员输入客人的退房时间,然后要计算出客人的住宿费用,以便给客人结账。同时,系统应该将客人所退客房的状态更改为“空”,以便于再次接待下一位客人入住。这一功能也可以通过一个触发器来实现。为出tblClient表设计一个名为client_update的UPDATE触发器,当系统对tblC1ient 的cOutTime(退房时间)进行UPDATE操作后,将会自动触发它。该触发器将自动取得当前所退客房的单价,并根据客人入住的天数计算出客人的住宿费用,把费用值写入cCost列,最后触发器tblRoom相应客房记录的rStats和cId更新,即将客房状态置为空房,并清除对应于该客人的入住标识信息。

下面是client_update触发器的定义代码;

在上面的代码中首先定义了一个变量@price,然后退过一个右联合直接得到当前客人所住客房的单价。在第二段语句中,使用SQL函数DATEDIFF求得客人入住时间和退房时间之差,求出入住天数,乘以@price变量就得到了客人最终的住宿费用。值得注意的是:UPDATE触发器可以使用inserted表和deleted 表,这里必须使用inserted表,它的coumme才是最新更改的退房时间,如果使用deleted表,将得不到正确的结果。

最后,触发器对tblRoom表中cId为当前客人cId的记录的rStats列和cId 列进行了更新。

(4)客人信息查询处理

在实际应用中,经常会有这样的要求:服务员需要通过客人的部分资料查询客人的全部信息以及客人住在哪一个客房。由于需要通过输入查询条件,才能得到结果集,所以可以设计一个带输入参数的存储过程来实现。定义一个名为spClientInfo的存储过程,该存储过程以客人姓名(@ClientName)、单位(@ClientWork)、家庭住址(@ClientAdd),及来自地的地名(@ClientFrom)等作为输入参数,存储过程返回查询到的结果集。

spClientInfo的定义代码如下:

在上面的代码中,向spClientInfo传入4个参数,依次是:客人姓名、客人工作单位、客人家庭地址和客人来自地的地名。在WHERE子句中使用LIKE,并在参数前、后添加“%”,使得该存储过程具有模糊查询的功能。比如,@ClientName参数中只输入客人的姓,就可以查询到所有该姓氏的客人信息。4个参数可以同时给出,也可以只输入一个参数,但是参数的位置顺序不能改变。

(5)查询客人住宿费用的处理

在本系统的功能需求中要求能够查询客人住宿费用的详细情况,包括客人入住时交付的押金金额、客人住宿天数、客房价格、客人住宿费金额、住宿费与押金差额等信息。实现该功能可以通过一个存储过程,以客人序号为输入参数,输出上面要求的各种信息数值。设计一个名为spClientCost的存储过程,定义代码如下:

在上面代码中,首先定义了4个变量,分别是:@Clientprice、@ClientDays、@ClientCost、@ClientBalance,它们分别表示:客人入住房间的单价、客人住宿的时间、客人的住宿费用和客人所缴纳押金与住宿费用的差额。第一个SELECT 语句起赋值作用,分别把各个表达式的结果赋值给各个变量。第二个SELECT 语句是一个选择,将tblClient表的cDeposit以及前面求得的各个变量值作为存储过程的结果集返回。

(6)查询住宿时间到期的客人

客房管理服务员通常根据客人入住时登记的预住天数收取相应押金,当客人住宿时间达到预住天数时就应该通知客人,以便客人补交押金或退房。系统为管理服务员提供这样的查询功能,可以显示出所有住宿时间达到预住日期的客人信息。完成这个功能只需要在表中选择入住天数大于等于预住天数的记录,而不需要输入参数,所以,可以使用一个视图来实现这一查询功能。

定义视图的名称为vClient_Day,定义代码如下:

代码中使用DATEDIFF函数求得cInTime与当前日期之间的天数,即客人实际住宿天数。所有住宿天数大于或等于预住天数cDay,并且离店时间cOuTime 为NULL的客人记录都将成为结果集中的记录。

(7)客房销售统计

作为一个简单的客房管理系统,应该提供给管理者一定的统计数据。系统中最基本的统计数据就是各种类型客房在一定时何段内的销售收入情况。设计一个存储过程,以管理人员输入的统计起始日期和终止日期作为输入多数,在这段时期内所有类型客房的销售收入、销售次数(客人入住次数)为结果集。这个存储过程名为spRoomSale,两个输入参数分别为@StartDate和@EndDate。设计代码如下:

代码中使用了两个SELECT子查询,分别求得起始日期与终止日期之间、客房类型为当前客房类型的所有住宿费用总和(客房销售收入sale)及客房销售次数salenumo然后这两个值作为新的列与tblRoomType的rType、rName列一起作为结果集。注意BETWEEN的用法。

(8)统计某年份每月的客房销售数据

饭店管理人员常常需要比较一年中各个月份的客房销售收入,并把它制作成表格。实现这一功能可以使用一个存储过程,以输入一个年度作为参数,产生该年度12个月份的销售收入统计。定义该存储过程名为spMonhSum,输入参数为@ThisYear,实现代码如下:

注意上面的代码中如何使用GROUP BY子句来实现统计功能。代码中还使用了日期函数DATEPART和求和函数SUM。

8.数据库的用户与权限管理

前台服务员可进行客人的录入,查询。

经理可进行统计。

9.数据库的备份

对于KFGL数据库进行完全备份。

10.数据的导入与导出

利用SQL Server数据导入与导出的数据转换服务可以实现不同数据源间的数据传输和数据格式的转换。

实现数据的导入与导出有3种方法:

方法1:单击企业管理器常用工具栏上的“运行向导”图标;

再单击“所有任务”、“导入数据”或“导出数据”。

方法2:单击“工具”、“数据转换服务”;

再单击“所有任务”、“导入数据”或“导出数据”。

方法3:在企业管理器右边显示表的区域上按鼠标右键,

再单击“所有任务”、“导入数据”或“导出数据”。

(1)数据的导出服务

将KFGL数据库中的tblclient表转换成EXCEL工作表tblclient.xls。

1)单击“工具”、“数据转换服务”、“导出数据”,再单击“下一步”按钮,

进入如图2—43所示的窗口。

图6 选择数据源的导入/导出入口

2)选择数据源,系统默认SQL Server 2000数据库,选择SQL Server服务器及数据库。

3)单击“下一步”按钮,出现如图2。44所示的窗口,分别输入目的数据类型:MicroSoft Excel 97—2000,目的数据的文件名:tblclient.xls。

图7 选择目的地的DTS导入/导出窗口

4)单击“下一步”按钮,再单击“下一步”按钮,出现如图2—45所示的窗口,选择表[kfgl][dbo][tblclient]。

图8 选择源表和视图的DTS导入/导出窗口

5)单击“下一步”按钮,再单击“下一步”,及“完成”按钮,即可完成一个SQL Server数据库表向Excel工作表的转换。

6)进入Excell,打开工作表tlb.xls查看该工作表。.xls

(2)数据的导入服务

按上述类似的步骤将一个Excel工作表导入到KFGL数据库中,实现数据的

导入服务。

数据库SQL实验题目

实验一数据定义操作 实验目的 1.掌握数据库和表的基础知识 2.掌握使用创建数据库和表的方法 3.掌握数据库和表的修改、查看、删除等基本操作方法 实验内容和要求 一、数据库的创建 在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示: Grademanager数据库参数表 参数参数值参数参数值 存储的数据文件路 径 D:\db\ 存储的日志文件路径D:\db\ 数据文件初始大小5MB 日志文件初始大小2MB 数据文件最大值20MB 日志文件最大值15MB 数据文件增长量原来10% 日志文件增长量2MB 二、表的创建、查看、修改和删除 1.表的创建 在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构 字段名称数据类型长度精度小数位数是否允许 Null值 说明 Sno Char 10 0 0 否学号,主码 Sname Varchar 8 0 0 是姓名 Ssex Char 2 0 0 是性别,取值:男或女 Sbirthday Date 8 0 0 是出生日期 Sdept Char 16 0 0 是系名 Speciality Varchar 20 0 0 是专业名 特别注意: 为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。

图1 设置性别的约束 (2)Course表(课程名称表)的表结构 字段名称数据类型长度精度小数位数是否允许Null值说明 Cno Char 5 0 0 否课程号,主码Cname Varchar 20 0 0 否课程名 (3)SC表(成绩表)的表结构 字段名称数据类 型 长 度 精 度 小数位 数 是否允许Null值说明 Sno Char 10 0 0 否学号,外码 Cno Char 5 0 0 否课程号,外码 Degree Decimal 5 5 1 是成绩,0~100之间 特别注意: ①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100 ②为SC表设置外键Sno和Cno的方法: 右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。按照相同的方法,将属性Sno也设置为外键。

SQL-Server数据库上机实验报告

SQL-Server数据库上机实验报告

《数据库系统原理》上机实验报告 学号:1120131743 姓名:谈兆年 班级:07111301

一、实验目的与要求: ●熟练使用SQL语句 ●掌握关系模型上的完整性约束机制 二、实验内容 1:利用SQL语句创建Employee数据库 CREATE DATABASE Employee; 结果: 2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。 做法:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键P_na Varch10 Not 姓名

me ar Null Sex Char 2 Not Null 性别 Birth date Dateti me Null 出生日期 Prof Varch ar 10 Null 职称 Dept no Char 4 Not Null 部门代码,外键 (参照dept表)表2 salary表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表) Base Dec 5 Null 基本工资Bonu s Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工 资+奖金 Mont h Int 2 Not Null 月份

表3 dept表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 Dept no Char 4 Not Null 部门代码,主键, Dna me Varch ar 10 Not Null 部门名称 程序为: CREATE TABLE dept( deptno CHAR(4) PRIMARY KEY NOT NULL, dname V ARCHAR(10) NOT NULL) CREATE TABLE Person( P_no CHAR(6) PRIMARY KEY Not Null, P_name V ARCHAR(10) Not Null, Sex CHAR(2) Not Null, Birthdate Datetime Null, Prof V ARCHAR(10) Null, Deptno CHAR(4) Not Null, FOREIGN KEY(Deptno) REFERENCES

sql实训任务书

SQL Server课程实训任务书 一、前言: 信息技术是知识经济最重要的支撑技术之一,其核心内容是数据库技术、网络技术和程序设计技术。SQL Server数据库技术产品具有超大容量的数据库存储、高效率的数据查询算法、方便易用的向导和工具、友好亲切的用户接口,大大推动了数据管理、电子商务的迅猛发展。作为当代大学生掌握SQL Server数据库知识无论是以后工作还是做研究都是非常重要的。 二、题目: 某单位欲开发一职工工资信息管理系统。其中部分内容包括:职工数据库ZGSJK,该库中有若干表:职工简表ZGJB,基本工资表JBZGB,奖惩工资表JCGZB,用户表users等。具体内容是: 1、创建200MB的职工数据库ZGSJK,该数据库的主数据文件的逻辑名是ZGSJK4_data,主数据文件是位于D:\MSSQL\data下的ZGSJK4_data.mdf,大小是3MB,最大是5MB,以15%的速度增长,该数据库的日志文件的逻辑名是ZGSJK4_log,日志文件是位于D:\MSSQL\data下的ZGSJK4_log.ldf,大小是50MB,最大是200MB,以10MB的速度增加。 2、增添次要数据文件:ZGSJK_data2,该文件大小是8MB,最大值是10MB,以2MB的速度增长。 3、创建表:职工简表ZGJB,基本工资表JBZGB,奖惩工资表JCGZB。 职工基本信息表ZGJB

奖惩工资表JCGZB 职工扣款明细表KKMX 4、 在ZGJB 中增加级别字段JB ,类 型是 Char ,长度是8,允许为空;在JCGZB 中删除职务字段ZW 。 5、为JBGZB 表插入数据,数据来自ZGJB 表中的BH ,XM 列的所有数据行。更新JBGZB 、JCGZB 表中所有职工的YF 、XJ 和SF ,计算公式为YF=IBGZ+ZWGZ+BT1+BT2,XJ=JL1+JL2-KC1-KC2,SF=XJ+YF 。删除JBZGB 表中JB 为“初级”职工的名单。 6、检索ZGJB 表中的全部信息;检索JBGZB 表中“副处级”职务的职工信息; 7、为相应的表设置约束,保证数据的完整性 8、在职工基本信息表,基本工资表创建视图 9、在职工基本信息表,基本工资表创建存储过程和触发器

sql server实训总结4篇

sql server实训总结4篇 sql server实训总结4篇 sql server实训总结篇一: 为期一周的实训已经结束,从这一周中,有了很多的感悟。从学到和掌握到的东西来说,在书本上学到的东西非常不牢固,然而实训真的让我受益匪浅! 实训第一天到教室时,看到老师给我们讲试训的内容与要求,然后告诉我们一些要完成的任务与作业,然后根据试训的内容与要求授课,让我们从实践中去体会所学的知识。说实话,对于SQL Server 数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?有一种何去何从的感觉!但随着老师的教课和讲解,以及和同学的讨论,再结合自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。 在这次的google订餐系统的设计过程中,我们根据该google订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二是角色的管理,分为管理员,订餐用户和餐馆;第三就是用编程语言建立管理菜单。所以试训的内容是从数据库和数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与删除表的操作。

我们以SQL Server数据库为基础,建立一个google订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。讲了数据库的操作,增删改查。使我们掌握了insert into,deleted from,update set,以及selet*from语句的的相关知识和运用。其中还学到了分页查询以及多表查询。 从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。 这次实训,不仅让我们学到了许多有关数据库的知识,老师也给我们讲了很多社会现状和就业情况,让我们不同的角度了解这个专业的就业趋势。让我们在今后的学习中更有动力的充实自己,曾加自己的知识面和锻炼自己各方面能力。 sql server实训总结 篇二:

《数据库及SQL Server》项目实训题

《数据库及SQL Server》项目实训题 一、学生成绩管理系统数据库 要求: 1、设计并创建数据库(),保存与学生及成绩有关的信息,包括:学生基本信息,课程基本信息,学生成绩信息等,设置各表的完整性约束条件(如主键、外键等)。录入以上信息。 2、创建存储过程(),根据输入学号统计并显示该生成绩信息,包括总分、平均分、不及格门数等。 3、创建存储过程(),根据输入课程名称统计并显示该课程的考试信息,包括考试人数、最高分、最低分、平均成绩等。 4、创建函数(),根据学号和课程名得出该生该门课的名次。 二、图书管理系统数据库 要求: 1、设计并创建数据库(),保存与图书管理有关信息,包括:图书信息,读者信息,借阅信息等,设置各表的完整性约束条件(如主键、外键等)。录入以上信息。 2、创建存储过程(),根据输入读者号查询统计该读者的借阅信息,包括总借本数、未还本数、未还书的图书信息和借阅日期等。 3、创建存储过程(),根据输入书号查询该图书的借阅信息,包括借阅者信息和借还日期,并统计该书的借阅人次数、总借阅天数等。 4、创建触发器(),当借书(添加借阅记录)时,查询该书是否借出未还,如已借出则不能添加借阅记录,如未借出则正常添加。(提示:可创建替代触发器) 三、职工工资系统数据库 已知某公司工资计算方法为: 实发工资=级别工资+(本月加班天数-缺勤天数)/本月全勤天数×级别工资 如:张明的级别为部长,部长工资是5000元,2014年11月全勤天数为20天,张明加班2天,缺勤1天,则张明2014年11月的工资是:5000+(2-1)/20*5000=5250元 要求: 1、设计并创建数据库(),用于保存与职工工资有关的信息,设置各表的完整性约束条 件(如主键、外键等)。录入职工基本信息、级别工资信息、每月的职工加班天数和缺勤天数。 2、创建视图(),包括以下信息:年月、职工工号、姓名、级别、加班天数、缺勤天数、 实发工资。试设计各种条件查询该视图。 3、创建函数(),根据年月和职工工号计算出该职工该月的工资。 4、创建存储过程(),根据输入的年月计算出该月所有职工的工资,保存并显示。(参考提示:先得到该月全勤天数) 四、超市售货系统数据库 要求: 1、一连锁超市拥有若干分部,设计并创建数据库(),保存与超市售货有关信息,包括:各分部超市的基本信息,商品信息,每天的销售信息等,设置各表的完整性约束条件(如主

SQL实习总结5篇

SQL实习总结5篇 为期一周的实训已经结束,从这一周中,有了很多的感悟。从学到和掌握到的东西来说,在书本上学到的东西非常不牢固,然而实训真的让我受益匪浅。 实训第一天到教室时,看到老师给我们讲试训的内容与要求,然后告诉我们一些要完成的任务与作业,然后根据试训的内容与要求授课,让我们从实践中去体会所学的知识。说实话,对于SQL Server 数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?有一种“何去何从”的感觉。但随着老师的教课和讲解,以及和同学的讨论,再结合自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。 在这次的google订餐系统的设计过程中,我们根据该google订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二是角色的管理,分为管理员,订餐用户和餐馆;第三就是用编程语言建立管理菜单。所以 试训的内容是从数据库和数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操

作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与删除表的操作。我们以SQL Server数据库为基础,建立一个google订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。讲了数据库的操作,增删改查。使我们掌握了insert into,deleted from,update set,以及select*from语句的的相关知识和运用。其中还学到了分页查询以及多表查询。 从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。 这次实训,不仅让我们学到了许多有关数据库的知识,老师也给我们讲了很多社会现状和就业情况,让我们不同的角度了解这个专业

数据库实验四:SQL数据查询

数据库实验四: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个字段,要求结果中既能够反映目前不是责任教师的教 师信息,又能反映目前没有确定责任教师的课程信息。 提示:(22)~(25)分别用内连接、左连接、右连接完成,分析它们的效果。 3、嵌套查询(注意使用ANY、ALL和EXISTS) (26)使用IN运算的简单嵌套查询。 (27)使用NOT IN运算的简单嵌套查询。 (28)使用关系运算(如等于)的简单嵌套查询。 (29)使用ANY或SOME的简单嵌套查询。 (30)使用ALL的简单嵌套查询。 (31)查询院系名称含“计算机”、职称为教授、所负责教程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接 查询完成,分析各自的效率)。 (32)设计两个内外层互相关的嵌套查询。

SQL数据库实训示例

附录: SQL数据库实训示例--------客房管理系统设计 ●本系统要求实现以下主要功能: 1.数据录入功能 在本系统中提供客人信息登记功能。可以录入客人的姓名、性别、年龄、身份证号码、家庭住址、工作单位、来自地的地名、入住时间、预计入住天数、客房类别、客房号、离店时间以及缴纳押金金额等信息。在客人退房时,系统根据输入的离店时间及客房单价自动计算客人住宿费金额。 2.数据查询功能 系统需要提供以下查询功能: (1)查某类客房的入住情况及空房情况,显示所有该类客房空房数目和客房号。 (2)根据客人姓名、来自地的地名、工作单位或家庭住址等信息查询客人信息;根据客房号查询入住客人的信息。 (3)查询某个客人住宿费用情况,显示客人缴纳押金金额、实际入住天数、客房价格、实际住宿费、住宿费差额及余额等信息。 (4)查询所有入住时间达到或超过预计入住天数的客人。 3.数据统计功能 (1)统计一段时间内各类客房的入住情况。 (2)统计全年各月份的客房收入。 (3)统计一段时间内各类客房的入住率。 ●系统的实现 1.数据库概念设计 数据库的概念设计就是画出E-R图。 分析前面的系统功能要求,需要一个表来存储和管理客人信息,使系统能够接受客人入住时输入的各项数据,以实现数据录入、查询或统计客人信息等功能。客人是本系统的第一个实体。 为了能实现查询和统计客房入住情况等功能,必须有一个表来存储和管理所有客房的信息。客房是本系统的第二个实体。 客房价格是以客房的类型来制定的。需要建立一个表来记录各种客房类型的信息。它主要为各种查询和统计功能提供客房价格数据。客房类型是第3个实体。 据此可以绘出客房管理系统数据库的E-R图如下:

SQL实训总结

SQL实训总结 为期五天的实习,很快就过去了,让我重新了解了丰富多彩的编程生活,感受到了学习的快乐,也感觉到了许许多多的专业问题,亲身体验了窗体与工程制成之后的喜悦之情。 在实训期间,我学到了许多东西,遇到了一些困难,也看到了自己本身存在着许多问题。 这次实训给我带来了危机感和压迫力,让人警醒,更加清楚自己的水平和重量,心里总有种被大石头压着的无力感,但是又凭着一种坚持,奋力的抗争着。所以也得出个结论,那就是——我得好好好好的努力啊。 这已经是我们的第四次实训了,在我进入大学的这两年多里,或多或少的学到了一些专业的东西。 我知道自己很爱玩,于是为了能够提高锻炼自己,我把本次为期一周的VB、SQL制作实训看作是一个通向社会,通向我的工作岗位的“理论与实践相结合的桥梁”。在本周的实训和学习,我一直知道此次实训的目的,也知道我自己的目的,同时也清楚目前自己的不足——缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作,所以我是认真的对待这次实训的。 在这次实训中,我也有许多收获。首先,我体会到了作为一个VB设计师,不会将VB与SQL 结合的痛苦和尴尬;然后,我发现了很多以前都不曾注意到的细节;其次,在实训中,我对作为一名编程者应该学习的内容做了一个更深层次的理解;最后,我还从这次实训中看到了自己很他人的差距,危机意识增强,为了不使这个差距拉大,甚至赶上前面的同学,我会努力的。 本次实训,给我最深刻、最刻骨铭心的感觉就是累,不仅每天白天要一整天对着一台机器,而且到了晚上还要对着这台机器来一个法式的“秉烛夜谈”,可惜的是没有浪漫的事前发生,我也只是对牛谈情而已,不似李白的“举杯邀明月,对影成三人”啊,我就和一部会说话的机器唧唧歪歪。我时常想,以后的日子里,如果我成为了一名编程师也会是这样吗?好像很无聊的样子啊。好动的我一定坐不住吧。可是,我也知道,为了衣食父母,为了生存,为了未来,现在我还没有任何的资格想这个问题,时间不对,而现在最最应该想的是——我要怎样成为一个顶级的编程师。当我终于有能力的时候,才是考虑无不无聊的问题,我还是明白这一点点。 经过多番的努力和辛酸,我成功地完成了这次过程艰辛的实训,而且我从中体会到了一种叫做‘成功的喜悦’的感觉,那种小有成就的兴奋是只有置身其中的人才能体会的,就好比我啊,虽然知道笑到最后的才是老大,但是偶尔阿Q一下来调节生活乐趣也是的一项很必要的事情吧。 总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中走出来,面对现实,为我将来走上社会打下了扎实的基础,铺了一条五光十色的大马路。而且,我也体会到了前人总结出的许多的实践经验,而且一直都知道技术永远是工资的基础,社会是不会要一个一无是处的人的,所以,为了生活庸俗一点,努力一点,多累一点,好好学习技术,将来才有吃大餐的钱呀。 因此,我知道,作为在校电商专业的大专生,我能做的就是好好的吸取知识,努力的提高自己的技术水平和自身的综合素质,提高自己的表达能力、写作能力和合作能力。如此,出了社会,自己有了能力,到时候才会是“吃嘛嘛香”,并且很牛逼的是自己选公司,而不是悲惨的等待公司来选。我相信在不久的未来,会有属于我自己的一片天空,而且这片天空会很蓝很蓝,没有黑黑的乌云,只有灿烂的阳光!

数据库提高型实验报告(嵌入式SQL数据库访问)

黄冈师范学院 提高型实验报告 实验课题嵌入式SQL访问数据库(实验类型:□综合性■设计性□应用性) 实验课程数据库系统概论 实验时间2012年5月25日 学生姓名邵旭东 专业班级信息1001班 学号201021240106

一、实验目的和要求 1. 编写嵌入式C程序,编程实现了对“学生课程数据库”的访问和对 Student表中年龄进行更新。 2. 安装SQL Server2000和Visual C++程序。 3、将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序, 使得程序能完成一项复杂的数据处理功能,并提交程序。 二、实验条件 R429三星笔记本电脑一台。 三、实验原理分析

四、实验方案或步骤 1.初始化编译环境 将SQL安装光盘内的DEVTOOLS文件夹复制到SQL的安装目录下(!!默认下为C:\Program Files\Microsoft SQL Server\),执行.\DEVTOOLS\SAMPLES\ESQLC\目录中的UNZIP_ESQLC.EXE文件(!!点击finish,默认解压到当前目录下!!),解压预编译必要的头文件和库文件,然后运行解压出来的批处理文件setenv.bat初始化SQL预编译环境(这项操作实际上设置两个环境变量)。 接下来添加SQL预编译接口,将安装光盘中X86\BINN中的nsqlprep.exe,sqlaiw32.dll,sqlakw.32.dll复制到SQL安装目录(!!默认下为C:\Program Files\Microsoft SQL Server\)中的\MSSQL\Binn\(注:\MSSQL\Binn\改为:\MSSQL\Binn;)目录下,并将C:\Program Files\Microsoft SQL Server\MSSQL\Binn添加到环境变量中(方法是:右击我的电脑,点击我的电脑属性,点击高级,点击环境变量,点击path ,粘贴在‘;’号后)。 SQL设置完了,现在开始设置VC编译环境。进入VC安装目录(默认为C:\Program Files\Microsoft Visual Studio\),运行VC98\Bin目录中的批处理文件VCVARS32.BAT。 运行VC,添加二次编译ESQL程序的头文件和库文件: (1).工具->选项->目录->在Include files中添加SQL安装目录\devtools\include\ (默认为: C:\Program Files\Microsoft SQL Server\devtools\include)将SQL server自带的用于数据库开发的头文件包含到工程环境中。 (2).工具->选项->目录->在Lib files中添加SQL安装目录\devtools\x861ib\(默认为: C:\Program Files\Microsoft SQL Server\devtools\x86lib)将开发用到的包包含到工程中。 2.ESQL程序代码的编写与调试 #include #include EXEC SQL BEGIN DECLARE SECTION; char deptname[20];

SQL_Server实验报告

SQL Server实验报告 学院: 班级: : 学号: 实验1 SQL Server 2005 环境

1、目的与要求 (1)掌握SQL Server Management Studio 对象资源管理器的使用方法; (2)掌握SQL Server Management Studio查询分析器的使用方法;(3)对数据库及其对象有一个基本了解。 2、实验准备 (4)了解SQL Server 2005各种版本安装的软、硬件要求; (5)了解SQL Server 2005支持的身份验证模式; (6)对数据库、表及其他数据库对象有一个基本的了解。 3、实验容 (1)SQL Server 2005 的安装。 检查软、硬件配置是否达到SQL Server 2005的安装要求,熟悉SQL Server 2005的安装方法。 (2)对象资源管理器的使用。 ①进入SQL Server Management Studio。 从“开始”中选择“程序”,再选择“Microsoft SQL Server 2005”单击进入,打开“连接到服务器”窗口,如图1.1所示。 在此窗口中使用系统默认设置连接服务器,单击“连接”,系统显示“SQL Server Management Studio”窗口。

②了解系统数据库和数据库的对象。 在SQL Server 2005安装后,系统生成4个数据库:master、model、msdb和tempdb。 在对象资源管理器中右边显示的是4个系统数据库,如图1.2所示。选择系统数据库master,观察SQL Server 2005对象资源管理器中数据库对象的组织方式。其中,表、视图在“数据库”节点下,储存过程、触发器、函数、类型、默认值、规则等在“可编辑性”中,用户、角色、架构等在“安全性”中。 ③试试不同数据库对象的操作方法。 展开系统数据库“master”,选择“dbo.spt_values”,单击右键。 ④认识表的结构。 展开图1.3 dbo.spt_values表,查看其各列。

sql数据库实训

《数据库》实训 一.数据库设计 根据如下的需求,设计出一个数据库,包括建立数据库表,设置主关键字和参照完整性。 现要建立一个论坛(BBS)网站,要求具有如下的功能: ●能进行用户的注册,只有注册用户才能发帖。用户注册需要填写注册名、密码、性别、出生日期、 国家、省(州)、市、地址、邮箱、爱好、密码提示问题、密码提示问题答案、个人肖像等。 ●用户可分为管理员、版主、普通用户三大类,能根据普通用户的发帖数量建立用户级别。 ●论坛可分为若干个板块(能随意增减),每个板块有一个版主; ●对每一帖子至少应保留如下信息:主题、内容、发帖人、发帖心情图片、发帖时间、人气(点击数)、 回复数、最后回复人、最后回复时间。 ●能记录每个用户的发表的主题量、参与讨论的主题量、登录次数、上次登录时间、IP地址等信息。 ●能设置精华帖子。 ●能记录被删(屏蔽)的帖子。 ●设置论坛内的短信服务(即向指定的用户发送消息)。每个用户有已发信箱、收信箱、待发信箱、 废件箱。(提示:可用一个表来表示,设置几个标志字段) 二.数据库使用 下面的关系模式是根据关系数据模型建立起来的某一仓储公司的数据库的一部分,该公司在多个城市有仓库,各个仓库有若干名职工,由仓库的职工向供应商签发订购单。 仓库(仓库号,城市,面积) 职工(职工号,姓名,性别,仓库号,工资) 供应商(供应商号,供应商名,地址) 订购单(订购单号,职工号,供应商号,订购日期,金额) 注:下面各题中出现的代号(如S03、E001等)分别为对应实体的编号(如供应商号、职工号),在输入样本数据时应包含该代号。“张三”、“上海”等数据同样也应包含在样本数据中。 完成下面各题: 1.根据上述关系模式建立相应的数据库表(必须设置主键和参照完整性)。注意:根据你自己的理解和常识确定各字段的类型和长度。 2.往上述各表中添加适量的样本数据,前三表每表记录不少于5个,订购单表记录不少于15条。 3.用SQL语句完成下列查询:(注意要保存验证通过的语句) (1)查询职工“张三”的工资; (2)查询在“上海”的仓库的信息; (3)查询供应商为公司的供应商信息; (4)查询各员工的工资总额、平均工资、最高工资、最低工资; (5)查询仓库总数和总面积; (6)查询有职工工资超过5000元的仓库个数; (7)查询在各城市的仓库数及其总面积; (8)查询有哪些城市的仓库面积之和大于500平方米(例如:武汉有三个仓库,面积和为850m2); (9)查询各个仓库中工资多于1200元的职工个数; (10)查询向供应商“S03”发过订单的职工号和他所在的仓库号;

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

SQL实训报告

专业:班级:姓名:学号: 指导老师:实训时间:实训地点:网络实验室成绩: 计算机教研室制 ----------------------------------------------------------------------------- 一、实训目标 掌握sql server数据库创建方法,掌握数据表、数据库完整性约束、基本查询语句的使 用、数据更新方法、视图索引的建立、常用数据库对象的创建及使用、sql编程序等多方面 的综合练习,旨在强化训练,真正做到熟练掌握甚至精通,为以后数据库维护、网络管理、 编程打好基础。 二、实训要求 完成实训题目,并将最终结果保存在自己的ftp上(在自己的ftp帐号上建立” wl3091xxsql实训”文件夹,将所有实训结果、脚本文件、数据库、实训报告均保存在此文 件夹下,xx代表自己的学号),所有操作尽量使用查询分析器完成。填写如下实训报告,将 脚本文件复制到相应的短线之间,复制时匹配目标格式。 实训最低要求:查询数据和数据更新要求必须用查询分析器完成,其他可在ssms中完成, 但要求能够生成脚本文件,并能读懂其中所有代码,并可进行简单修改模仿。 三、考核标准 (1)平时实习纪律考勤占10% (2)实训报告 占40% (3)代码文件及数据库文件占40% (4)实习总结 占10% 1.创建数据库 创建一个名称为factory的数据库,脚本文件名:0100.sql,此脚本文件可利用企业管 理器自动生成。 (1)将主数据库文件factory_data.mdf放置在文件夹中,其文件大小自动增长为按5mb 增长。 (2)将事务日志文件factory_log.mdf放置在d:\data文件夹中,其文件大小自动增长为 按1mb增长。 ------------------------------------脚本文件0100.sql-------------- ------------------------------ use [master] go /****** 对象: database [factory] 脚本日期: 11/05/2010 09:41:33 ******/ create database [factory] on primary ( name = nfactory, filename = nd:\data\factory.mdf , size = 3072kb , maxsize = unlimited, filegrowth = 5120kb ) log on ( name = nfactory_log, filename = nd:\data\factory_log.ldf , size = 1024kb , maxsize = 2048gb , filegrowth = 1024kb ) collate chinese_prc_ci_as -------------------------------------------------------------------------------- ----------------------- 2.创建和使用表 脚本文件名:0200.sql,此脚本文件可利用企业管理器自动生成。 (1)建立职工表worker, 其结构为:职工号:int,姓名:char(8),性别:char(2),出生日期:datetime,党员否: bit,参加工作:datetime,部门号:int。其中“职工号”为主键。在worker表中输入如下

关于SQL的实习总结

关于SQL的实习总结 为期一周的实训已经结束,从这一周中,有了很多的感悟。从 学到和掌握到的东西来说,在书本上学到的东西非常不牢固,然而实训真的让我受益匪浅! 实训第一天到教室时,看到老师给我们讲试训的内容与要求, 然后告诉我们一些要完成的任务与作业,然后根据试训的内容与要求授课,让我们从实践中去体会所学的知识。说实话,对于SQL Server 数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?有一种“何去何从”的感觉!但随着老师的教课和讲解,以及和同学的讨论,再结合 自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。 在这次的google订餐系统的设计过程中,我们根据该google 订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二是角色的管理,分为管理员,订餐用 户和餐馆;第三就是用编程语言建立管理菜单。所以试训的内容是从数据库和数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与

删除表的操作。我们以SQL Server数据库为基础,建立一个google 订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。讲了数据库的操作,增删改查。使我们掌握了 into,d from,set,以及select*from语句的的相关知识和运用。其中还学到了分页查询以及多表查询。 从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。 这次实训,不仅让我们学到了许多有关数据库的知识,老师也给我们讲了很多社会现状和就业情况,让我们不同的角度了解这个专业的就业趋势。让我们在今后的学习中更有动力的充实自己,曾加自己的知识面和锻炼自己各方面能力。

SQL实训报告

民办四川天一学院 实训报告 学号: 姓名: 院系: 专业: 教师: 2018年月

实训一SQL数据查询实验 一、实训目的 1.熟练掌握基本查询命令select… from… where语法结构; 2.熟练掌握多表查询命令的设计方法; 3.熟练掌握分组聚合查询应用方式方法; 4.通过观察查询结果, 体会查询语句的实际应用。 二、实训原理和内容 (内容宋体小四号,行距固定值24磅,首行缩进2字符) 实训数据库为学生成绩管理数据库ScoreDB,数据库关系模式如下: Student(studentNo, studentName, sex, birthday, native, nation, classNo) Class(classNo, className, institute, grade, classNum) Course(courseNo, courseName, creditHour, courseHour, priorCourse) Score(studentNo, courseNo, score) 实训内容: 任务1:在学生Student表中查询年龄大于或等于19岁的同学学号、姓名和出生日期。 任务2:在选课Score表中查询成绩在80~90分之间的同学学号、课程号和相应成绩。 任务3:在班级Class表中查询班级名称中含有会计的班级信息。 任务4:在学生Student表中查询籍贯不是“南昌”或“上海”的同学姓名、 1

籍贯和所属班级编号,并按籍贯的降序排序输出。 任务5:查找会计学院全体同学的学号、姓名、籍贯、班级编号和所在班级名称。 任务6:查找选修了课程名称为“计算机原理”的同学学号、姓名。 任务7:查询每个同学的选课门数、平均分和最高分。 任务9:查询平均分在80分以上的每个同学的选课门数、平均分和最高分。 实训要求:设计T_SQL命令,并在SQL Server Management Studio的查询分析器中执行命令,观察并分析结果。 三、实训过程 任务1:在学生Student表中查询年龄大于或等于19岁的同学学号、姓名和出生日期。 任务分析:由任务可知,所需查询的属性都位于一张表student中,因此可以直接进行简单查询,查询条件是... Year(getdate())-year(birthday) 查询语句设计如下: select studentNo ,studentName from student where year(getdate())-year(birthday)>19 and sex='女' 查询结果: 任务2:在选课Score表中查询成绩在80~90分之间的同学学号、课程号和相应成绩。 任务分析:由任务可知,所查询的属性都位于一张表Score中,因此可以直接进行简单查询,查询条件是: 2

SQL数据库实习报告

数据库应用技术实验报告 姓名:王宇超 班级:通信12-1 学号: 20121606010125 院系:电气信息工程学院

一软件介绍 SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。 与Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。 二实验内容 一、数据库的创建、更改和删除 1、利用create database语句,创建一个名为studentback的数据库,该数据库的主文件逻辑名称为studentback_data,物理文件名为studentback.mdf,初始大小为3M,最大尺寸为无限大,增长速度为15%;数据库的日志文件逻辑名称为studentback_log,物理文件名为studentback.ldf,初始大小为2M,最大尺寸为30M,增长速度为2M;要求数据库文件盒日志文件的物理文件都存放在C:\DATA文件夹下。 2、利用sp_renamedb语句,将数据库studentback重命名为studenttest 二、表的创建、表的数据完整性、表的修改和删除 1、在数据库studenttest中,利用create table语句,按下表要求创建表,表名为teacher 2、增加一列,名为sex,类型为varchar(2),取值不能为空 3、删除列prof 4、将列teacherno设为主键

相关文档
最新文档