配色: 字号:
mis上机(1130)参考解
2013-01-29 | 阅:  转:  |  分享 
  
《管理信息系统》上机(1130)

数据库的设计与实施

实验环境:个人计算机,WindowsXP操作系统,VisualFoxPro6.0数据库管理软件。

SQL简介:结构化查询语言(StructuredQueryLanguage),简称SQL,由命令、子句、运算符和函数等基本元素构成,通过这些元素组成语句对数据库进行操作。其功能包括数据定义、操纵、查询、控制、管理等方面,是一个应用范围很广、功能极强的关系数据库语言。现已成为关系数据库的标准语言。

实验内容:

1、设置适当文件夹为默认目录。

2、创建“学籍管理”数据库。

3、SQL表结构数据定义的命令关键字是createtable。

1)在VFP命令窗口中输入如下SQL命令,创建“学生情况”数据库表,并观察效果。

createtable学生情况(学号c(6)primarykey,姓名c(8),入学成绩n(5,1)check(入学成绩>=0and入学成绩<=600)error“入学成绩:0——600”)

注释:c表示字符型,括号里数字是数据宽度,“学号”是主键,用primarykey说明,用check为“入学成绩”说明有效性规则,用error说明了出错提示信息。

2)在VFP命令窗口中输入如下SQL命令,建立“学生成绩”数据库表。

createtable学生成绩(学号c(6),姓名c(8),语文n(3,0),数学n(3,0),总分n(5,1)default100,foreignkey学号tag学号references学生情况)

注释:n表示数值型,括号里第一个数是数据宽度,第二个数是小数位数。用default为“总分”属性值说明了默认值(100),用“foreignkey学号”在该表的“学号”属性上建立了一个普通索引,同时说明该属性是联接属性,通过引用“学生情况”表的主键“学号”(学号tag学号references学生情况)与“学生情况”表建立联系。

4、SQL表结构数据更新命令关键字是altertable

1)在VFP命令窗口中输入如下SQL命令,为“学生情况”表增加一个“性别”属性。

altertable学生情况add性别c(2)check性别=”男”or性别=”女”error“性别只能为男或女”

2)在VFP命令窗口中输入如下SQL命令,将“学生成绩”表的“总分”属性的宽度由原来的5改为6。

altertable学生成绩alter总分n(6,1)

3)在VFP命令窗口中输入如下SQL命令,修改“学生情况”表的“入学成绩”的有效性规则为200分到600分。

altertable学生情况alter入学成绩setcheck(入学成绩>=200and入学成绩<=600)error“入学成绩:200——600”

4)在VFP命令窗口中输入如下SQL命令,删除“学生情况”表的“入学成绩”的有效性规则。

altertable学生情况alter入学成绩dropcheck

5)在VFP命令窗口中输入如下SQL命令,将“学生成绩”表的“语文”属性名改为“英语”。

altertable学生成绩renamecolumn语文to英语

6)在VFP命令窗口中输入如下SQL命令,删除“学生成绩”表中“英语”属性。

altertable学生成绩dropcolumn英语

7)在VFP命令窗口中输入如下SQL命令,将“学生成绩”表的“姓名”定义为侯选索引(侯选键),索引名是xm。

altertable学生成绩addunique姓名tagxm

8)在VFP命令窗口中输入如下SQL命令,删除“学生成绩”表的侯选索引xm。

altertable学生成绩dropuniquetagxm

5、创建“图书管理”数据库,并用SQL的CREATETABLE命令在该数据库中创建如下3个表结构(提示:日期型数据类型符号是D)。

























Createtablebook(索书号c(10),书名c(18),作者c(10),图书登记号c(10),出版社c(10),价格n(10,2))

6、试用SQL的ALTERTABLE命令对以上3个表做如下修改:

1)将book表的出版社字段的宽度更新为18;

Altertablebookalter出版社c(18)

