SQL练习2答案

合集下载

综合练习(二)-习题

综合练习(二)-习题

综合练习(⼆)-习题综合练习(⼆)⼀、⽤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语句练习及答案

SQL语句练习及答案

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部分的答案2

vf数据库sql部分的答案2

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(题后含答案及解析)

计算机二级(VF)关系数据库标准语言SQL章节练习试卷2(题后含答案及解析)

计算机二级(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考试题及答案

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代码,以获取、修改或删除数据库中的数据。

数据库实验答案实验二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数据库技术试题含答案(二)

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套)资料讲解

SQL部分模拟试题及答案(第2套)资料讲解

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、取出关系中的某些列,并消去重复的元组的关系运算称为_________。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业1
1、查询xsbook数据库的xs表中各个学生的姓名,专 业名和借书数。 2、查询xs表中计算机系同学的借书证号,姓名和借 书数。 3、查询xs表中的所有列。 4、查询xs表中计算机系同学的借书证号,姓名和借 书数,结果中各列的标题分别制定为cardno,name和 count. 5、查询xs表中每个学生现在还有几本书可以借(每 人可借10本书),要求显示借书证号,姓名,借书数 和还可借书数。
ห้องสมุดไป่ตู้
6、对xsbook数据库的jy表只选择借书证号和isbn 列,保证行的唯一性。 7、查询xs表借书数最高的前四名同学的信息。 8、查询xsbook数据库xs表中借书数在一本以上 的学生信息。 9、查询xs表中计算机专业借书数在1本以上的学 生情况。 10、查询xs表中出生时间在1980-1-1于1982-1231只见的学生情况。 11、查询xs表中不在1982年出生的学生情况。
12、查询xs表中专业名为“计算机”,”信息 工程”,“英语”或“自动化”的学生情况。 13、查询xs表中专业名不在“计算机”,”信 息工程”,“英语”或“自动化”的学生情况。 14、查询xs表中姓”王”且单名的学生情况。 15、查询xs表中名字的第二个字为“小”的学 生情况。 16、查询xs表中名字的第二个字是“小”或是 “涛”的学生情况。 17、查询xs表中专业名尚不确定的学生情况。
作业2
6、查询所有同学的借阅信息,并按借书证号将序排列,输出借书证号、姓名、专业名、 isbn、书名、索书号和借书时间。 Select xs.借书证号,姓名,专业名,jy.isbn,书名,索书号,借书时间 From xs,jy,book Where xs.借书证号=jy.借书证号 and jy.isbn=book.isbn Order by xs.借书证号 desc 9、列出学生所有可能借书的情况。 Select * from xs,jy 10、列出借阅了书名中含有“计算机”的图书的学生的借书证号、姓名、专业名,所 借图书的isbn、书名、索书号和借书时间。 Select xs.借书证号,姓名,专业名,book.isbn,书名,索书号,借书时间 From xs,jy,book where xs.借书证号=jy.借书证号 and jy.isbn=book.isbn and 书名 like ‘*计算机*’ 11、查找与“李宏”在同一个专业的学生借阅图书的情况,要求列出借书证号、姓名、 性别、出生时间和借书数。 Select 借书证号,姓名,性别,出生时间,借书数 from xs where 专业 =( Select 专业 from xs where 姓名=‘李宏) Select stu2.借书证号, stu2.姓名, stu2.性别, stu2.出生时间, stu2.借书数 From xs as stu1,xs as stu2 Where stu1.姓名=‘李宏’ and stu1.专业=stu2.专业 12、查找未借阅“计算机网络”一书的学生情况。 Select * from xs where 借书证号 not in( Select 借书证号 from jy where isbn=( Select isbn from book where 书名=‘计算机网络’)) Select * from xs where 借书证号 not in( Select 借书证号 from jy,book where jy.isbn=book.isbn and 书名=‘计算机网络’)
18、查询计算机专业、借书数在2本以下的 学生姓名和借书证号。 19、查询计算机专业或者英语专业的学生 姓名和借书证号。 20 20、查询book表中包含“程序设计”的书。 book 21、将计算机专业的学生按出生时间先后 排序。 22、将计算机专业的学生按借书数降序排 列。
1、查询xsbook数据库中每个学生的情况以及学生的借书情况。 Select * from xs,jy where xs.借书证号=jy.借书证号 2、查找xsbook数据库中每个学生的情况以及学生的借书情况,去除重复的列。 Select xs.*,isbn,借书时间 from xs,jy where xs.借书证号=jy.借书证号 3、查找借阅了isbn为7-111-06359-7的学生的姓名和专业名。 Select 姓名,专业 from xs,jy where xs.借书证号=jy.借书证号 and isbn=‘7-111-06359-7’ Select姓名,专业 from xs where 借书证号 in ( Select 借书证号 from jy where isbn=‘7-111-06359-7’) 4、查询借书数量在5~10本之间的借书证号、姓名和借书量。 Select 借书证号,姓名,借书数 from xs where 借书数 between 5 and 10 5、查找借阅了‘web站点安全’一书的学生的借书证号,姓名,专业名和借书时间。 Select xs.借书证号,姓名,专业名,借书时间 From xs,jy,book where xs.借书证号=jy.借书证号 and jy.isbn=book.isbn and 书名= ‘web站点 安全’ Select 借书证号,姓名,专业名 from xs where 借书证号 in( Select 借书证号 from jy where isbn=( Select isbn from book where 书名= ‘web站点安全’)) Select xs.借书证号,姓名,专业名,借书时间 from jy,xs where jy.借书证号=xs.借书证号 and isbn=( Select isbn from book where 书名= ‘web站点安全’)
13、查找其他专业比所有计算机专业的学生年龄都小的学生。 Select * from xs where 出生日期>( Select max(出生日期) from xs where 专业=‘计算机’ ) Select * from xs where 出生日期>all( Select 出生日期 from xs where 专业=‘计算机’ ) 14、查找其他专业比所有计算机专业某个学生年龄小的学生。 Select * from xs where 出生日期>( Select min(出生日期) from xs where 专业=‘计算机’ ) and 专业<>’计 算机’ Select * from xs where 出生日期>any( Select 出生日期 from xs where 专业=‘计算机’ ) and 专业<>’计算机’
相关文档
最新文档