SQL课上作业与答案 (1)

合集下载

SQL习题有答案1

SQL习题有答案1

SQL习题有答案1[一、选择1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(_B__)A、只存在一对多的实体关系,以图形方式来表示。

B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。

C、能体现一对多、多对多的关系,但不能体现一对一的关系。

D、关系模型数据库是数据库发展的最初阶段。

2、( A )如果要让Windows NT/2000和UNIX用户能够同时访问SQL Server,并且在管理用户上要尽可能省事,则应选择哪种验证模式?A.混合验证模式B.NT验证模式C.多协议验证模式D.同时使用混合验证模式和NT验证模式3、( B )以下哪种角色只允许用户选择数据库中的所有数据A.db_ower B.db_datareader C.db_datawriter D.db_ddladmin4、( C)下列哪种数据类型上不能建立IDENTITY列?A.intB.tiny intC. floatD.small int5、(B)在“连接”组中有两种连接认证方式,其中在什么方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。

A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时6、以下D方法可以在/doc/42480763.html,的记录集中新增一条记录A.Add B.Insert C.New D.AddNew7、当采用Windows认证方式登录数据库服务器时,SQL Server 客户端软件会向操作系统请求一个(A )。

A. 信任连接B. 邮件集成C. 并发控制D. 数据转换服务8、下列标识符可以作为局部变量使用( C )。

A. [@Myvar]B. My varC. @MyvarD. @My var9、Transact-SQL支持的程序结构语句中的一种为(A)。

A. Begin…EndB. If…Then…ELSEC. Do CaseD. Do While10、不属于SQL Server系统全局变量的是(D)。

sql练习题及答案

sql练习题及答案

sql练习题及答案SQL练习题及答案在学习SQL(Structured Query Language)时,练习题是非常重要的一部分。

通过练习题,我们可以巩固和应用所学的SQL知识,提高自己的实践能力。

本文将介绍几个常见的SQL练习题,并提供相应的答案,希望对大家的学习有所帮助。

1. 查询员工表中所有员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表;```2. 查询员工表中薪水大于5000的员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 > 5000;```3. 查询员工表中职位为经理的员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 职位 = '经理';```4. 查询员工表中薪水在4000到6000之间的员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 BETWEEN 4000 AND 6000;```5. 查询员工表中薪水最高的员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 = (SELECT MAX(薪水) FROM 员工表);```6. 查询员工表中没有分配部门的员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 部门 IS NULL;```7. 查询员工表中按照薪水从高到低排列的前5名员工的姓名和薪水。

答案:```sqlSELECT 姓名, 薪水FROM 员工表ORDER BY 薪水 DESCLIMIT 5;```8. 查询员工表中每个部门的员工数量。

答案:```sqlSELECT 部门, COUNT(*) AS 员工数量FROM 员工表GROUP BY 部门;```9. 查询员工表中薪水排名在第3到第5位的员工的姓名和薪水。

SQL练习题及答案1(合集五篇)

SQL练习题及答案1(合集五篇)

SQL练习题及答案1(合集五篇)第一篇:SQL练习题及答案1SQL练习题:商品销售数据库商品销售数据库Article(商品号 char(4),商品名char(16),单价 Numeric(8,2),库存量 int)Customer(顾客号char(4),顾客名 char(8),性别 char(2),年龄 int)OrderItem(顾客号 char(4),商品号 char(4),数量 int, 日期date)1.用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。

(性别分成男女,年龄从10到100)。

顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。

create table OrderItem(顾客号char(4),商品号char(4),日期datetime,数量 smallint,primary key(顾客号,商品号,日期),foreign key(商品号)references Article(商品号), foreign key(顾客号)references Custommer(顾客号));2.检索定购商品号为…0001‟的顾客号和顾客名。

select distinct 顾客号,顾客名from OrderItem where 商品号='0001'3.检索定购商品号为…0001‟或…0002‟的顾客号。

select distinct 顾客号 from OrderItem where 商品号='0001' or 商品号='0002';4.检索至少定购商品号为…0001‟和…0002‟的顾客号。

select 顾客号 from OrderItem where 商品号='0001' and 顾客号 in(select 顾客号 from OrderItem where 商品号='0002');5.检索至少定购商品号为…0001‟和…0002‟的顾客号。

sql练习题及答案

sql练习题及答案

sql练习题及答案SQL练习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

在数据库管理系统中,SQL被广泛应用于数据的查询、插入、更新和删除等操作。

掌握SQL语言对于数据库开发和数据分析非常重要。

在这篇文章中,我们将提供一些SQL练习题及其答案,帮助读者巩固和提升SQL的应用能力。

1. 查询员工表中所有员工的姓名和工资。

答案:```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工表中工资大于5000的员工的姓名和工资。

答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000;```3. 查询员工表中工资在3000到5000之间的员工的姓名和工资。

答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 BETWEEN 3000 AND 5000;```4. 查询员工表中姓"张"的员工的姓名和工资。

```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%';```5. 查询员工表中工资最高的员工的姓名和工资。

答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 = (SELECT MAX(工资) FROM 员工表);```6. 查询员工表中每个部门的员工数量。

答案:```sqlSELECT 部门, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门;```7. 查询员工表中每个部门的平均工资。

答案:```sqlSELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门;```8. 查询员工表中工资高于部门平均工资的员工的姓名和工资。

答案:SELECT 姓名, 工资 FROM 员工表 WHERE 工资 > (SELECT AVG(工资) FROM 员工表 GROUP BY 部门);```9. 查询员工表中没有分配部门的员工的姓名和工资。

SQL经典题目与答案

SQL经典题目与答案
An Introduction to Database System
作业答案: 作业答案:
若学生选课库的关系模式为: 1、若学生选课库的关系模式为: 学生(学号,姓名,性别,年龄,所在系); 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩) 选课(学号,课程号,成绩). 求选修了课程号为“C2”课程的学生学号 课程的学生学号。 ①求选修了课程号为“C2”课程的学生学号。
An Introduction to Database System
5)求至少用了供应商S1所供应的全部零件的工程号 )求至少用了供应商 所供应的全部零件的工程号 所供应的全部零件的工程号JNO: :
作业答案
3.查询至少选修了一门其直接先行课为5号 查询至少选修了一门其直接先行课为5 课程的课程的学生姓名。 课程的课程的学生姓名。
An Introduction to Database System
πSname(σCpno='5'(Course SC Student)) Student))