2)设置book表的价格字段的有效规则是:价格大于0;

Altertablebookalter价格setcheck(价格>0)

3)在borrows表中,创建以借书证号为索引表达式,索引名为jszh的主索引;

Altertableborrowsaddprimarykey借书证号tagjszh

4)为loans表增加一个“超期罚款”字段,数据类型为数值型,宽度为5,小数位数为1。

Altertableloansadd超期罚款n(5,1)

7、SQL数据插入操作命令是:

INSERTINTO数据表字段名列表VALUES(数据列表)

功能:将新记录插入指定表中,分别用数据列表中的常量对字段名列表中的字段赋值。若省略字段名列表,则新插入的记录必须在每个字段上均有值。

试用此命令分别给3个表添加如下记录。







































Insertintoloansvalue(“02001”,”T00201”,{^2011-3-20},0.0)

8、SQL表记录更新命令是:

UPDATE数据表SET字段名=表达式WHERE条件表达式

功能:对表中的一条或多条记录的某些字段值进行修改。

试用此命令对以上3表做如下更新:

1)对borrows表中系名字段值做如下替换:将所有“信息系”替换为“信管系”;

Updateborrowsset系名=”信管系”where系名=”信息系”

2)将book表中所有科学出版社出版图书的价格字段值增加2;

Updatebookset价格=价格+2where出版社=”科学”

3)假设每本书借期为60天,超过1天罚款1角,试计算并填充loans表中超期罚款字段值。(提示:VFP的date()函数返回当前系统日期。)

Updateloansset超期罚款=0.1(date()-借书日期-60)wheredate()-借书日期>60

9、删除数据表的SQL命令是:droptable表名,试用此命令删除“学籍管理”数据库中的2个表。

10、SQL查询

简单查询命令语句:

SELECT字段表达式列表FROM表列表WHERE条件表达式

功能:根据WHERE子句的条件表达式,从FROM子句指定的表中找出满足条件的记录,再按照SELECT子句中的目标字段表达式,选出记录中的属性值形成查询结果表。

1)从book表中查询图书信息。

selectfrombook

注:其中SELECT子句中的表示表中所有列。

2)查询所有学生的借书证号和姓名。

Select借书证号,姓名fromborrows

3)查询借书日期在2011年3月20日到2011年5月1日之间(含)的借书信息。

selectfromloanswhere借书日期between{^2011-3-20}and{^2011-5-1}

注:SQL比较运算符有:

算术运算符:>>==<<=<>(不等于)

(not)betweenand:判断值是否在指定值之间。

(not)like:进行模式匹配,表达式中可使用通配符,%表示任意字符串,_表示任一字符。

(not)in:判断值是否在指定列表集合中。

4)查询最便宜图书价格。

Selectmin(价格)frombook

注:SQL常用统计函数如下:

Avg:用来计算指定字段中的值的平均数。

Count:用来计算所选择记录的个数。

Sum:用来计算指定字段中值的总和。

Max:用来计算指定字段中的最大值。

Min:用来计算指定字段中的最小值。

5)统计图书的总数。

Selectcount()frombook

6)查询图书名以“教程”结束的图书名和出版社。

select书名,出版社frombookwhere书名like“%教程”

7)查询所有计算机系学生的借书证号和姓名。

select借书证号,姓名fromborrowswhere系名=”计算机系”

8)查询借书证号为“01001”的学生借书册数。

Selectcount()fromloanswhere借书证号=”01001”

9)查询科学出版社出版图书的平均价格。

selectavg(价格)frombookwhere出版社=”科学”

10)查询图书登记号为“T00201”的图书超期罚款总额。

selectsum(超期罚款)fromloanswhere图书登记号=”T00201”

11)查询“信管系”所有姓“田”同学的借书证号。

select借书证号fromborrowswhere系名=”信管系”and姓名like”田%”



献花(0)
+1
(本文系等你在交大首藏)