各章习题以及答案(7)

2018-11-21 22:29

Order by Math

(5) 从PART(零件表)中删除库存为0的零件记录

DELETE FROM PART WHERE QUTY=0

(6) 请简述INSERT …SELECT 语句与SELECT …INTO语句的区别?

INSERT 语句中的 SELECT 子查询可用于将一个或多个其它的表或视图的值添加到表中。

SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义。

二者区别是INSERT SELECT是将查询结果插入到现有的表中,SELECT INTO 是将查询结果创建为一个新表。

(7) 请使用SELECT …INTO语句将QUATATIONS(报价表)中D_TIME(供货时间)小于10天数据复制到

QUATATIONSBAK表中。 SELECT * FROM QUATATIONS INTO QUATATIONSBAK WHERE D_TIME<10

(8) 请使用INSERT…SELECT语句将QUATATIONS(报价表)中DELIQUTY(供货量)大于100的数据插入到

QUATATIONSBAK表中 INSERT INTO QUATATIONSBAK

(SNO,PNO,PRICE, D_TIME,DELIQUTY) SELECT

SNO,PNO,PRICE, D_TIME,DELIQUTY FROM QUATATIONS WHERE DELIQUTY>100

(9) 请使用SELECT …INTO语句将QUATATIONS(报价表)中D_TIME(供货时间)小于10天数据复制到

#QUATATIONSBAK表中,打开新的连接回话验证能否使用SELECT语句访问#QUATATIONSBAK表。 SELECT * FROM QUATATIONS INTO #QUATATIONSBAK WHERE D_TIME<10

(10) 请使用SELECT …INTO语句将QUATATIONS(报价表)中D_TIME(供货时间)小于10天数据复制到

##QUATATIONSBAK表中,打开新的连接回话验证能否使用SELECT语句访问##QUATATIONSBAK表。 SELECT语句访问#QUATATIONSBAK表。 SELECT * FROM QUATATIONS INTO ##QUATATIONSBAK WHERE D_TIME<10

10. 有如下的三个数据表:科研课题表KYKT、科研情况表KYQK和科研人员表KYRY

KTID(课题编号) 101 102 105 203 207 215 科研课题表KYKT KTNAME(课题名称) KTJF(课题经费)(万元计) CAD 150 CAM 30 CAPP 50 CIMS 300 GT 12 ERP 130

科研情况表KYQK

RYID KTID SBF(设备费) GZL(工作量:日) SYJF(使用经费) 51 101 15 400 80 51 105 5 180 25 52 101 10 400 70 52 203 40 600 200 58 102 30 5 200 67 207 1 90 12 67 215 25 700 130 69 105 4 200 25 69 203 15 600 100 科研人员表KYRY

RYID(人员编号) RYNAME(人员姓名) ZC(职称) SEX(性别) ADDR(地址) 51 ZHANGSAN ENGEENER FEMALE BEIJING 52 LISI PROFESSOMALE TIANJIN R 31

58 67 69 75 WANGWU ZHAOLIU LIUHONG YANGDA DOCTOR MASTER ENGEENER PROFESSOR MALE MALE MALE FEMALE BEIJING SHANGHAI SHANGHAI BEIJING

创建表: CREATE TABLE KYKT (

KTID INT,

KTNAME VARCHAR(10), KTJF INT )

CREATE TABLE KYQK (

RYID INT, KTID INT, SBF INT, GZL INT, SYJF INT )

CREATE TABLE KYRY (

RYID INT, RYNAME VARCHAR(10), ZC VARCHAR(10), SEX VARCHAR(10), ADDR VARCHAR(50) )

按要求写出SQL查询语句

(1)查询课题经费小于100万元的课题编号其名称。 SELECT * FROM KYKT

WHERE KTJF<100

(2)查询能同时参加编号为207和215课题的科研人员编号。 SELECT RYID FROM KYQK AS A

WHERE KTID=207 AND RYID IN (

SELECT RYID FROM KYQK WHERE KTID=205 )

(3)查询科研情况表中所有科研人员的编号。 SELECT RYID FROM KYRY (4)检索52号科研人员的信息。 SELECT * FROM KYRY

WHERE RYID=52

(5)检索101号课题的平均工作量。 SELECT KTID ,AVG(GZL) FROM KYQK

GROUP BY KTID

WHERE KTID=101

(6)检索工作量在200~400日的课题编号、人员编号、及工作量,并按工作量大小排序。 SELECT GZL ,KTID, RYID FROM

WHERE GZL>=200 AND GZL< =400 ORDER BY GZL DESC

32

(7)在科研人员表中追加一个科研者(53,DAIHONG,DOCTOR,MALE,TIANJIN)。 INSERT INTO KYRY (RYID,RYNAME,ZC,SEX,ADDR)

VALUES(53,?DAIHONG?,?DOCTOR,?MALE,?TIANJIN?)

(8)删除51号科研人员的所有科研课题。 DELETE FROM KYQK

WHERE RYID=51

(9)修改203号课题的课题经费为120万元。 UPDATE KYKT

SET KTJF=120 WHERE KTID=203

(10)把52号科研人员的工作量减少10%。 UPDATE KYQK

SET GZL=GZL*(1-0.1) WHERE RYID=52

11. 有以下三个关系:

SALESPERSON(销售人员)

