问题 填空题

第(11)~(12)题使用如下的“教师”表和“学院”表
“教师”表
职工号    姓名 职称 年龄 工资 系号
11020001 肖天海  副教授 35 2000.00 01
11020002 王岩盐 教授 40 3000.00 02
11020003 刘星魂 讲师 25 1500.00 03
11020004 张月新 讲师 30 1500.00 04
11020005 李明玉 教授 34 2000.00 05
11020006 孙民山 教授 47 2100.00 06
11020007 钱无名 教授 49 2200.00 07
“学院”表
系号 系名
01 英语
02 会计
03 工商管理
使用SQL语句求“工商管理”系的所有职工的工资总和。
SELECT 【12】 (工资)FROM 教师;
WHERE系号IN(SELECT 系号 FROM 【13】 WHERE 系名=“工商管理”)

答案

参考答案:【12】SUM
【13】学院

解析:[知识点] 关系数据库标准语言SQL/SQL的数据修改功能
[评析] 本题是通过嵌套查询来完成操作的。内层SELECT查询出系名为“工商管理”的系号,注意此时的FROM后面应跟“学院”库,外层循环通过内层循环的结果查询“教师”库中“工商管理”系的所有职工的工资,而且要求出总和,所以空白处应使用SUM()函数。

解答题
多项选择题

一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据,可以很方便地进行查询和更新。数据库有很多种,如Fox数据库(.dbf)、Access数据库(.mdb)、Informix、Oracle和SQL Server等等,在这里,以Microsoft Access数据库为例来说明ASP是如何访问数据库的。
常用数据库语句如下所示:
1.SELECT语句:命令数据库引擎从数据库里返回信息,作为一组记录。
2.INSERT INTO语句:添加一个或多个记录至一个表。
3.UPDATE语句:创建更新查询来改变基于特定准则的指定表中的字段值。
4.DELETE语句:创建一个删除查询把记录从FROM子句列出并符合WHERE子句的一个或更多的表中清除。
5.EXECUTE语句:用于激活PROCEDURE(过程)
用ASP来做一个通讯录:
1.建立数据库。
用Microsoft Access建立一个名为data.mdb的空数据库,使用设计器创建一个新表。
输入以下几个字段,如表7-1所示。
表7-1 data mdb的宇段和属性
保存为data.mdb文件。
2.连接数据库。
Set conn= (1)
conn.Open"driver=Microsoft Access Driver*.mdb);dbq="&Server.MapPathCdata,mdb")
注意:一个页面中,只要连接一次就可以了,数据库使用完后要及时关闭连接。
conn.Close
Set conn=Nothing
3.添加新记录到数据库。
Set corm = Server. CreateObject("ADODB.Connection")
corm. Open "driver=Microsoft Access Driver (*.mdb);dbq="&Server. MapPath("data.mdb")
usemame = "程序员"
usermail = "xj @ 163.com"
indate = Now()
sq1 = "insert into data (usemame,usermail,indata) values(’"&usemame&"’,’"&usermail&", "’&indate&"’)"
(2)
conn. Close
Set conn= Nothing
4.选择数据库里的记录。
(1)选择所有记录的字段(按记录倒序排序): (3)
(2)选择所有记录的姓名和E-mail字段(不排序):sq1="select username.usermail from data"。
(3)选择姓名为“程序员”的所有记录: (4)
(4)选择使用163信箱的所有记录(按查看次数排序):sq1="select*from data where usermail like’%"@163.com"%’order by view desc"。
(5)选择最新的10个记录:sq1="select top 10*from data order by ID desc"。
SQL语句已经知道了,不过在Web应用时,还得创建一个RecordSet对象得到记录集,才能把从数据库里取出的值应用在网页上,如果现在将所有的记录显示在网页上就使用如下代码:
Set corm =Server. CreateObject("ADODB.Cormection")
conn. Open "driver=Microsofi Access Driver (*.mdb);dbq="&Server. MapPath("data.mdb")
sq1 = "select * from data"
Set rs =Server. CreateObject("ADODB.RecordSet")
rs. Open sql,corm, 1,1
Do While Not rs.Eof
Response. Write "<p>姓名: "& rs("usemame") &" E-mail: "& rs("usermail") &" 查看: "& rs("view") &"次 "& rs("indate") &"加入</p>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
corm. Close
Set conn= Nothing
说明:建立数据库连接:创建rs得到记录集:循环显示记录,rs.Eof表示记录末, rs.MoveNext表示移到下一个记录;最后关闭。
5.修改(更新)数据库记录。
修改记录的E-mail:
Set corm =Server. CreateObject("ADODB.Connection")
corm. Open "driver=- Microsoft Access Driver (*.mdb) ;dbq="&Server. MapPath("data.mdb")
ID=I
usermail = "xj @ 163.com"
sq1 = "update data set usermail=’"&usermail&"’ where ID="&CInt(ID)
eonn. Execute(sq1)
conn. Close
Set conn = Nothing
说明:建立数据库连接;获取记录ID、新E-mail字符串;使用update语句修改记录; conn.Execute来执行;最后关闭。如果使记录的查看值加1,则sq1="update data set view=view+1 where ID="&CMt(ID)
6.删除数据库记录。
删除某一条记录:
Set corm =Server. CreateObject("ADODB.Connection")
conn.Open "driver=Microsoft Access Driver (*.mdb) ;dbq="&Server. MapPath("data.mdb")
ID=1
sql = (5)
corm. Execute(sq1)
corm. Close
Set conn= Nothing