SQL练习2答案
- 格式:ppt
- 大小:37.50 KB
- 文档页数:7
综合练习(⼆)-习题综合练习(⼆)⼀、⽤SQL语句创建如下三张表:学⽣表(Student)、课程表(Course)和学⽣选课表(SC),三张表结构如下:注:⼀、⼆两题需要将命令放⼊*.sql脚本中,然后使⽤脚本进⾏创建表及数据的录⼊Student表结构Course表结构SC表结构答案:1、Student表CREATE TABLE Student (sno VARCHAR2(7) PRIMARY KEY,sname VARCHAR2 (10) NOT NULL,ssex VARCHAR2 (2) CHECK(ssex=‘男’ OR ssex=‘⼥’),sage NUMBER(2) CHECK(sage>=15 AND sage<=45),sdept VARCHAR2 (20) DEFAULT ‘计算机系’)2、Course表CREATE TABLE Course(cno VARCHAR2 (10) NOT NULL,cname VARCHAR2 (20) NOT NULL,ccredit NUMBER(2) CHECK(ccredit>0),semester NUMBER(2) CHECK(semester>0),period NUMBER(3) CHECK(period>0),CONTRAINT course_cno_pk PRIMARY KEY(cno))3、SC表CREATE TABLE SC(sno char(7) NOT NULL,cno char(10) NOT NULL,grade tinyint CHECK(grade>=0 AND grade<=100),CONTRAINT sc_sno_cno_pk PRIMARY KEY(sno,cno),CONTRAINT student_sno_fk FOREIGN KEY(sno) REFERENCE Student(sno), CONTRAINT course_cno_fk FOREIGN KEY(cno) REFERENCE Course (cno) )⼆、使⽤SQL语句分别向Student、Course、SC表中加⼊如下数据:Student表数据Course表数据SC 表数据三、完成如下查询1、查询全体学⽣的学号和姓名SELECT sno, sname from Student2、查询全体学⽣的姓名、学号和所在系SELECT sname, sno, sdept from Student3、查询全体学⽣的姓名及其出⽣年份分析:由于Student表中只记录了学⽣的年龄,⽽没有记录学⽣的出⽣年份,所以需要经过计算得到学⽣的出⽣年份,即⽤当前年减去年龄,得到出⽣年份。
sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。
select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。
select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。
select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。
select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。
select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。
select sname from student where sdept= 'cs' and sage<20;9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
vf数据库sql部分的答案211)检索在北京的供应商的名称。
SELECT * FROM 供应商WHERE 地址=’北京’2)检索发给供应商S6的订购单号。
SELECT 订购单号FROM 订购单WHERE 供应商号=’S6’3)检索出职工E6发给供应商S6的订购单信息。
SELECT * FROM 订购单WHERE 供应商号=’S6’ AND 职工号=’E6’4)检索出向供应商S3发过订购单的职工的职工号和仓库号。
SELECT 职工号,仓库号FROM 职工WHERE 职工号IN( SELECT 职工号FROM 订购单WHERE 供应商号=’S3’ )5)检索出目前与S3供应商没有联系的职工信息。
SELECT * FROM 职工WHERE 职工号NOT IN( SELECT 职工号FROM 订购单WHERE 供应商号=’S3’ )6)检索出目前没有任何订购单的供应商信息。
SELECT * FROM 供应商WHERE NOT EXISTS( SELECT * FROM 订购单WHERE 供应商号=供应商.供应商号)7)检索出和职工E1、E3都有联系的北京的供应商信息。
SELECT * FROM 供应商WHERE 供应商号IN( SELECT 供应商号FROM 订购单WHERE 职工号=’E1’ )AND 供应商号IN( SELECT 供应商号FROM 订购单WHERE 职工号=’E3’ )8)检索出目前和华通电子公司有业务联系的每个职工的工资。
SELECT 职工号,工资FROM 职工WHERE 职工号IN(SELECT 职工号FROM 订购单WHERE 供应商号IN(SELECT 供应商号FROM 供应商WHERE 供应商名=’华通电子公司’))9)检索出与工资在1220元以下的职工没有联系的供应商的名称。
SELECT 供应商名FROM 供应商WHERE 供应商号IN(SELECT 供应商号FROM 订购单WHERE 职工号NOT IN(SELECT 职工号FROM 职工WHERE 工资< 1220))10)检索出向S4供应商发出订购单的仓库所在的城市。
计算机二级(VF)关系数据库标准语言SQL章节练习试卷2(题后含答案及解析)全部题型 2. 填空题填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡上。
注意:以命令关键字填空的必须拼写完整。
1.查询设计器______生成所有的SQL查询语句。
正确答案:不能涉及知识点:关系数据库标准语言SQL2.SQL中删除表的命令是______。
正确答案:DROP TABLE 涉及知识点:关系数据库标准语言SQL 3.SQL语句可以进行多个查询的嵌套,但VisualFoxPro只支持______层嵌套。
正确答案:两涉及知识点:关系数据库标准语言SQL4.在SQL语句中,为了避免查询到重复记录,可用______短语。
正确答案:DISTINCT 涉及知识点:关系数据库标准语言SQL5.SQL语句支持集合的并运算,其运算符是______。
正确答案:UNION 涉及知识点:关系数据库标准语言SQL6.在SQL语句中用于将最终查询结果排序的短语是______。
正确答案:ORDER BY 涉及知识点:关系数据库标准语言SQL7.在SQL的自联接查询中,必须为表起______。
正确答案:别名涉及知识点:关系数据库标准语言SQL8.将查询结果存放到临时表中,使用______短语。
正确答案:INTO CURSOR 涉及知识点:关系数据库标准语言SQL9.将查询结果存放在内存变量中,使用______短语。
正确答案:INTO ARRAY 涉及知识点:关系数据库标准语言SQL10.在用SQL的CREATETABLE命令建立表时,用子句______指定表的主索引。
正确答案:PRMARY KEY 涉及知识点:关系数据库标准语言SQL11.指定包括在查询结果满足的筛选条件的短语HA VING必须与短语______起使用。
正确答案:GROUP BY 涉及知识点:关系数据库标准语言SQL12.设有如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3))请对下面的SQL语句填空:CREATETABLE学生______正确答案:(学生号N(3),姓名C(3),性别C(1),年龄N(2)) 涉及知识点:关系数据库标准语言SQL13.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),若要将“学生号”的长度改为4,则语法为:ALTERTABLE学生______正确答案:ALTER学生号N(4) 涉及知识点:关系数据库标准语言SQL14.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),若要定义“年龄”有效性规则(大于或等于19岁)和出错信息(年龄应满19岁),则语法为:ALTERTABLE学生ALTE年龄;______正确答案:SET CHECK年龄>=19ERROR“年龄应满19岁”涉及知识点:关系数据库标准语言SQL15.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),若要将“成绩”属性改名为“选课成绩”,则语法为:ALTERTABLE 选课______正确答案:RANAME 成绩TO 选课成绩涉及知识点:关系数据库标准语言SQL16.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),查询所有同学们已经选课教师的情况,则语法为:SELECT教师FROM 课程;WHERE课程号______正确答案:IN (SELECT DISTINCT课程号FROM选课) 涉及知识点:关系数据库标准语言SQL17.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),若需统计“选课”表中已经选修了课程的学生人数,则语法为:SELECT______FROM选课正确答案:COUNT(DISTINCT学生号) 涉及知识点:关系数据库标准语言SQL18.对于如下表:学生(学生号N(3),姓名C(3),性别C(1),年龄N(2))课程(课程号C(3),课程名称C(3),教师C(3))选课(学生号N(3),课程号C(3),成绩N(3)),将选修课程号为“KC1”的同学均加上5分,则语法为:UPDATE成绩______WHERE课程号=“KC1”正确答案:SET成绩=成绩+5 涉及知识点:关系数据库标准语言SQL 19.在SQL中,用______命令修改表中的数据;用______命令修改表的结构。
sql考试题及答案一、选择题1. SQL是什么意思?a. Structured Query Languageb. Sequential Query Languagec. Structured Question Languaged. Sequential Question Language答案:a. Structured Query Language2. 下列哪个关键词用于在SQL中创建新表?a. UPDATEb. INSERTc. CREATEd. SELECT答案:c. CREATE3. 在SQL中,用于查找符合一定条件的记录的关键词是?a. SELECTb. UPDATEc. INSERTd. DELETE答案:a. SELECT4. 在SQL中,如何在表中添加新的数据?a. INSERT INTOb. ADD INTOc. UPDATEd. MODIFY答案:a. INSERT INTO5. 在SQL中,如何删除表中的数据?a. DELETE ROWb. REMOVEc. DELETE FROMd. ERASE FROM答案:c. DELETE FROM二、填空题1. SQL中用于选择所有列的通配符是______。
答案:*2. SQL中用于指定唯一键的关键词是______。
答案:PRIMARY KEY3. SQL中用于按照某一列对结果进行排序的关键词是______。
答案:ORDER BY4. SQL中用于更新数据的关键词是______。
答案:UPDATE5. SQL中用于计算某一列的总和的函数是______。
答案:SUM三、简答题1. 请解释SQL中的JOIN操作。
答案:JOIN操作用于连接两个或多个表,基于表之间的关联关系获取相关数据。
常用的JOIN类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。
2. 什么是SQL注入?如何防止SQL注入?答案:SQL注入是一种恶意的攻击方式,通过在用户输入的数据中插入恶意的SQL代码,以获取、修改或删除数据库中的数据。
(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
SQLServer数据库技术试题含答案(二)SQLServer数据库技术试题含答案是很多IT人员关注的话题。
下面列出一些常见的试题及其答案,希望对大家有所帮助。
1. 如何在SQLServer中创建一个新的数据库?答:可以使用SQL Server Management Studio (SSMS)或Transact-SQL (T-SQL)语句来创建新的数据库。
在SSMS中,右键单击“数据库”文件夹,选择“新建数据库”,然后按照提示操作即可。
在T-SQL中,使用CREATE DATABASE语句来创建新的数据库。
2. 如何备份SQLServer数据库?答:可以使用SSMS或T-SQL语句来备份SQLServer数据库。
在SSMS 中,右键单击要备份的数据库,选择“任务”->“备份”,然后按照提示操作即可。
在T-SQL中,使用BACKUP DATABASE语句来备份数据库。
3. 如何还原SQLServer数据库?答:可以使用SSMS或T-SQL语句来还原SQLServer数据库。
在SSMS 中,右键单击要还原的数据库,选择“任务”->“还原”,然后按照提示操作即可。
在T-SQL中,使用RESTORE DATABASE语句来还原数据库。
4. 如何创建SQLServer数据库表?答:可以使用SSMS或T-SQL语句来创建SQLServer数据库表。
在SSMS中,右键单击要创建表的数据库,选择“新建查询”,然后输入CREATE TABLE语句来创建表。
在T-SQL中,使用CREATE TABLE语句来创建表。
5. 如何在SQLServer中插入数据?答:可以使用SSMS或T-SQL语句来插入数据。
在SSMS中,右键单击要插入数据的表,选择“编辑前100行”,然后在表格中插入数据。
在T-SQL中,使用INSERT INTO语句来插入数据。
6. 如何更新SQLServer数据库中的数据?答:可以使用SSMS或T-SQL语句来更新SQLServer数据库中的数据。
SQL部分模拟试题及答案(第2套)资料讲解S Q L部分模拟试题及答案(第2套)SQL部分模拟试题(二)一、单项选择题(本大题共12小题,每小题2分,共24分)1、数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是________。
()A.DBMS包括DB和DBS B.DBS包括DB和DBMSC.DB包括DBS和DBMSD D.BS就是DB,也就是DBMS2、SQL Server的__________允许用户输入SQL语句并且迅速查看这些语句的结果。
() A.查询分析器B.服务管理器C.事件探测器D.企业管理器3、以下哪个操作可以创建数据库。
()A.进入查询分析器,选择菜单命令“工具”→“向导”,打开“选择向导”对话框,在对话框中,展开“注册服务器向导”中的“数据库”文件夹,选中“创建数据库向导”项B.进入服务管理器,选择菜单命令“工具”→“向导”,打开“选择向导”对话框,在对话框中,展开“注册服务器向导”中的“数据库”文件夹,选中“创建数据库向导”项C.进入事件探测器,选择菜单命令“工具”→“向导”,打开“选择向导”对话框,在对话框中,展开“注册服务器向导”中的“数据库”文件夹,选中“创建数据库向导”项D.进入企业管理器,选择菜单命令“工具”→“向导”,打开“选择向导”对话框,在对话框中,展开“注册服务器向导”中的“数据库”文件夹,选中“创建数据库向导”项4、下面所列条目中,哪一条不是标准的SQL语句?()A.ALTERTABLE B.ALTERVIEW C.CREATETABLE D.CREATEVIEW5、若要在基本表S中增加一列CN(课程名),可用__________。
()A.ADD TABLES(CN CHAR(8)) B.ADD TABLES ALTER (CN CHAR (8))C.ALTER TABLES ADD(CN CHAR(8))D.ALTER TABLES(ADD CN CHAR(8))6、取出关系中的某些列,并消去重复的元组的关系运算称为_________。
大工21秋《SQL数据库系统及应用》在线作业2试卷总分:100 得分:1001.在SQL的select语句中,如果要过滤结果中的重复行,可以在字段列表前面加上()。
<-A.->group<-B.->order<-C.->top<-D.->distinct【本题正确参考选择】:D2.在select语句中如果要对得到的结果中某个字段按降序处理,则使用()参数。
<-A.->asc<-B.->desc<-C.->between<-D.->and【本题正确参考选择】:B3.查询学校员工工资信息时,结果按工资降序排列,正确的是()。
<-A.->ORDERBY工资<-B.->ORDERBY工资desc<-C.->ORDERBY工资asc<-D.->ORDERBY工资and【本题正确参考选择】:B4.当使用SQL语句进行分组检索时,为了按照一定的条件对分组后的数据进行筛选,应当()。
<-A.->在join后面使用betweento子句<-B.->在groupby后面使用having子句<-C.->在where后面使用orderby子句<-D.->在join后面使用orderby子句【本题正确参考选择】:B5.在SQL查询语句中,HAVING子句的作用是()。
<-A.->指出排序的范围<-B.->指出查询结果的最大值<-C.->指出分组查询的条件<-D.->指出创建数据表的字段【本题正确参考选择】:C6.以下关于HAVING子句描述错误的是()。
<-A.->HAVING子句允许与GROUPBY子句同时使用<-B.->使用HAVING子句的同时不能使用WHERE子句<-C.->使用HAVING子句的同时可以使用WHERE子句<-D.->使用HAVING子句的作用是限定分组的条件。