Name Age Salary Abel 63 120,000 Baker 38 42,000 Jones 26 36,000 Murphy 42 50,000 Zenith 59 118,000 Kobad 27 34,000 ORDER(定单) Number CustName SalespersonName Amount 100 Abernathy Construction Zenith 560 200 Abernathy Construction Jones 1800 300 Manchester Lumber Abel 480 400 Amalgamated Housing Abel 2500 500 Abernathy Construction Murphy 6000 600 Tri-city Builders Abel 700 700 Manchester Lumber Jones 150 CUSTOMER(顾客) Name City Industry Type Abernathy Construction Willow B Manchester Lumber Manchester F Tri-city Builders Memphis B Amalgamated Housing Memphis B CREATE TABLE SALESPERSON ( AGE INT,

NAME VARCHAR(10), Salary MONEY )

CREATE TABLE ORDER (

Number INT, CustName VARCHAR(10), SalespersonName VARCHAR(10) Amount INT )

33

CREATE TABLE CUSTOMER (

NAME INT,

CITY VARCHAR(10), Industry VARCHAR(10) )

(1) 显示所有Salespeople的Ages和salary。

SELECT Ages , salary FROM SALESPERSON

(2) 显示所有Salespeople的Ages和salary但是去掉重复的行。

SELECT DISTINCT Ages , salary FROM SALESPERSON

(3) 显示所有三十岁以下的Salespeople。

SELECT *

FROM SALESPERSON WHERE Ages<30

(4) 显示所有的和ABERNATHY CONSTRUCTION有订单的Salespeople。

SELECT Name,Age,Salary FROM SALESPERSON INNER JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName WHERE CustName=? ABERNATHY CONSTRUCTION?

(5) 显示所有的和ABERNATHY CONSTRUCTION没有订单的Salespeople,按工资的升序进行排列。

SELECT Name, salary FROM SALESPERSON WHERE name NOT IN (

SELECT SalespersonName WHERE CustName=? ABERNATHY CONSTRUCTION? )

ORDER BY salary DESC

(6) 计算订单的数量。

SELECT COUNT(Number) FROM ORDER

(7) 计算有订单的客户的数量。

SELECT CustName ,COUNT(Name) FROM CUSTOMER GROUP BY CustName

(8) 计算Salepeople的平均年龄。

SELECT AVG(AGE) FROM SALESPERSON

(9) 显示年龄最大的Salepeople的年龄。

SELECT MAX(AGE) FROM SALESPERSON

(10) 计算每一个Salepeople的订单数。

SELECT Name,COUNT(Number) FROM SALESPERSON LEFT JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName

(11) 计算每一个Salepeople的订单数,结果只包括订单数量在500个以上的。

SELECT Name,COUNT(Number) FROM SALESPERSON LEFT JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName HAVING COUNT(Number)>500

(12) 显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使

用子查询)。

SELECT Name, salary FROM SALESPERSON WHERE Name IN (

SELECT SalespersonName WHERE CustName=? ABERNATHY CONSTRUCTION? )

(13) 显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使

34

用连接)。

SELECT Name,Age,Salary FROM SALESPERSON INNER JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName WHERE CustName=? ABERNATHY CONSTRUCTION?

(14) 显示和在MEMPHIS中的一个客户有订单的Salespeople的年龄(使用子查询)。

SELECT Name,Age,Salary FROM SALESPERSON WHERE Name IN (

SELECT SalespersonName FROM ORDER WHERE CustName IN (

SELECT NAME FROM CUSTOMER WHERE City =? Memphis? ) )

(15) 显示和在MEMPHIS中的一个客户有订单的Salespeople的年龄(使用连接)。

SELECT Name,Age,Salary FROM SALESPERSON INNER JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName INNER JOIN CUSTOMER

ON CUSTOMER. Name= ORDER.CustName WHERE City =? Memphis?

(16) 显示和在MEMPHIS中的所有公司的工业类型和公司所有订单的销售员的年龄。

SELECT Industry Type ,Name,Age,Salary FROM SALESPERSON INNER JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName INNER JOIN CUSTOMER

ON CUSTOMER. Name= ORDER.CustName WHERE City =? Memphis?

(17) 显示有两个或两个以上订单的销售员的姓名。

SELECT Name,COUNT(Number) FROM SALESPERSON LEFT JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName HAVING COUNT(Number)>=2

(18) 显示有两个或两个以上订单的销售员的姓名和年龄。

SELECT Name,Age FROM SALESPERSON WHERE Name IN

SELECT Name,COUNT(Number) FROM SALESPERSON LEFT JOIN ORDER

ON SALESPERSON.Name=ORDER. SalespersonName HAVING COUNT(Number)>=2

(19) 显示所有和客户有订单的销售员的姓名。

SELECT Number, CustName,SalespersonName,mount, Name FROM ORDER

INNER JOIN SALESPERSON

ON ORDER.SalespersonName= SALESPERSON.Name

(20) 写出在CUSTOMER表中添加一条记录的SQL语句。

INSERT INTO CUSTOMER (Name,City,Industry Type) VALUES (?TEST?,? Memphis?,?F?)

(21) 写出在SALESPERSON表中添加一条记录的SQL语句,已知年龄和姓名,工资未知。

INSERT INTO SALESPERSON(Name,Age,Salary) VALUES(?TOM?,29,null)

(22) 写出删除客户ABERNATHY CONSTRUCTION的SQL语句。

DELETE FROM CUSTOMER

35


各章习题以及答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京市属医院医疗合作管理暂行办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: