第一篇:SQL命令题答案
1、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
注意:基本操作题为4道SQL题,请将每道题的SQL命令粘贴到SQL1.txt文件,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做相应行为空。
在考生文件夹下完成下列操作:
1、利用SQL SELECT命令将表stock_sl.dbf复制到stock_bk.dbf。
SELECT * FROM stock_sl INTO TABLE stock_bk2、利用SQL INSERT命令插入记录(“600028”,4.36, 4.60, 5500)到stock_bk.dbf表。
INSERT INTO stock_bk VALUES(“600028”,4.36,4.60,5500)
3、利用SQL UPDATE命令将stock_bk.dbf表中“股票代码”为“600007”的股票“现价”改为8.88。
UPDATE stock_bk SET 现价=8.88 WHERE 股票代码=“600007”)
4、利用SQL DELETE命令删除stock_bk.dbf表中“股票代码”为“600000”的股票。
DELETE FROM stock_bk WHERE 股票代码=“600000”
2.98、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.用SQL语句对自由表“教师”完成下列操作:将职称为“教授”的教师新工资一项设置为原工资的120%,其他教师的新工资与原工资相等;插入一条新记录,该教师的信息:姓名“林红”,职称“讲师”,原工资10000,新工资10200,同时将你所使用的SQL语句存储于新建的文本文件teacher.txt中(两条更新语句,一条插入语句,按顺序每条语句占一行)。
UPDATE 教师 SET 新工资=原工资*1.2 WHERE 职称=“教授”
UPDATE 教师 SET 新工资=原工资*1.2 WHERE 职称#“教授”
INSERT INTO 教师 VALUES(“林红”,“讲师”,10000,10200)
3.112、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成如下操作,并将相应的SQL语句存储在文件one.prg中:
1.用SQL INSERT语句插入元组(“p7”,“PN7”,1020)到“零件信息”表(注意不要重复执行插入操作)。
INSERTINTO 零件信息 VALUES(“p7”,“PN7”,1020)
2.用SQL DELETE语句从”零件信息”表中删除单价小于600的所有记录。
DELETE FROM 零件信息 WHERE 单价<600
3.用SQL UPDATE语句将”零件信息”表中零件号为”p4”的零件的单价更改为1090。
UPDATE 零件信息 SET 单价=1090 WHERE 零件号=”p4”
4.120+70、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成下列操作:
1.使用SQL语句创建一个名为“分组情况表”的自由表,“分组情况表”有两个字段:组号和组名,组号占两个字符,组名占10个字符。请将该SQL语句存储在three.TXT中,否则不得分。
CREATE TABLE分组情况表(组号 c(2), 组名 c(10))
2.使用SQL语句插入一个记录到“分组情况表”中,插入的内容是,组号:“01”,组名:“通俗唱法”。请将该SQL语句存储在four.TXT中,否则不得分。
INSERTINTO 分组情况表 VALUES(“01”,“通俗唱法”)
5.244、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下,完成如下操作:
3.使用SQL语句为考生文件夹下的“学院表”增加一个字段“教师人数”(整数型),同时为该字段设置有
1效性规则:教师人数>=0。请将该SQL语句存储在three.TXT文件中,否则不得分。
ALTER table 学院表ADD教师人数 ICHECK教师人数>=0
4.使用SQL语句将考生文件夹下的自由表teacher中教师姓名为Jack的工资修改为8000元。请将该SQL语句存储在four.TXT文件中,否则不得分。
UPDATEteacherSET工资=8000WHERE姓名=“Jack”
6.210+16、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成如下操作:
1.打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp表,然后将“金牌榜”、“获奖牌情况”和“国家”三个自由表加入该数据库中。
3.使用SQL语句为表“金牌榜”增加一个字段“奖牌总数”(整数型),同时为该字段设置有效性规则:奖牌总数>=0。请将该SQL语句存储在文件one.txt中,否则不得分。
ALTER table金牌傍 ADD 奖牌总数iCHECK奖牌总数>=0
4.使用SQL语句更改表“金牌榜”所有记录的“奖牌总数”字段值,该值应为“金牌数”、“银牌数”、“铜牌数”三项之和。请将该SQL语句存储在文件txt.prg中,否则不得分。UPDATE金牌傍 SET奖牌总数=金牌数+银牌数+铜牌数
7.210+
31、一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下,打开DB数据库,完成如下基本操作:
1.给表TABB增加一个字段,字段名为“日期”,数据类型为日期型。
ALTERtabletabbADD日期d
使用SQL Update语句将表TABB中所有记录的字段“日期”的值修改为2005-10-01,并将SQL语句存储到名为TWO.txt的文件中。
UPDATEtabbSET日期={^2005-10-1}
3.表TABA中有重复的记录,用SQL语句将表TABA中的记录复制到另外一个与它具有相同结构的表TABC中,并消除重复的记录(对于重复多次的记录,只复制一条记录的数据)。并将SQL的SELECT语句存储到名为THREE.txt的文件中。
SELECT distinct *FROMtabaINTO TABLE tabc
8.12、二、简单应用(2小题,每题20分,计40分)
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和COURSE2。三个表如下所示:STUDENT2(学号,姓名,年龄,性别,院系编号)
SC(学号,课程号,成绩,备注)
COURSE2(课程号,课程名,先修课号,学分)
用SQL语句查询“计算机软件基础”课程的考试成绩在85分以下(含85分)的学生的全部信息并将结果按学号升序存入NOEX.DBF文件中。(表的结构同STUDENT2,并在其后加入成绩字段)。
SELECT student2.*, 成绩FROM student2,course2,sc WHERE student2.学号=sc.学号 AND course2.课程号=sc.课程号 AND成绩<=85and课程名=”计算机软件基础”ORDER BY student2.学号 INTO TABLE noex
9.41、二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。利用SQL语句查询选修了“C++”课程的学生的全部信息,并将结果按学号升序存放在CPLUS.DBF文件中(表的结构同STUDENT,并在其后加入课程号和课程名字段)。
SELECT student.*,course.课程号,课程名 FROM student,score,course WHERE student.学号
=score.学号 AND score.课程号=course.课程号 AND 课程名=“C++” ORDER BY student.学号 INTO TABLE clus
10.44、二、简单应用(2小题,每题20分,计40分)
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和COURSE2。三个表如下所示:STUDENT2(学号,姓名,年龄,性别,院系编号)
SC(学号,课程号,成绩,备注)
COURSE2(课程号,课程名,先修课号,学分)
用SQL语句查询“数据库”课程的考试成绩在85分以上(含85分)的学生的全部信息并将结果按学号升序存入自由表NINE.DBF文件中(表的结构同STUDENT2,并在其后加入成绩字段)。
SELECT student2.*, 成绩FROM student2,course2,sc WHERE student2.学号=sc.学号 AND course2.课程号=sc.课程号 AND成绩<=85and 课程名=”数据库”ORDER BY student2.学号 INTO TABLE noex
11.50、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.将order_list1表中的全部记录追加到order_list表中,然后用SQL SELECT语句完成查询:按总金额降序列出所有客户的客户号、客户名及其订单号和总金额,并将结果存储到results表中(其中客户号、客户名取自customer表,订单号、总金额取自order_list表)。
Select * fromorder_list1 into table order_list
SELECT b.客户号,客户名,订单号,总金额 from order_list a,customer b where a.客户号=b.客户号 order by 总金额 desc into table results
12.53、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.将 order_detail1表中的全部记录追加到order_detail表中,然后用SQLSELECT语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序)并将结果存储到results表中(其中订单号、订购日期、总金额取自order_list表,器件号、器件名取自order_detail表)。
Select * from order_detail1 into table order_detail
SELECT b.订单号,订购日期,器件号,器件名,总金额 from order_detail a,order_list b where a.订单号=b.订单号 order by b.订单号,总金额 desc into table results
13.56、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.将customer1表中的全部记录追加到customer表中,然后用SQL SELECT语句完成查询:列出目前有订购单的客户信息(即有对应的order_list记录的customer表中的记录),同时要求按客户号升序排序,并将结果存储到results表中(表结构与customer表结构相同)。
SELECT * from customer1 INTO table customer
SELECT * from customer where 客户号 in(SELECT 客户号 from order_list)order by 客户号into table results
14.65、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.根据sdb数据库中的表用SQL SELECT命令查询学生的学号、姓名、课程名和成绩,结果按 “课程名”升序排序,“课程名”相同时按“成绩”降序排序,并将查询结果存储到sclist表中。
SELECT a.学号,姓名,课程名,成绩FROM student2 a,sc b,course2 c WHERE a.学号=b.学号 AND b.课程号=c.课程号 ORDER BY 课程名, 成绩 descinto table sclist
15.74、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.在“商品销售”数据库中,根据“销售表”和“商品表”查询每种商品的商品号、商品名、单价、销售数量和销售金额(商品号、商品名取自商品表,单价和销售数量取自销售表,销售金额=单价*销售数量),结果按销售金额降序排序,并将查询结果存储到see_a表中。
SELECT a.商品号,商品名,b.单价,销售数量,b.单价*销售数量 as 销售金额 FROM 商品表 a,销售表 b WHERE a.商品号=b.商品号 order BY 销售金额 desc into table see_a 16.80、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.用SQL语句完成下列操作:列出所有与“红”颜色零件相关的信息(供应商号,工程号和数量),并将检索结果按数量降序排序存放于表sup_temp中。
SELECT 供应商号,工程号,数量 FROM 零件 a,供应 b WHERE a.零件号=b.零件号 AND 颜色=“红” ORDER BY 数量的 DESCINTO TABLE sup_temp
17.83、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.用SQL语句完成下列操作:检索“田亮”所借图书的书名、作者和价格,结果按价格降序存入booktemp表中。
SELECT书名,作者,价格 FROM book a,borrows b,loans c WHERE a.图书登记号=c.图书登记号 AND b.借书证号=c.借书证号 AND 姓名=“田亮” ORDER BY 价格 DESC INTO TABLE booltemp
18.92、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.用SQL语句完成下列操作:列出“林诗因”持有的所有外币名称(取自rate_exchange表)和持有数量(取自currency_sl表),并将检索结果按持有数量升序排序存储于表rate_temp中,同时将你所使用的SQL语句存储于新建的文本文件rate.txt中。
SELECT外币名称,持有数量 FROM currency_sl a,rate_exchange b WHERE a.外币代码=b.外币代码 AND 姓名=“林诗因” ORDER BY 持有数量 INTO TABLE rate_temp
19.101、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.用SQL语句完成下列操作:查询与项目号“s1”的项目所使用的任意一个零件相同的项目号、项目名、零件号和零件名称(包括项目号s1自身),结果按项目号降序排序,并存放于item_temp.dbf中,同时将你所使用的SQL语句存储于新建的文本文件item.txt中。
SELECT b.项目号,项目名,a.零件号,零件名称 FROM 零件信息 a,使用零件 b,项目信息 c WHERE a.零件号=b.零件号 AND b.项目号=c.项目号 AND b.零件号=any(SELECT 零件号 FROM 零用零件 WHERE 项目号=“s1”)ORDER BY b.项目号 DESC INTO TABLE item_temp
20.104、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
2.使用SQL SELECT语句完成一个汇总查询,结果保存在results.dbf表中,该表含有“姓名”和“人民币价值”两个字段(其中“人民币价值”为每人持有外币的“Rate_exchange.基准价* Currency_sl.持有数量”的合计),结果按“人民币价值”降序排序。
SELECT 姓名,SUM(基准价*持有数量)as 人民币价值 FROM currency_sl a,rate_exchange b WHERE a.外币代码=b.外币代码 GROUP BY 姓名 ORDER BY 人民币价值 INTO TABLE results
21.110、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
2.在考生目录下有表customer(客户)和order(订单),用SQL SELECT语句查询所有客户的订单信息,要求在结果中包括公司名称、订单编号、金额和送货方式四个字段的信息,并先按公司名称升序排序、再按订单编号升序排序,查询结果存放在results.dbf文件中,并要求将完整的SQL SELECT语句保存在SQL.TXT文件中。
SELECT 公司名称,订单编号,金额送货方式 FROM customer a,order b WHERE a.客户编号=b.客户编号 ORDER BY 公司名称,订单编号INTO TABLE results
22.120+
2、二、简单应用(2小题,每题20分,计40分)
在考生目录下完成如下简单应用:
1.用SQL语句完成下列操作:列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存储于表stock_temp中。
SELECT 股票简称,现价,买入价,持有数量 FROM stock_name a,stock_sl b WHERE a.股票代码=b.股票代码 AND 现价>买入价 ORDER BY 持有数量 descINTO table stock_temp
23.120+
5、二、简单应用(2小题,每题20分,计40分)
在考生目录下完成如下简单应用:
1.用SQL语句完成下列操作:将选课在5门课程以上(包括5门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)。
SELECT 学号,avg(成绩)as平均分,count(*)as 选课门数 from ,选课 group by 学号 having 选课门数>=5 order by平均分 desc into table stu_temp
24.120+
8、二、简单应用(2小题,每题20分,计40分)
在考生目录下完成如下简单应用:
1.在SCORE_MANAGER数据库中查询学生的姓名和年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。
SELECT 姓名,2003-YEAR(出生日期)as 年龄 FROMstudent INTO TABLEnew_table
12.在SCORE_MANAGER数据库中查询没有选修任何课程的学生信息,查询结果包括“学号”、“姓名”和“系部”字段,查询结果按学号升序保存在一个新表NEW_TABLE2中。
SELECT 学号,姓名,系部 FROM student WHERE 学号 NOT in(SELECT 学号 FROM score1)order by 学号 INTO TABLE new_table
225.120+
11、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中,表中只有一个字段,字段名为学生人数。
SELECT COUNT(distinct 学号)as 学生人数 FROM score1 INTO TABLE new_table
2.在SCORE_MANAGER数据库中查询没有学生选修的课程,查询结果含“课程名”和“开课单位”字段,结果按课程名升序保存在一个新表NEW_TABLE2中(注意:字段名“开课单位”是在基本操作中根据“开课系部”修改后的字段名)。
SELECT课程名,开课单位 FROM course WHERE 课程号 NOT in(SELECT 课程号 FROM score1)INTO TABLE new_table
226.120+
59、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.使用SQL语句完成下面的操作:根据“国家”和“获奖牌情况”两个表统计每个国家获得的金牌数(“名次”为1表示获得一块金牌)结果包括“国家名称”和“金牌数”两个字段,并且先按“金牌数”降序、再按“国家名称”降序排列存储到表temp中。请将该SQL语句存储在文件three.prg中,否则不得分。
SELECT 国家名称,sum(名次)as 金牌数 FROM 国家 a,获奖牌情况 b WHERE a.国家代码=b.国家代码 GROUP BY 国家名称 ORDER BY 金牌数 desc,国家名称 DESC INTO TABLE temp
27.245、二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成下列操作:
2.使用SQL语句计算每个歌手的最高分、最低分和平均分,并将结果存储到result.dbf表中(包含歌手姓名、最高分、最低分和平均分4个字段),要求结果按平均分降序。
SELECT 歌手姓名,MAX(分数)as 最高分,MIN(分数)as 最低分,AVG(分数)as平均分 FROM 歌手 表 a,评分表 b WHERE a.¸歌手编号=b.歌手编号 GROUP BY 歌手姓名 ORDER BY平均分 DESC INTO TABLE result
28.210+
26、二、简单应用(2小题,每题20分,计40分)
1.用SQL语句查询至少有三门的课程成绩在70分以上(包括70分)的学生姓名,并将结果存入表文件results.dbf,然后将该SQL语句保存在SQL.TXT文件中(只占一行);
SELECT 姓名 FROM 学生 WHERE 学号=any(select 学号 FROM 选课 WHERE 成绩>=70 GROUP BY 学号 HAVING COUNT(*)>=3)INTO TABLE results
第二篇:sql作业题答案
1.检索报名人数大于平均报名人数的课程名称和教师
selectcouname,teacher from course where willnum<(select avg(willnum)from course)2.检索班级号为20000003的学生的学号、姓名、班级代码、班级名称 selectstuno,stuname,student.classno,classname from student join class on class.classno=student.classno wherestudent.classno='20000003' 3.检索学生选课为第1志愿(WILLORDER)的学号、姓名、课程号、课程名称 selectstucou.stuno,stuname,stucou.couno,couname from student join stucou on student.stuno=stucou.stuno join course on stucou.couno=course.couno wherewillorder=1 4.按班级显示学生信息,并计算每班学生人数。显示要求格式如下:
select '班级编码'=student.classno,'班级名称'=classname,'学号'=stuno,'姓名'=stuname,'密码'=pwd from student join class on student.classno=class.classno order by student.classno compute count(student.classno)by student.classno 5.显示“00建筑管理”班级的系部、班级和学生信息,并计算班级人数。要求显示格式如下:
select class.departno as '系部编码',departname as '系部名称',student.classno as '班级编码',classname as '班级名称', student.stuno as '学号',stuname as '姓名',pwd as '选课密码' from student join class on class.classno=student.classno join department on department.departno=class.departno where class.classname='00建筑管理' compute count(student.classno)6.检索陈金菊的个人信息,包括她选修的课程。select student.*,course.*
from student join stucou on student.stuno=stucou.stuno join course on course.couno=stucou.couno where stuname='陈金菊' 7.检索“00建筑管理”班有哪些学生。select student.*,classname from student join class on student.classno=class.classno where classname='00建筑管理' 8.显示计算机应用工程系的学生信息和系别名称,并统计计算机应用工程系有多少学生。select student.*,departname from student join class on student.classno=class.classno join department on department.departno=class.departno where departname='计算机应用工程系' compute count(stuno)
第三篇:Access课堂练习六--SQL命令查询操作--书面练习
Access课堂练习
Access课堂练习六
姓名 学号
SQL命令查询书面练习
已知教师管理系统中的2个表分别为:
教师(教师编号,姓名,性别,部门编号,出生时间,工作时间,职称,基础工资,岗位工资,绩效工资)部门(部门编号,部门名称,担任职务,办公室电话(0571-6018845),业余爱好)
完成下列问题的SQL命令的表示:
1.查询教师表中出所有教师的姓名、性别和职称。
2.查询所有教师的姓名,性别,部门名称,担任职务和职称。3.查询教师表中姓名,性别,工龄和职称。4.查询教师表中姓名,性别,职称和工资总额。5.查询所有教授的姓名,部门名称和担任职务。6.查询55岁及上的教师姓名和性别。
7.查询教师表中工龄在10年到20的教师信息。
8.查询部门名称为“人事处”、“英语系”、“计算机系”的教师信息。9.查询按基础工资排序的教师信息。10.查询按职称分类的平均绩效工资。11.查询业余爱好中含有“运动”的教师信息。
12.查询部门表中办公室电话升级后(0571-86018845)的部门信息。
1.select 姓名,性别,职称 from 教师
2.select 姓名,性别,部门名称,担任职务,职称 from 教师,部门 3.select 姓名,性别,year(date(0))-year(工作时间)as 工龄 from 教师
4.select 姓名,性别,职称,基础工资+岗位工资+绩效工资 as 工资总额from 教师 5.select 姓名,部门名称,担任职务 from 教师,部门where 职称=”教授” 6.select 姓名,性别 from 教师 where year(date(0)-year(出生时间))>=55 浙江大学城市学院
Access课堂练习
浙江大学城市学院
第四篇:经典MSSQL语句和常用SQL语句命令的作用
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL类型包括数据库用户赋权,废除用户访问权限,提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE db1(db1代表数据库表,可自命名)
2、说明:删除数据库
drop database db1(db1代表数据库表,可自命名)
3、说明:备份sql server---创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'---开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表 create table tb1(Id int not null primary key,name varchar,..)(tb1为数据表名,ID为字段,int为数据类型整型,not null为数据是否可为空,Primary Key为主键设置,其中not null,primary key为可选项,字段,数据类型自定义。)
根据已有的表创建新表:
A:create table tab_new like tab_old(使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tb1
6、说明:
增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname add primary key(ID)(设置某字段为主键,ID可自由设置,主键数据不可重复)
说明:
删除主键:Alter table tabname drop primary key(ID)(删除某字段主键)
8、说明:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname as select statement 删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where Id=1(Id=1为条件语句,根据自己情况自定义)
插入:insert into table1(field1,field2)values(value1,value2)删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(field1)as sumvalue from table1平均:select avg(field1)as avgvalue from table1 最大:select max(field1)as maxvalue from table1 最小:select min(field1)as minvalue from table1
11、说明:几个高级查询运算词 A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL类型包括数据库用户赋权,废除用户访问权限,提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE db1(db1代表数据库表,可自命名)
2、说明:删除数据库
drop database db1(db1代表数据库表,可自命名)
3、说明:备份sql server
---创建 备份数据的 device USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
---开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tb1(Id int not null primary key,name varchar,..)(tb1为数据表名,ID为字段,int为数据类型整型,not null为数据是否可为空,Primary Key为主键设置,其中not null,primary key为可选项,字段,数据类型自定义。)
根据已有的表创建新表:
A:create table tab_new like tab_old(使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tb1
6、说明:
增加一个列:Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname add primary key(ID)(设置某字段为主键,ID可自由设置,主键数据不可重复)
说明:
删除主键:Alter table tabname drop primary key(ID)(删除某字段主键)
8、说明:
创建索引:create [unique] index idxname on tabname(col….)删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where Id=1(Id=1为条件语句,根据自己情况自定义)
插入:insert into table1(field1,field2)values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count * as totalcount from table1
求和:select sum(field1)as sumvalue from table1
平均:select avg(field1)as avgvalue from table1
最大:select max(field1)as maxvalue from table1
最小:select min(field1)as minvalue from table1
11、说明:几个高级查询运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL类型包括数据库用户赋权,废除用户访问权限,提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE db1(db1代表数据库表,可自命名)
2、说明:删除数据库
drop database db1(db1代表数据库表,可自命名)
3、说明:备份sql server---创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'---开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tb1(Id int not null primary key,name varchar,..)(tb1为数据表名,ID为字段,int为数据类型整型,not null为数据是否可为空,Primary Key为主键设置,其中not null,primary key为可选项,字段,数据类型自定义。)
根据已有的表创建新表:
A:create table tab_new like tab_old(使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tb1
6、说明:
增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname add primary key(ID)(设置某字段为主键,ID可自由设置,主键数据不可重复)
说明:
删除主键:Alter table tabname drop primary key(ID)(删除某字段主键)
8、说明:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname as select statement 删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where Id=1(Id=1为条件语句,根据自己情况自定义)
插入:insert into table1(field1,field2)values(value1,value2)删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(field1)as sumvalue from table1平均:select avg(field1)as avgvalue from table1 最大:select max(field1)as maxvalue from table1 最小:select min(field1)as minvalue from table1
11、说明:几个高级查询运算词 A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
第五篇:教学管理系统SQL练习答案
现在有一教学管理系统,具体的关系模式如下:
Student(no, name, sex, birthday, class)Teacher(no, name, sex, birthday, prof, depart)Course(cno, cname, tno)Score(no, cno, degree)其中表中包含如下数据: Course表:
Score表:
Student表:
Teacher表:
根据上面描述完成下面问题:
(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。
命te,classint);
令:createtableStudent(noint,namevarchar(14),sexvarchar(2),birthdaydacreatetableTeacher(noint,namevarchar(14),sexvarchar(2),birthdaydate,profvarchar(10),departvarchar(10));createtableCourse(cnovarchar(8),cnamevarchar(14),tnoint);createtableScore(noint,cnovarchar(8),degreeint);
DML 2.给出相应的INSERT语句来完成题中给出数据的插入。
命令:
insertintoStudentvalues(5001,'李勇','男','1987-7-22',95001);insertintoStudentvalues(5002,'刘晨','女','1987-11-15',95002);insertintoStudentvalues(5003,'王敏','女','1987-10-5',95001);insertintoStudentvalues(5004,'李好尚','男','1987-9-25',95003);insertintoStudentvalues(5005,'李军','男','1987-7-17',95004);insertintoStudentvalues(5006,'范新位','女','1987-6-18',95005);insertintoStudentvalues(5007,'张霞东','女','1987-8-29',95006);insertintoStudentvalues(5008,'赵薇','男','1987-6-15',95007);insertintoStudentvalues(5009,'钱民将','女','1987-6-23',95008);insertintoStudentvalues(5010,'孙俪','女','1987-9-24',95002);insertintoStudentvalues(108,'赵里','男','1987-6-15',95007);insertintoStudentvalues(109,'丘处机','男','1987-6-23',95008);insertintoStudentvalues(107,'杨康','男','1987-9-24',95001);
insertintoTeachervalues(1,'李卫','男','1957-11-5','教授','电子工程系');insertintoTeachervalues(2,'刘备','男','1967-10-9','副教授','math');insertintoTeachervalues(3,'关羽','男','1977-9-20','讲师','sc');insertintoTeachervalues(4,'李修','男','1957-6-25','教授','elec');insertintoTeachervalues(5,'诸葛亮','男','1977-6-15','教授','计算机系');insertintoTeachervalues(6,'殷素素','女','1967-1-5','副教授','sc');insertintoTeachervalues(7,'周芷若','女','1947-2-23','教授','sc');insertintoTeachervalues(8,'赵云','男','1980-6-13','副教授','计算机系');insertintoTeachervalues(9,'张敏','女','1985-5-5','助教','sc');insertintoTeachervalues(10,'黄蓉','女','1967-3-22','副教授','sc');insertintoTeachervalues(11,'张三','男','1967-3-22','副教授','sc');
insertintoCoursevalues('3-101','数据库',1);insertintoCoursevalues('5-102','数学',2);insertintoCoursevalues('3-103','信息系统',3);insertintoCoursevalues('3-104','操作系统',4);insertintoCoursevalues('3-105','数据结构',5);insertintoCoursevalues('3-106','数据处理',5);insertintoCoursevalues('4-107','pascal语言',6);insertintoCoursevalues('4-108','C++',7);insertintoCoursevalues('4-109','java',8);insertintoCoursevalues('3-245','数据挖掘',10);insertintoCoursevalues('3-111','软件工程',11);insertintoScorevalues(5001,'3-105',69);insertintoScorevalues(5001,'5-102',55);insertintoScorevalues(5003,'4-108',85);insertintoScorevalues(5004,'3-105',77);insertintoScorevalues(5005,'3-245',100);insertintoScorevalues(5006,'3-105',53);insertintoScorevalues(5003,'4-109',45);insertintoScorevalues(5008,'3-105',98);insertintoScorevalues(5004,'4-109',68);insertintoScorevalues(5010,'3-105',88);insertintoScorevalues(5003,'3-105',98);insertintoScorevalues(5005,'4-109',68);insertintoScorevalues(5002,'3-105',88);insertintoScorevalues(107,'3-105',98);insertintoScorevalues(108,'4-109',68);insertintoScorevalues(109,'3-105',88);insertintoScorevalues(109,'4-109',80);insertintoScorevalues(107,'3-111',88);insertintoScorevalues(5003,'3-111',80);
单表查询
3.以class降序输出student的所有记录(student表全部属性)
命令:select*fromStudentorderbyclassdesc;
4.列出教师所在的单位depart(不重复)。
命令:selectdistinctdepartfromTeacher;
5.列出student表中所有记录的name、sex和class列
命令:selectname,sex,classfromStudent;
6.输出student中不姓王的同学的姓名。
命或
令:selectnamefromStudentexceptselectnamefromStudentwherenamelike'王%';selectnamefromStudentwherenamenotlike'王%';
7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)
命令:selectno,cno,DEGREEfromScorewheredegree=85 ordegree=86 ordegree=88 ordegreebetween 60 and 80;
8.输出班级为95001或性别为‘女’的同学(student表全部属性)
命令:select*fromStudentwhereclass=95001 orsex='女';
9.以cno升序、degree降序输出score的所有记录。(score表全部属性)
命令:select*fromScoreorderbycnoasc,degreedesc;
10.输出男生人数及这些男生分布在多少个班级中
命令:selectCOUNT(*),count(distinctclass)fromStudentwheresex='男';
11.列出存在有85分以上成绩的课程编号。
命令:selectdistinctcnofromScorewheredegree>85;
12.输出95001班级的学生人数
命令:selectCOUNT(*)fromStudentwhereclass=95001;
13.输出‘3-105’号课程的平均分
命令:selectavg(cast(degreeasfloat))fromScorewherecno='3-105';
14.输出student中最大和最小的birthday日期值
命令:selectMAX(birthday),MIN(birthday)fromStudent;
15.显示95001和95004班全体学生的全部个人信息(不包括选课)。(student表全部属性)
命令:select*fromStudentwhereclass=95001 orclass=95004;