πSname(σCpno='5'(Course) Cpno='5 SC πSno,Sname(Student)) Sno,

πSname (πSno (σCpno='5' (Course) Cpno='5 SC) πSno,Sname (Student)) Sno,
π学号(σ课程号 ‘C2’(选课)) 选课)) 课程号=
②求选修了课程号为“C2”课的学生学号和姓名。 求选修了课程号为“C2”课的学生学号和姓名。 课的学生学号和姓名

sql习题及答案

sql习题及答案

sql习题及答案SQL习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

它是许多软件开发人员和数据分析师必备的技能之一。

在学习SQL的过程中,练习是非常重要的,因为它可以帮助我们更好地理解和掌握这门语言。

以下是一些常见的SQL习题及答案,供大家练习和参考:1. 查询所有学生的信息```sqlSELECT * FROM students;```2. 查询所有学生的姓名和年龄```sqlSELECT name, age FROM students;```3. 查询所有学生的姓名和年龄,并按年龄从小到大排序```sqlSELECT name, age FROM students ORDER BY age;```4. 查询所有学生的平均年龄```sqlSELECT AVG(age) FROM students;```5. 查询所有学生的姓名和其所在班级的名称```sqlSELECT , c.class_nameFROM students sJOIN classes c ON s.class_id = c.class_id;```6. 查询所有学生的姓名和其所在班级的名称,如果没有班级则显示“未分配班级”```sqlSELECT , COALESCE(c.class_name, '未分配班级')FROM students sLEFT JOIN classes c ON s.class_id = c.class_id;```7. 查询每个班级的学生数量```sqlSELECT class_id, COUNT(*) AS student_countFROM studentsGROUP BY class_id;```以上是一些常见的SQL习题及答案,希望能够帮助大家更好地理解和掌握SQL 语言。

通过不断的练习和实践,相信大家一定能够成为SQL的高手!。

SQL课后作业10题参考答案

SQL课后作业10题参考答案

假设每个职工可以在多个公司工作,检索每个职工的兼职公司数目和工资总数,显示E#,MUM,SUM_SALARY分别表示工号、公司数目和工资总数。

分析:涉及到表为works表;按照职工来统计公司的数目和工资总额select E#,count(c#) NUM,sum(salary) SUM_SALARY from works group by E#检索”联华公司”中低于本公司平均公司的职工工号和姓名.(10题2小题)(1)查找联华公司职工的平均工资。

方法一:连接查询实现select avg(salary) from works,comp where works.c#=comp.c# and cname='联华公司'方法二:嵌套查询实现Select avg(salary) from works Where c#=(select c# from comp Where cname='联华公司')------------------------------------5799.5(2)查找联华公司工资低于(1)的职工工号和姓名。

方法一:连接查询实现外层查询select emp.e#,enamefrom emp,works,compwhere emp.e#=works.e#and works.c#=comp.c#and cname='联华公司'and salary<(Select avg(salary) from worksWhere c#=(select c# from compWhere cname='联华公司'))方法二:嵌套查询实现外层查询(自己思考)3、检索工资高于其所在公司职工平均工资的所有职工的工号和姓名。

(1)先查找各公司的平均工资select c#,avg(salary) avg_salfrom worksgroup by c#(2) 检索所有职工的工号、姓名、公司,工资select emp.e#,ename,works.c#,salary,from emp,workswhere emp.e#=works.e#(3) 检索所有职工的工号、姓名、公司,工资,所在公司和平均工资select emp.e#,ename,works.c#,salary,a.c#,a.avg_salfrom emp,works,(select c#,avg(salary) avg_salfrom works group by c#) awhere emp.e#=works.e#and works.c#=a.c#and salary>avg_sal4、检索职工人数最多的公司的编号和名称(10题的4小题).(1)按照公司来统计公司的人数(涉及到works)select c#,count(e#) from worksgroup by c#(2) 从(1)的结果中查找人数最多的公司的人数select max(cont) from (select c#,count(e#) cont from worksgroup by c#) a(3) 根据(2)查询的结果,从(1)的结果中查找人数最多的公司的编号.select c# from (select c#,count(e#) cont from works group by c#) awhere cont=(select max(cont) from (select c#,count(e#) contfrom worksgroup by c#) a)(4)已知公司编号,在COMP表中查找公司编号和名称select c#,cname from compwhere c# in(select c# from (select c#,count(e#) cont from works group by c#) a where cont=(select max(cont) from (select c#,count(e#) contfrom worksgroup by c#) a))5、检索工资总额最小的公司的编号和名称。

SQL第1章课后习题答案

SQL第1章课后习题答案

第一章思考与练习题1.SQL Server 2005包括哪些版本?2.如何在SQL Server Management Studio中查询数据?3.简述SQL Server 2005的配置要求。

1、SQL Server 2005的版本有:SQL Server 2005 Enterprise Edition(企业版)、SQL Server 2005 Standard Edition(标准版)、SQL Server 2005 Workgroup Edtition(工作组版)、SQL Server 2005 Developer Edition(开发版)、及SQL Server 2005 Express Edition(简易版)。

2、在Management Studio中,单击工具栏左侧的“新建查询”按钮,即可打开查询分析器,输入SQL语句后,单击工具栏中的“执行”按钮,执行此SQL语句,并将查询后的结果显示在结果窗口中。

3、硬件要求:(1)监视器:SQL Server图形工具需要VGA或更高分辨率,分辨率至少为 1024×768 像素。

(2)处理器:Pentium III 600MHz以上。

(3)内存:SQL Server 2005 Express Edition最小内存为192MB,其他版本最小内存为512MB。

(4)硬盘空间:实际硬盘空间要求取决于系统配置和选择安装的应用程序和功能。

软件要求:(1)网络软件:64 位版本的SQL Server 2005的网络软件要求与32位版本的要求相同。

Windows 2003、Windows XP和Windows 2000都具有内置网络软件。

(2)浏览器:所有SQL Server 2005的安装都需要Microsoft Internet Explorer 6.0 SP1或更高版本,因为Microsoft管理控制台(MMC)和HTML帮助需要它。

(3)Internet信息服务:安装Microsoft SQL Server 2005 Reporting Services (报表服务)需要IIS 5.0以上版本。

(完整版)sql练习题+答案

(完整版)sql练习题+答案

(一) 新建以下几个表student(学生表):其中约束如下:(1)学号不能存在相同的(2)名字为非空(3)性别的值只能是’男’或’女’(4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系(5)出生日期为日期格式(6)年龄为数值型,且在0~100之间cs(成绩表):其中约束如下:(1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0〜100之间,可以不输入值create table cs (sno smallint not null referencesstudent ( sno ), ----定义成外键cno smallint not null referencescourse ( cno ), ----定义成外键cj smallint constraint e check (cj between0 and 100 ),---- 检查约束一—j(成绩)只能在~100之间,可以不输入值constraint f primary key ( sno , cno )---- 定义学生学号和课程号为sc表的主键)course(课程表)其约束如下:(1)课程号(cno)不能有重复的(2)课程名(cname非空(三)针对学生课程数据库查询(1)查询全体学生的学号与姓名。

Select sno , sname from student(2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。

(3)查询全体学生的详细记录。

select * from student(4)查全体学生的姓名及其出生年份。

select sname , birth from student(5)查询学校中有哪些系。

select distinct dept from student(6)查询选修了课程的学生学号。

select sno from cs where eno is not null(7)查询所有年龄在20岁以下的学生姓名及其年龄。

SQL课后练习(一)-参考答案

SQL课后练习(一)-参考答案

SQL课后练习题说明:下列练习均采用教材38-39页所示的“学生成绩管理”数据库1.查询学生表中姓名第二个字是“明”的学生信息。

Select * from 学生表Where 姓名like “?明*”或者Select * from 学生表Where mid(姓名,2,1)= “明”2. 基于学生表查询所有年龄在20岁以上(包含20岁)的女生的学号、姓名。

Select 学号,姓名From 学生表Where year(date())-year(出生日期)>=20 and 性别=”女”3. 查询学分大于2分的课程信息,输出课程编号、课程名称和学分。

Select 课程编号,课程名称,学分From 课程表Where 学分>24. 查询“人文与社会科学学院”女生的学号和姓名。

Select 学号,姓名From 学生表, 院系代码表Where学生表.院系代码=院系代码表.院系代码and 院系名称=”人文与社会科学学院”and性别=”女”5. 查询每个学院各有多少名学生,输出院系代码和人数。

Select 院系代码,count(*) as 人数From 学生表Group by院系代码6. 查询每个学生的总分,输出学号、姓名和总分,并按总分降序排序。

Select学生表.学号,姓名,sum(成绩) as 总分From 学生表,选课成绩表Where 学生表.学号=选课成绩表.学号Group by 学生表.学号, 姓名Order by 3 desc7. 查询“数据库应用”课程的平均得分,输出课程编号、课程名称和平均分。

Select 课程表.课程编号,课程名称,avg(成绩) as 平均分From 课程表,选课成绩表Where课程表.课程编号=选课成绩表.课程编号Group by 课程表.课程编号,课程名称having课程名称=”数据库应用”8. 查询“外国语学院”考试不及格的学生名单,输出学号、姓名、课程编号和成绩。

SQL数据库题库及答案 (1)

SQL数据库题库及答案 (1)

实训131.使用T-SQL语句创建“Windows身份验证”登录名(对应的Windows用户为testwin)。

create login [stu1001\testwin]from windowsexec sp_addlogin 'aa' , '123' /*用存储过程创建sql登录名*/2.使用T-SQL语句查看所创建的登录名“testwin”的属性。

select loginname,sid from master.sys.syslogins3.使用T-SQL删除登录名“testwin”。

drop login [stu1001\testwin]4.使用SSMS创建与登录名“testsql”对应的数据库用户“sqluser”(对应于数据库WebShop),并查看其属性5.使用SSMS删除数据库用户“sqluser”。

6.使用T-SQL语句创建与登录名“testwin”对应的数据库用户“winuser”。

use webshopcreate user [winuser] for login [stu1001\testwin]7.将数据库用户“winuser”修改为“win”。

use webshopalter user [winuser]with name=win/*Alter User的语法结构:ALTER USER userNameWITH <set_item> [ ,...n ]<set_item> ::=NAME = newUserName| DEFAULT_SCHEMA = { schemaName | NULL }| LOGIN = loginName| PASSWORD = 'password' [ OLD_PASSWORD ='oldpassword' ]| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }*/1.使用SSMS或T-SQL语句查看WebShop数据库中数据库用户的信息。

SQL作业与答案

SQL作业与答案

第一部分背景知识1、请描述当代数据库技术的主流模型有哪些关系、关系对象、XML以及现代基于key-value为特点基于列的非关系模型的海量数据处理等2、数据库查询语言SQL的标准的体系组成及其发展状况SQL标准其完整的框架包含了14个部分内容分别为part1-part14,但是随着版本的变化,其中有些部分进行了调整(合并或者取消)。

主要内容包括:3、罗列当代最为关键的数据库服务器系统产品名称>=6 oracle、sql server、db2、sybase 、postgreSQL、mysql4、数据库中触发器对象有什么价值?用户自定义完整性帮助实现特定的事件记录或者业务处理的目的主动数据库的基础技术之一5、请说明现代数据库管理系统产品所基于的主流模型是什么,如sql server/oracle/db2主要是以关系模型为基础上,增加了关系对象的支持,具体反映在对SQL99版本的支持包括目前最新的Oracle11g/SQL Server2008和DB9都支持了关系-对象模型。

6、什么是嵌入式数据库?有两重含义1)可以直接内嵌到其他软件中的小型数据库,例如word软件中内嵌的spell2)能在嵌入式类的小型计算机系统上运行的数据库产品,例如手机中的字典7、什么是数据库的容灾技术容灾主要分为哪几种级别,分别代表什么含义无备份定期备份,介质本地存储介质异地存储备份介质电子传送8、为什么说数据库的事务日志的工作机理是什么数据库的日志通常用于数据库的恢复使用,是事务不一致情况下主要的修复依据,工作机理是数据库日志通常记录数据修改的具体行为,必需要先于对应日志行为所涉及的数据缓冲区修改部分的数据写入数据文件的,简称WAL第二部分oracle基本概念1、oracle—RDBMS产品的公司?2、oracle 10g和11g 中的g代表什么?网格技术3、在windows环境安装完成oracle数据库管理系统后,如何进入sqlplus,并且以dba的角色登陆4、oracle服务器工作所需启动的基本服务有哪几个?5、Oracle 服务器的组成1.Oracle实例(instance)2.Oracle数据库(database)6、Oracle 实例由哪些部分组成,每一部分的组成。

sql练习题及答案

sql练习题及答案

sql练习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。

在这篇文章中,我们将提供一些SQL练习题及其答案,旨在帮助读者加深对SQL的理解,并提供实践操作的机会。

练习题一:学生表考虑一个名为"Students"的学生表,包含以下字段:- 学生编号(StudentID)- 学生姓名(StudentName)- 学生年级(Grade)- 学生所在学校(School)请使用SQL语句创建并插入示例数据到"Students"表中。

答案:```sqlCREATE TABLE Students (StudentID INT,StudentName VARCHAR(50),Grade INT,School VARCHAR(50));INSERT INTO Students (StudentID, StudentName, Grade, School)VALUES (1, '张三', 11, '中学A'),(2, '李四', 10, '中学B'),(3, '王五', 10, '中学A'),(4, '赵六', 12, '中学C');```练习题二:查询学生表信息请编写SQL查询语句,查询出所有学生的姓名和所在学校。

答案:```sqlSELECT StudentName, School FROM Students;```练习题三:更新学生信息假设有一位新生加入学校,学生姓名为"李华",年级为11,学校为"中学B"。

请编写SQL语句将该学生信息插入到学生表中。

答案:```sqlINSERT INTO Students (StudentName, Grade, School)VALUES ('李华', 11, '中学B');```练习题四:删除学生信息假设"赵六"这位学生已经转学离开学校,需要从学生表中将其信息删除。

sql课后习题答案

sql课后习题答案

sql课后习题答案SQL课后习题答案在学习SQL课程时,课后习题是非常重要的一部分。

通过完成这些习题,我们可以加深对SQL语言的理解,提高自己的实际操作能力。

下面是一些SQL课后习题的答案,希望对大家的学习有所帮助。

1. 查询所有员工的信息```sqlSELECT * FROM employees;```2. 查询员工编号为1001的员工信息```sqlSELECT * FROM employees WHERE employee_id = 1001;```3. 查询员工表中的员工数量```sqlSELECT COUNT(*) FROM employees;```4. 查询员工表中的员工姓名和薪水```sqlSELECT employee_name, salary FROM employees;```5. 查询员工表中薪水大于5000的员工信息```sqlSELECT * FROM employees WHERE salary > 5000;```通过以上的习题答案,我们可以看到SQL语言的基本操作,包括查询、条件筛选、统计等。

这些都是我们在日常工作中经常会用到的操作,对于掌握SQL语言非常重要。

除了以上的习题,我们还可以通过实际的项目案例来练习SQL语言的应用。

例如,可以通过查询销售数据、客户信息等来加深对SQL语言的理解和掌握。

总的来说,通过课后习题的答案,我们可以更好地掌握SQL语言的基本操作,提高自己的实际操作能力,为以后的工作做好准备。

希望大家在学习SQL语言的过程中能够多加练习,不断提升自己的技能水平。

SQL课后练习题(1-9章答案)

SQL课后练习题(1-9章答案)

第一章1、数据完整性是指( D )A.数据库存中的数据不存在重复B.数据库中所有的数据格式是一样的C.所有的数据全部保存在数据库中D.数据库中的数据能够正确反映情况2、SQL中pubs数据库属于(A )A.用户数据库B.系统数据库C.数据库模板D.数据库管理系统3、数据冗余指的是( D )A.数据与数据之间没有联系B.数据有丢失C.数据量太大D.存在重复的数据4、SQL Server数据库的主数据文件的扩展名为( B )A. .sqlB. .mdfC. .mdbD. .ldf5、下列关于关系数据库叙述错误的是(B )A.关系数据库的结构一般保持不变,但也可根据需要进行改变B.一个数据表组成一个关系数据库,多种不同数据则需要创建多个数据库C. 关系数据库表中的所有记录的关键字字段的值互不相同D. 关系数据库表中的外部关键字不能用于区别该表中的记录6、创建数据库时,需要指定( C )属性。

A.数据库初始大小B.数据库的存放位置C.数据库的物理名和逻辑名D.数据库的访问权限7、以下说法正确的是( A )A.通过SQL Server服务器对SQL Server的启动、停止和通过服务管理器对SQL Server的启动、停止是同等功效B.必须先启动服务管理器中的SQL Server服务之后才能通过SQL Server服务管理器启动SQL ServerC.必须先通过SQL Server服务管理器启动SQL Server之后才能启动服务管理器中的SQL Server服务D.只能通过服务管理器对SQL S erver进行启动和停止8、SQL Server提供的4个系统数据库,以下说法正确的是( D )A.tempdb数据库是一个空数据库,完全可以删除B.adventure works是用来做模板的一个数据库C.msdb数据库是用来做例子的数据库D.创建新的空白数据库时,将使用Model数据库所规定的默认值9、以下说法错误的是(C)A.数据完整性是指存储在数据库中数据的准确性B.SQL Server是一个DBMSC.ERP、CRM、MIS等都是DBMSD.设计数据库时允许必要的冗余第二章1、创建银行的贷款情况表时,“还款日期”默认为当天,且必须晚于“借款日期”,应采用(A)约束。

SQL课上作业与答案 (1)

SQL课上作业与答案 (1)

1、查询xs表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

Select 学号as number,姓名as name,总学分as mark from xs where 专业名="计算机";2、查询xs表中计算机专业各同学的学号、姓名和总学分,对总学分按如下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。

总学分列的标题更改为“等级”。

select 学号,姓名,casewhen 总学分is null then "尚未选课"when 总学分< 50 then "不及格"when 总学分>=50 and 总学分<=52 then "合格"else "优秀"end as 等级from xswhere 专业名="计算机";3、按120分制重新计算成绩,显示xs_kc表中学号为81101的学生成绩信息。

select 学号,课程号,成绩*1.2 as 成绩120 from xs_kc where 学号="81101";3 rows in set4、对xscj数据库的xs表只选择专业名和总学分,消除结果集中的重复行。

select distinct 专业名,总学分from xs;8 rows in set5、统计备注不为空的学生数目。

select count(备注) as 人数from xs where 备注is not null;6、统计总学分在50分以上的人数。

select count(总学分) as 人数from xs where 总学分> 50;1 row in set7、求选修101课程的学生的最高分和最低分。

数据库语言SQL作业解答

数据库语言SQL作业解答

S Q L语言习题1.关系数据模型如下:学生S(SNO,SN,SEX,AGE)课程C(CNO,CN,PCNO)PCNO为直接先行课号选课SC(SNO,CNO,GR)GR为课程考试成绩用SQL写出查询程序:选修课程“DB”的学生姓名SN。

方法1.SELECTSNFROMSWHERESNOIN(SELECTSNOFROMSCWHERECNO IN(SELECTCNO/*=*/FROMCWHERECN=‘DB’));方法2.SELECTSNFROMS,SC,CWHERE S.SNO=SC.SNOAND O=OANDCN=“DB”;2.关系数据模型如下:学生S(SNO,SN,SEX,AGE)课程C(CNO,CN,PCNO)PCNO为直接先行课号选课SC(SNO,CNO,GR)GR为课程考试成绩用SQL写出查询程序:查询课程名和它的直接先行课的课程名以及它的间接先行课的课程名。

SELECTCN,,FROMC,CCX,CCYWHEREC.PCNO=OANDCX.PCNO=O[例41]找出每个学生超过他选修课程平均成绩的课程号。

SELECTSno,CnoFROMSC xWHERE Grade>=(SELECT AVG(Grade)FROMSC yWHERE y.Sno=x.Sno);3.关系数据模型如下P84例4.26学生S(SNO,SN,SEX,AGE)课程C(CNO,CN,PCNO)PCNO为直接先行课号选课SC(SNO,CNO,GR)GR为课程考试成绩用SQL写出查询程序:所有学生都选修的课程名CN。

方法1.SELECTCNFROMCWHERE NOTEXISTS(SELECT*FROMSWHERE NOTEXISTS(SELECT*FROMSCWHERESNO=S.SNOANDCNO=O);变换后语义:不存在这样的学生x,该学生没有选修P。

(?x)P≡?(?x(?P))方法2.SELECTCNFROMCWHERECNOIN(SELECTCNOFROMSCGROUPBYCNOHAVINGCOUNT(*)=(SELECT COUNT(*)FROMS));[例46]查询选修了全部课程的学生姓名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、查询xs表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

Select 学号as number,姓名as name,总学分as mark from xs where 专业名="计算机";2、查询xs表中计算机专业各同学的学号、姓名和总学分,对总学分按如下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。

总学分列的标题更改为“等级”。

select 学号,姓名,casewhen 总学分is null then "尚未选课"when 总学分< 50 then "不及格"when 总学分>=50 and 总学分<=52 then "合格"else "优秀"end as 等级from xswhere 专业名="计算机";3、按120分制重新计算成绩,显示xs_kc表中学号为81101的学生成绩信息。

select 学号,课程号,成绩*1.2 as 成绩120 from xs_kc where 学号="81101";3 rows in set4、对xscj数据库的xs表只选择专业名和总学分,消除结果集中的重复行。

select distinct 专业名,总学分from xs;8 rows in set5、统计备注不为空的学生数目。

select count(备注) as 人数from xs where 备注is not null;6、统计总学分在50分以上的人数。

select count(总学分) as 人数from xs where 总学分> 50;1 row in set7、求选修101课程的学生的最高分和最低分。

select max(成绩) as 最高分,min(成绩) as 最低分from xs_kc where 课程号="101";1 row in set8、求学号081101的学生所学课程的总成绩。

select sum(成绩) as 总成绩from xs_kc where 学号="81101";9、求选修101课程的学生的平均成绩。

select 学号,avg(成绩) from xs_kc where 课程号="101";10、求选修101课程的成绩的方差。

select variance(成绩) from xs_kc where 课程号="101";11、求选修101课程的成绩的标准差。

select stddev(成绩) from xs_kc where 课程号="101";12、求选修了206课程的学生的学号。

select group_concat(学号) from xs_kc where 课程号="206";13、从xs表中检索出所有学生的信息,并使用表别名student。

select * from xs as student;14、查找xscj数据库中所有学生选过的课程名和课程号select distinct kc.课程名,xs_kc.课程号from kc,xs_kc where kc.课程号=xs_kc.课程号;3 rows in set15、用FROM子句的JOIN关键字表达下列查询:查找选修了206课程且成绩在80分以上的学生姓名及成绩。

select 姓名,成绩from xs inner join xs_kc on xs.学号=xs_kc.学号where 课程号="206" and 成绩> 80;3 rows in set16、用FROM的JOIN关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。

select xs.学号,姓名,课程名,成绩from xs join xs_kc on xs.学号=xs_kc.学号join kc on xs_kc.课程号=kc.课程号where 课程名="计算机基础" and 成绩> 80;8 rows in set17、查找xscj数据库中课程不同、成绩相同的学生的学号、课程号和成绩。

select a.学号,a.课程号,b.课程号,a.成绩from xs_kc as a join xs_kc as b on a.成绩=b.成绩and a.学号=b.学号and a.课程号!= b.课程号;2 rows in set18、查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。

select xs_kc.*,课程号from xs left outer join xs_kc on xs.学号=xs_kc.学号;19、查找被选修了的课程的选修情况和所有开设的课程名。

select xs_kc.*,课程名from xs_kc right join kc on xs_kc.课程号=kc.课程号;20、列出学生所有可能的选课情况。

mysql> select 学号,姓名,课程号,课程名-> from xs cross join kc;21、查询xscj数据库xs表中学号为81101的学生的情况。

select 学号,姓名,总学分from xs where 学号="81101";1 row in set22、查询xs表中总学分大于50分的学生的情况。

select * from xs where 总学分> 50;23、查询xs表中备注为空的同学的情况。

select * from xs where 备注is null;mysql> select * from xs where 备注<=> null;24、查询xs表中专业为计算机,性别为女(0)的同学的情况。

select * from xs where 专业名="计算机" and 性别=0;25、查询xscj数据库xs表中姓“王”的学生学号、姓名及性别。

select 学号,姓名,性别from xs where 姓名like "王%";26、查询xscj数据库xs表中,学号倒数第二个数字为0的学生的学号、姓名及专业名。

select 学号,姓名,专业名from xs where 学号like "%0_";|查询xs表中名字包含下画线的学生学号和姓名。

select 学号,姓名from xs where 学号like "%#_%" escape "#";28、查询xscj数据库xs表中不在1993年出生的学生情况。

select * from xs where 出生时间<=>1993;29、查询xs表中专业名为“计算机”、“通信工程”或“无线电”的学生的情况。

select * from xs where 专业名="计算机" or 专业名="通信工程" or 专业名="无线电";30、查询xscj数据库中总学分尚不定的学生情况。

select * from xs where 总学分is null;31、查找在xscj数据库中选修了课程号为206的课程的学生的姓名、学号。

select 姓名,学号from xs where 学号in(select 学号from xs_kc where 课程号="206");32、查找未选修离散数学的学生的姓名、学号、专业名。

select 姓名,学号,专业名from xs where 学号not in (select 学号from xs_kc where 课程号in (select 课程号from xs where 课程号="离散数学"));33、查找选修了离散数学的学生学号。

select 学号from xs_kc where 课程号= (select 课程号from kc where 课程名="离散数学");34、查找xs表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。

select 学号,姓名,专业名,出生时间from xs where 出生时间<all(select 出生时间from xs where 专业名="计算机");35、查找xs_kc表中课程号206的成绩不低于课程号101的最低成绩的学生的学号。

select 学号from xs_kc where 课程号="206" and 成绩>any(select 成绩from xs_kc where 课程号="101");36、查找选修206号课程的学生姓名。

select 姓名from xs where exists (select * from xs_kc where 课程号="206" and 学号=xs.学号);37、查找选修了全部课程的同学的姓名。

select 姓名from xs where not exists (select * from kc where not exists (select * from xs_kc where 学号=xs.学号and 课程号=kc.课程号));38、从xs表中查找总学分大于50分的男同学的姓名和学号。

select 姓名,学号from xs where 总学分>50 and 性别=1;select 姓名,学号from xs where 学号in (select 学号from xs where 总学分>50 and 性别=1);select 姓名,学号,总学分from (select 姓名,学号,性别,总学分from xs where 总学分> 50) as student where 性别=1;39、从xs表中查找所有女学生的姓名、学号,以及与81101号学生的年龄差距。

select 姓名,学号,year(出生时间)-year((select 出生时间from xs where 学号="81101" ) ) as 年龄差距from xs where 性别=0;40、查找与81101号学生性别相同、总学分相同的学生学号和姓名。

相关文档
最新文档