SQL server 查询语句 练习题

合集下载

Sql Server数据库查询语句练习题含答案

Sql Server数据库查询语句练习题含答案

第三章综合练习1.创建一个数据库,数据库名字edu,数据文件逻辑名字edu_data,初始大小10M,最大为1024M,增长比例为每次1M;日志文件逻辑名字为edu_log,初始大小5M,最大为100M,按10%比例增长,这些文件都存储到E盘根目录下,并且物理文件名与逻辑文件名全部相同。

CREATE DATABASE eduON PRIMARY( NAME = N'educ_data', FILENAME = N'e:\educ_data.mdf' , SIZE = 10240KB , MAXSIZE = 1024M , FILEGROWTH = 1M)LOG ON( NAME = N'educ_log', FILENAME = N'e:\educ_log.ldf' , SIZE = 5M , MAXSIZE = 100M , FILEGROWTH = 10% )2.在edu数据库里创建一个架构,架构名字为自己名字的汉语拼音。

create schema zhangsan; --自己名字的汉语拼音3.在创建的架构中,创建如下表:表1 student表(学生信息表)表3 student_course表(学生选课成绩表)表4 teacher表(教师信息表)表6 department表(院系息表)创建表的时候必须建立主、外键关系。

create table zhangsan.department(dno char(6) primary key,dname char(8) not null,dhome varchar(40),dzipcode char(6),dtel varchar(40))create table zhangsan.student(sno char(8) not null primary key,sname char(8) not null,sex char(2),[native] char(20),birthday datetime,pno char(4),dno char(6),classno char(4),entime datetime,home varchar(40),tel varchar(40)foreign key(dno) references department(dno) )create table zhangsan.course(cno char(10) primary key,cname char(20) not null,cpno char(10),experiment tinyint,lecture tinyint,semester tinyint,credit tinyint,foreign key (cpno) references course(cno))create table zhangsan.student_course(sno char(8),cno char(10),score tinyint,primary key(sno,cno),foreign key(sno) references student(sno), foreign key(cno) references course(cno))create table zhangsan.teacher(tno char(8) primary key,tname char(8) not null,sex char(2),birthday datetime,dno char(6),pno tinyint,home varchar(40),zipcode char(6),tel varchar(40),email varchar(40),foreign key(dno) references department(dno))create table zhangsan.teacher_course(tcid smallint primary key,tno char(8),classno char(4),cno char(10) not null,semester char(6),schoolyear char(10),classtime varchar(40),classroom varchar(40),weektime tinyint,foreign key(tno) references teacher(tno),foreign key(cno) references course(cno))4.建立、删除索引(1)在student表的sname列建立唯一降序索引;create unique index IX_STUDENT_SNAME on zhangsan.student(sname desc)(2)在course表的credit列上建立升序索引;create index IX_COURSE_CREDIT on zhangsan.course(credit)(3)在student_course表的sno列上建立聚集索引。

SQL Server基础查询练习(附答案)

SQL Server基础查询练习(附答案)

--创建数据库USE[master]GOCREATEDATABASE[test]ONPRIMARY(NAME=N'test',FILENAME=N'D:\SQL\DataBase\test.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH= 1024KB)LOG ON(NAME=N'test_log',FILENAME=N'D:\SQL\DataBase\test_log.ldf',SIZE= 1024KB,MAXSIZE= 2048GB,FILEGROWTH= 10%)GOALTERDATABASE[test]SETCOMPATIBILITY_LEVEL= 90GOIF (1 =FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))beginEXEC[test].[dbo].[sp_fulltext_database]@action='enable'endGOALTERDATABASE[test]SETANSI_NULL_DEFAULTOFFGOALTERDATABASE[test]SETANSI_NULLSOFFGOALTERDATABASE[test]SETANSI_PADDINGOFFGOALTERDATABASE[test]SETANSI_WARNINGSOFFGOALTERDATABASE[test]SETARITHABORTOFFGOALTERDATABASE[test]SETAUTO_CLOSEOFFGOALTERDATABASE[test]SETAUTO_CREATE_STATISTICSONGOALTERDATABASE[test]SETAUTO_SHRINKOFFGOALTERDATABASE[test]SETAUTO_UPDATE_STATISTICSONGOALTERDATABASE[test]SETCURSOR_CLOSE_ON_COMMITOFFGOALTERDATABASE[test]SETCURSOR_DEFAULTGLOBALGOALTERDATABASE[test]SETCONCAT_NULL_YIELDS_NULLOFFGOALTERDATABASE[test]SETNUMERIC_ROUNDABORTOFFGOALTERDATABASE[test]SETQUOTED_IDENTIFIEROFFGOALTERDATABASE[test]SETRECURSIVE_TRIGGERSOFFGOALTERDATABASE[test]SETDISABLE_BROKERGOALTERDATABASE[test]SETAUTO_UPDATE_STATISTICS_ASYNCOFF GOALTERDATABASE[test]SETDATE_CORRELATION_OPTIMIZATIONOFF GOALTERDATABASE[test]SETTRUSTWORTHYOFFGOALTERDATABASE[test]SETALLOW_SNAPSHOT_ISOLATIONOFFGOALTERDATABASE[test]SETPARAMETERIZATIONSIMPLEGOALTERDATABASE[test]SETREAD_COMMITTED_SNAPSHOTOFFGOALTERDATABASE[test]SETREAD_WRITEALTERDATABASE[test]SETRECOVERYSIMPLEGOALTERDATABASE[test]SETMULTI_USERGOALTERDATABASE[test]SETPAGE_VERIFY CHECKSUMGOALTERDATABASE[test]SETDB_CHAININGOFFGO--创建表USE testCREATETABLE emp(EMPNO NUMERIC(5, 0)NOTNULL,ENAME NVARCHAR(10),JOB NVARCHAR(9),MGR NUMERIC(5, 0),HIREDATE DATETIME,SAL NUMERIC(7, 2),COMM NUMERIC(7, 2),DEPTNO NUMERIC(2, 0),)CREATETABLE dept(DEPTNO NUMERIC(2),DNAME NVARCHAR(14),LOC NVARCHAR(13),)--插入数据INSERTINTO EMP VALUES(7369,'SMITH','CLERK', 7902,'2000-12-17', 800,NULL, 20)。

sql server考试题

sql server考试题

sql server考试题SQL Server考试题指的是针对SQL Server数据库管理系统进行考试的相关题目。

这些题目用于测试考生对SQL Server的掌握程度,包括理论知识、操作技能和问题解决能力等方面。

示例:1.单选题:在SQL Server中,用于创建表的语句是:A. CREATE INDEXB. CREATE DATABASEC. CREATE TABLED. CREATE VIEW答案:C. CREATE TABLE。

2.多选题:在SQL Server中,可以使用哪些语句进行数据查询?A. SELECTB. DELETEC. UPDATED. INSERT答案:A、B、C、D。

在SQL Server中,SELECT、DELETE、UPDATE和INSERT都是用于数据查询的语句。

3.简答题:请简述SQL Server中的事务处理的概念及其作用。

答案:事务处理是SQL Server中的一个重要概念,它是一个完整的业务逻辑单元,可以确保数据库的完整性和一致性。

事务可以确保一系列操作要么全部成功执行,要么全部不执行,从而保持数据库的一致性状态。

事务处理的作用是确保数据的完整性和避免数据损坏或不一致的情况。

4.案例分析题:给定一个数据库表结构,要求编写一个查询语句,从表中检索符合特定条件的记录,并按照一定顺序对结果进行排序。

答案:根据具体的表结构和条件要求,编写相应的SELECT语句,并使用WHERE子句来筛选符合条件的记录。

然后使用ORDER BY子句对结果进行排序。

具体的查询语句和排序方式应根据实际情况进行调整。

总结来说,SQL Server考试题指的是针对SQL Server数据库管理系统进行的考试所使用的相关题目。

这些题目用于测试考生对SQL Server的掌握程度,包括理论知识、操作技能和问题解决能力等方面。

考生需要通过学习和实践来掌握相关知识和技能,以顺利通过考试。

sql server经典练习题

sql server经典练习题

sql server经典练习题SQL Server是一种关系型数据库管理系统,被广泛应用于企业和个人的数据管理。

熟练掌握SQL Server的使用和编程技巧对于数据库开发人员至关重要。

本文将介绍一些SQL Server的经典练习题,帮助读者巩固和提升SQL Server的技术能力。

1. 查询表中所有的列名和数据类型在SQL Server中,我们可以使用以下语句查询表中所有的列名和对应的数据类型:```sqlSELECT COLUMN_NAME, DATA_TYPEFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME = 'YourTableName'```将上述代码中的"YourTableName"替换为你需要查询的表名,即可获得相应的结果。

2. 查询表中的前N条数据有时候我们只需要查看表中的前几条数据,可以使用以下语句实现:```sqlSELECT TOP N *FROM YourTableName```将上述代码中的"N"替换为你需要查询的条数,"YourTableName"替换为你需要查询的表名。

3. 查询表中符合某个条件的数据要查询表中符合某个条件的数据,可以使用以下语句:```sqlSELECT *FROM YourTableNameWHERE Condition```将上述代码中的"YourTableName"替换为你需要查询的表名,"Condition"替换为你需要的条件。

例如,要查询表中年龄大于18岁的员工信息:```sqlSELECT *FROM EmployeeWHERE Age > 18```4. 对表进行排序我们可以使用ORDER BY子句对表中的数据进行排序。

以下是一个示例:```sqlSELECT *FROM YourTableNameORDER BY ColumnName ASC|DESC```将上述代码中的"YourTableName"替换为你需要查询的表名,"ColumnName"替换为你需要排序的列名,"ASC"表示升序排列,"DESC"表示降序排列。

Sql-Server数据库查询语句练习题含标准答案

Sql-Server数据库查询语句练习题含标准答案

第三章综合练习
1.创建一个数据库,数据库名字edu,数据文件逻辑名字edu_data,初始大小10M,最大为1024M,增长比例为每次1M;日志文件逻辑名字为edu_log,初始大小5M,最
大为100M,按10%比例增长,这些文件都存储到E盘根目录下,并且物理文件
名与逻辑文件名全部相同。

CREATE DATABASE edu
ON PRIMARY
( NAME = N'educ_data', = N'e:\educ_data.mdf' , SIZE = 10240KB , MAXSIZE = 1024M , = 1M)
LOG ON
( NAME = N'educ_log', = N'e:\educ_log.ldf' , SIZE = 5M , MAXSIZE = 100M , = 10% )
2.在edu数据库里创建一个架构,架构名字为自己名字的汉语拼音。

create schema zhangsan; --自己名字的汉语拼音
3.在创建的架构中,创建如下表:
表1 student表(学生信息表)
表3 student_course表(学生选课成绩表)
表4 teacher表(教师信息表)
表6 department表(院系息表)
创建表的时候必须建立主、外键关系。

create table zhangsan.department(。

sql server练习题

sql server练习题

sql server练习题本文将围绕SQL Server练习题展开探讨,帮助读者提升SQL Server的应用能力和解决问题的能力。

一、基础练习1. 创建一个名为"Employees"的表,包含以下字段:员工ID、姓名、性别、年龄、部门ID。

并插入几条员工记录。

2. 查询出所有部门ID为1的员工记录,按照员工ID升序排列。

3. 将性别为男性的所有员工的年龄增加5岁。

4. 删除年龄大于50岁的员工记录。

二、高级练习1. 创建一个存储过程,该存储过程接受一个部门ID作为参数,返回该部门的员工人数。

2. 编写一个触发器,当在"Employees"表中插入新记录时,自动更新对应部门的员工人数。

3. 创建一个视图,显示每个部门所拥有的员工人数。

4. 编写一个存储过程,该存储过程接受两个参数(部门ID和年龄增量),将指定部门的所有员工的年龄增加指定的增量。

三、性能优化1. 分析并优化下面的SQL查询语句,提高查询性能:```SELECT * FROM Employees WHERE Age BETWEEN 30 AND 40```2. 设计并实施一个索引策略,提高"Employees"表的查询性能。

3. 使用查询执行计划分析下面的SQL查询语句,找出潜在的性能瓶颈并提出优化建议:```SELECT , D.DepartmentName FROM Employees E JOIN Departments D ON E.DepartmentID = D.ID WHERE E.Age > 25```四、应用开发1. 设计一个数据库模型,用于存储一个图书馆的图书、作者和借阅记录信息。

2. 编写一个存储过程,根据图书ID检查该图书是否可借阅。

如果可借阅,则将借阅信息插入借阅记录表。

3. 创建一个视图,显示每本图书的名称、作者和借阅次数。

4. 设计并实现一个包含身份验证的应用程序,该应用程序连接SQL Server数据库,提供用户登录和访问受限制的功能。

查询练习(SQL Server)

查询练习(SQL Server)

查询练习题答案多表查询在FROM后跟随多个表。

练习题01:SELECT姓名,性别,班主任FROM学生,班级WHERE学生.班级编号=班级.班级编号AND已修学分<20练习题02:SELECT班主任FROM学生,班级WHERE姓名='王林'AND学生.班级编号=班级.班级编号练习题03:SELECT学生.*FROM学生,班级WHERE班主任='刘成河'AND性别='男'AND学生.班级编号=班级编号练习题04:SELECT学生.学号,姓名,班级.班级名称,分数FROM学生,班级,成绩,课程WHERE学生.班级编号=班级.班级编号And学生.学号=成绩.学号And成绩.课程编号=课程.课程编号And课程名称='中国历史'练习题05:SELECT姓名,课程名称,分数FROM成绩,学生,课程WHERE成绩.学号=学生.学号AND成绩.课程编号=课程.课程编号嵌套查询练习题01:SELECT*FROM学生WHERE性别='男'AND班级编号=(SELECT班级编号FROM班级WHERE班主任='刘成河')练习题02:SELECT课程名称FROM课程WHERE课程编号NOT IN(SELECT课程编号FROM成绩WHERE分数<60)练习题03:SELECT班级名称FROM班级WHERE班级编号NOT IN(SELECT DISTINCT班级编号FROM学生WHERE学号IN(SELECT学号FROM成绩WHERE分数<60))AND班级编号IN(SELECT DISTINCT班级编号FROM学生)或SELECT班级名称FROM班级WHERE NOT EXISTS(SELECT学号FROM学生WHERE学生.班级编号=班级.班级编号AND EXISTS(SELECT*FROM成绩WHERE学生.学号=成绩.学号AND分数<60))And班级编号In(SELECT班级编号FROM学生)练习题04:SELECT学生.学号,姓名FROM学生,成绩WHERE学生.学号=成绩.学号AND分数>=95练习题05:SELECT学生.学号,姓名FROM学生,课程,成绩WHERE学生.学号=成绩.学号AND成绩.课程编号=课程.课程编号AND分数>=95 AND课程名称='计算机应用'练习题06:SELECT姓名,分数FROM学生,成绩WHERE学生.学号=成绩.学号AND班级编号=(SELECT班级编号FROM班级WHERE班级名称='数学专业')AND课程编号=(SELECT课程编号FROM课程WHERE课程名称='数学')三个特殊运算符练习题01:SELECT班级名称FROM班级WHERE班级编号NOT IN(SELECT DISTINCT班级编号FROM学生)练习题02:SELECT课程编号,课程名称FROM课程WHERE NOT EXISTS(SELECT学号FROM学生WHERE学号NOT IN(SELECT学号FROM成绩WHERE课程.课程编号=成绩.课程编号AND分数>=60))练习题03:SELECT*FROM学生WHERE已修学分BETWEEN 15 AND 20练习题04:SELECT*FROM学生WHERE出生日期BETWEEN'1983-6-1'AND'1984-6-1'AND民族!='汉族'练习题05:SELECT姓名,性别,班级名称FROM学生,班级WHERE已修学分BETWEEN 15 AND 20AND学号IN(SELECT学号FROM成绩WHERE分数>=80 AND课程编号=(SELECT课程编号FROM课程WHERE课程名称='自然辨证法'))AND学生.班级=班级.班级编号练习题06:SELECT*FROM学生WHERE出生地LIKE'湖北%'练习题07:SELECT*FROM学生WHERE出生地LIKE'%武汉%'练习题08:SELECT姓名,班级名称FROM学生,班级WHERE学生.班级编号=班级编号AND班主任='郭大壮'AND 出生地LIKE'%武汉%'练习题09:SELECT姓名FROM学生WHERE性别='男'AND EXISTS(SELECT分数FROM成绩,课程WHERE学生.学号=成绩.学号AND成绩.课程编号=课程.课程编号AND任课教师='辛有余')或SELECT姓名FROM学生WHERE性别='男'AND学号IN(SELECT学号FROM成绩WHERE课程编号IN(SELECT课程编号FROM课程WHERE任课教师='辛有余'))或SELECT DISTINCT姓名FROM学生,课程WHERE性别='男'AND任课教师='辛有余'AND EXISTS(SELECT*FROM成绩WHERE学生.学号=成绩.学号AND成绩.课程编号=课程.课程编号);聚合函数及其分组查询练习题01:SELECT AVG(已修学分)FROM学生WHERE班级编号IN(SELECT班级编号FROM班级WHERE班级名称='软件工程'OR班级名称='计算机应用')练习题02:SELECT SUM(分数)FROM成绩WHERE学号IN(SELECT学号FROM学生WHERE姓名='李建')练习题03:SELECT TOP 1 姓名,分数FROM学生,成绩WHERE学生.学号=成绩.学号AND课程编号=(SELECT课程编号FROM课程WHERE课程名称='数学')ORDER BY分数DESC练习题04:SELECT课程编号,AVG(分数)FROM成绩GROUP BY课程编号练习题05:SELECT学号,SUM(分数)FROM成绩GROUP BY学号练习题06:计算出辛有余老师所任课程中每门课程的课程编号和学生平均考试分数。

sql server 练习题

sql server 练习题

sql server 练习题SQL Server 练习题SQL Server 是一种关系型数据库管理系统,广泛应用于企业级应用程序和数据存储。

掌握 SQL Server 的技能对于数据库开发人员和数据分析师来说至关重要。

为了提高自己的 SQL Server 技能,下面将介绍一些 SQL Server 练习题,帮助读者加深对 SQL Server 的理解和应用。

1. 数据查询假设有一个名为 "Employees" 的表,其中包含员工的姓名、年龄、性别和薪水等信息。

请编写一条 SQL 查询语句,找出薪水最高的员工。

解答:```SELECT TOP 1 * FROM Employees ORDER BY Salary DESC;```这条查询语句将按照薪水降序排列表中的记录,并返回第一条记录,即薪水最高的员工。

2. 数据过滤在上述的 "Employees" 表中,如果要筛选出薪水在 5000 到 8000 之间的员工,应该如何编写 SQL 查询语句?解答:```SELECT * FROM Employees WHERE Salary BETWEEN 5000 AND 8000;```这条查询语句使用了 BETWEEN 操作符来筛选出薪水在指定范围内的员工。

3. 数据排序和分组在"Employees" 表中,如果要按照年龄从小到大的顺序显示员工的姓名和年龄,应该如何编写 SQL 查询语句?解答:```SELECT Name, Age FROM Employees ORDER BY Age ASC;```这条查询语句将按照年龄升序排列表中的记录,并只返回姓名和年龄这两列。

4. 数据聚合在 "Employees" 表中,如果要计算员工的平均薪水,应该如何编写 SQL 查询语句?解答:```SELECT AVG(Salary) AS AverageSalary FROM Employees;```这条查询语句使用了 AVG() 聚合函数来计算平均薪水,并使用 AS 关键字给结果列起了一个别名。

sqlserve试题汇总

sqlserve试题汇总

1. 当使用DataAdapter将从数据源查询信息时,DataAdapter使用(D )读取从Command得到的数据,并将其保存在DataSet中。

A.StreamReaderB.TextReaderC.XmlReaderD.DataReader2. Employee是SQL Server2005数据库中的一个数据表。

为执行以下SQL语句从表中检索数据,应使用Command对象的(C )方法。

Select*from EmployeeA ExecuteScalarB ExecuteXmlReaderC ExecuteReaderD ExecuteNonQuery3. 在中,为检查DataTale对象的结构,可使用DataTable对象的(B )属性。

A RowsB ColumnsC ConstraintsD DataSet4. 参考下列C#语句:Sqlconnection Conn1 = new SqlConnection();Conn1.ConnectionString = “Integrated Security=SSPI;InitialCatalog=northwind;Pooling = False”;Conn1.Open();Sqlconnection Conn2 = new SqlConnection();Conn1.ConnectionString = “Integrated Security=SSPI;InitialCatalog=northwind;Pooling = False”;Conn2.Open();请问:上述语句将创建(A)个连接池来管理这些Sqlconnection对象。

A 0B 1C 2 D.35. 为了将某个sqlcommond对象的参数p1设置为输出参数应该(C )A p1.ParamerterDirection = SqlParamerter.OutputB p1.Directon = SqlParamerterDirection.OutputC p1.Directon = ParamerterDirection.OutputD p1. ParamerterDirection = ParamerterDirection.Output6. 我们已知SQL Server 2005数据库MyDB中包含表MyTable。

sqlserver经典查询练习题目

sqlserver经典查询练习题目

sqlserver经典查询练习题目--创建测试数据use testcreate table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10))insert into Course values('01' , N'语文' , '02')insert into Course values('02' , N'数学' , '01')insert into Course values('03' , N'英语' , '03')create table Teacher(T# varchar(10),Tname nvarchar(10))insert into Teacher values('01' , N'张三')insert into Teacher values('02' , N'李四')insert into Teacher values('03' , N'王五')create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)insert into SC values('02' , '02' , 60)insert into SC values('02' , '03' , 80)insert into SC values('03' , '01' , 80)insert into SC values('03' , '02' , 80)insert into SC values('03' , '03' , 80)insert into SC values('04' , '01' , 50)insert into SC values('04' , '02' , 30)insert into SC values('04' , '03' , 20)insert into SC values('05' , '01' , 76)insert into SC values('05' , '02' , 87)insert into SC values('06' , '01' , 31)insert into SC values('06' , '03' , 34)insert into SC values('07' , '02' , 89)insert into SC values('07' , '03' , 98)go--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数--1.1、查询同时存在"01"课程和"02"课程的情况--1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)--2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数--2.1、查询同时存在"01"课程和"02"课程的情况--2.2、查询同时存在"01"课程和"02"课程的情况和不存在"01"课程但存在"02"课程的情况--3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩--4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩--4.1、查询在sc表存在成绩的学生信息的SQL语句。

sqlserver测试题及答案

sqlserver测试题及答案

Sql server一期内部测试题一选择题1、_______是指组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。

(选择1项)A) 表型B) 记录C) 属性D)关键字2、在SQL查询时,使用()子句指出的是分组后的条件。

(选择1项)A) WHEREB) HA VINGC) WHEND)GROUP3、已知关系:员工(员工号,姓名,部门号,薪水)PK=员工号FK=部门号部门(部门号,部门名称,部门经理员工号)PK=部门号(PK指的式主键FK指的式外键)现在要查询部门员工的平均工资大于3000的部门名称及平均工资,下面哪两句查询正确:(选择2项)A)SELECT 部门名称,A VG(薪水)FROM 部门P,员工E WHERE E.部门号=(SELECT部门号FROM 部门WHERE 部门名称= P.部门名称)GROUP BY 部门名称HA VING A VG(薪水)> 3000B) SELECT 部门名称,A VG(薪水) FROM 部门P INNER JOIN 员工E ON P.部门号=E.部门号GROUP BY 部门名称WHERE A VG(薪水)> 3000C)SELECT 部门名称,A VG(薪水) FROM 部门P INNER JOIN 员工E ON P.部门号=E.部门号GROUP BY 部门名称HA VING A VG(薪水)> 3000D)SELECT 部门名称,A VG(薪水) FROM 部门P,员工 E WHERE P.部门号=(SELECT部门号FROM 部门WHERE 部门名称= P.部门名称)GROUP BY 部门名称HA VING A VG(薪水)> 30004、要将表userInfo从数据库中删除,用以下的哪个命令?(选择1项)A) DROP TABLE userInfoB) TRUNCATE TABLE userInfoC) DELETE FROM userInfoD) DROP FROM userInfo5、在以下哪种情况下使用主键约束而不使用唯一约束:(选择1项)A) 列的值允许为空值B) 列有外键引用C) 列的值不允许为空值D) 以上都不对6、在数据库表employee中查找字段empid中以两个数字开头第三个字符是下画线“_”的所有记录。

SQL SERVER练习题及答案

SQL SERVER练习题及答案

题目1:问题描述:为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名--实现代码:SELECT SN,SD FROM SWHERE [S#] IN(SELECT [S#] FROM C,SCWHERE C.[C#]=SC.[C#]AND CN=N\'税收基础\')2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位--实现代码:SELECT S.SN,S.SD FROM S,SCWHERE S.[S#]=SC.[S#]AND SC.[C#]=\'C2\'3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] NOT IN(SELECT [S#] FROM SCWHERE [C#]=\'C5\')4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] IN(SELECT [S#] FROM SCRIGHT JOINC ON SC.[C#]=C.[C#] GROUP BY [S#]HA VING COUNT(*)=COUNT([S#]))5. 查询选修了课程的学员人数--实现代码:SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC6. 查询选修课程超过5门的学员学号和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] IN(SELECT [S#] FROM SCGROUP BY [S#]HA VING COUNT(DISTINCT [C#])>5)题目2问题描述:本题用到下面三个关系表:CARD 借书卡。

SQ查询经典40题

SQ查询经典40题

SQL SERVER查询经典40题create database test3use test3--1.学生表create table student(s# varchar(10),sname varchar(10),sage datetime,ssex varchar(10));insert into studentvalues('01','赵雷','1990-01-01','男') insert into studentvalues('02','钱电','1990-12-21','男') insert into studentvalues('03','孙风','1990-05-20','男') insert into studentvalues('04','李云','1990-08-06','女') insert into studentvalues('05','周梅','1991-12-01','女') insert into studentvalues('06','吴兰','1992-03-01','女') insert into studentvalues('07','郑竹','1989-07-01','女') insert into studentvalues('08','王菊','1990-01-20','女') create table course(c# varchar(10),cname varchar(10),t# varchar(10));insert into coursevalues('01','语文','02')insert into coursevalues('02','数学','01')insert into coursevalues('03','英语','03')create table teacher(t# varchar(10),tname varchar(10),);insert into teachervalues('01','张兰')insert into teachervalues('02','李四')insert into teachervalues('03','王五')create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))insert into sc values('01','01', 80)insert into sc values('01','02', 90)insert into sc values('01','03', 99)insert into sc values('02','01', 70)insert into sc values('02','02', 60)insert into sc values('02','03', 80)insert into sc values('03','01', 80)insert into sc values('03','02', 80)insert into sc values('03','03', 80)insert into sc values('04','01', 50)insert into sc values('04','02', 30)insert into sc values('04','03', 20)insert into sc values('05','01', 76)insert into sc values('05','02', 87)insert into sc values('06','01', 31)insert into sc values('06','03', 34)insert into sc values('07','02', 89)insert into sc values('07','03', 98)go--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数--1.1、查询同时存在"01"课程和"02"课程的情况select st.s#,st.sname,b.score,c.scorefrom student stinner join sc bon st.s#=b.s# and b.c#='01'inner join sc con st.s#=c.s# and c.c#='02'where b.score>c.score--1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但--可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)select st.s#,st.sname,b.score,c.scorefrom student stleft join sc bon st.s#=b.s# and b.c#='01'left join sc con st.s#=c.s# and c.c#='02'where b.score >isnull(c.score,0)-- ISNULL(check_expression,replacement_value)--2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数--2.1、查询同时存在"01"课程和"02"课程的情况select st.s#,st.sname,b.score,c.scorefrom student stinner join sc bon st.s#=b.s# and b.c#='01'inner join sc con st.s#=c.s# and c.c#='02'where b.score <c.score--2.2、查询同时存在"01"课程和"02"课程的情况和不存在"01"课程--但存在"02"课程的情况select st.s#,st.sname,b.score,c.scorefrom student stleft join sc bon st.s#=b.s# and b.c#='01'left join sc con st.s#=c.s# and c.c#='02'where isnull(b.score,0)<c.score--3、查询平均成绩大于等于分的同学的学生编号和学生姓名和平均成绩select st.s#,st.sname,cast(avg(sc.score)asdecimal(18,2))平均成绩from student stinner join scon st.s#=sc.s#group by st.s#,st.snamehaving cast(avg(sc.score)as decimal(18,2))>60 order by平均成绩desc--4、查询平均成绩小于分的同学的学生编号和学生姓名和平均成绩--4.1、查询在sc表存在成绩的学生信息的SQL语句。

SQLServer基础练习题及答案

SQLServer基础练习题及答案
5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩 select sum(score) as 总成绩 from A_studentcourse where sno ='S001'
6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩 select max(score) as 最高成绩 from A_studentcourse where cno='C001'
一、单表查询练习 1、查询<学生信息表>,查询学生"张三"的全部基本信息 Select * from A_studentinfo where sname='张三'
2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息 Select * from A_studentinfo where sname='张三' or sname='李四'
3、查询<学生信息表>,查询姓"张"学生的基本信息 Select * from A_studentinfo where sname like '张%'
4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息 Select * from A_studentinfo where sname like '%四%'
11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份 select distinct province as 省份 from A_studentinfo
12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩 Select * from A_studentcourse where score is null

SQL查询语句练习(50题)

SQL查询语句练习(50题)

SQL查询语句练习(50题)Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;2、查询平均成绩大于60分的同学的学号和平均成绩;3、查询所有同学的学号、姓名、选课数、总成绩;4、查询姓“李”的老师的个数;5、查询没学过“叶平”老师课的同学的学号、姓名;6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;9、查询所有课程成绩小于60分的同学的学号、姓名;10、查询没有学全所有课的同学的学号、姓名;11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;15、删除学习“叶平”老师课的SC表记录;16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、002号课的平均成绩;17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分19、按各科平均成绩从低到高和及格率的百分数从高到低顺序20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)21、查询不同老师所教不同课程平均分从高到低显示22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]24、查询学生平均成绩及其名次25、查询各科成绩前三名的记录:(不考虑成绩并列情况)26、查询每门课程被选修的学生数27、查询出只选修了一门课程的全部学生的学号和姓名28、查询男生、女生人数29、查询姓“张”的学生名单30、查询同名同性学生名单,并统计同名人数31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数35、查询所有学生的选课情况;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;37、查询不及格的课程,并按课程号从大到小排列38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;39、求选了课程的学生人数40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩41、查询各个课程及相应的选修人数42、查询不同课程成绩相同的学生的学号、课程号、学生成绩43、查询每门功成绩最好的前两名44、统计每门课程的学生选修人数(超过10人的课程才统计)。

SQLserver查询语句练习题

SQLserver查询语句练习题

SQLserver查询语句练习题⽤SQL语句创建四个表:create database tongjigouse tongjigocreate table student(Sno varchar(20) not null primary key ,--学号Sname varchar(20) not null,--学⽣姓名Ssex varchar(20) not null, --学⽣性别Sbirthday datetime,--学⽣出⽣年⽉Class varchar(20)--学⽣所在班级)gocreate table teacher--⽼师(Tno varchar(20) not null primary key ,--教⼯编号(主码)Tname varchar(20) not null,--教⼯姓名Tsex varchar(20) not null, --教⼯性别Tbirthday datetime,--教⼯出⽣年⽉Prof varchar(20),--职称Depart varchar(20) not null--教⼯所在部门)gocreate table Course--课程(Cno varchar(20) not null primary key ,--课程号Cname varchar(20) not null,--课程名称Tno varchar(20) not null references teacher(Tno), --教⼯编号(外码))gocreate table Score--分数(Sno varchar(20) not null references student(Sno), --学号(外码)Cno varchar(20) not null references Course(Cno), --课程号(外码)primary key(Sno,Cno),Degree Decimal(4,1),--成绩)表中数据如下:表(⼀)StudentSno Sname Ssex Sbirthday class108曾华男1977-09-0195033105匡明男1975-10-0295031107王丽⼥1976-01-2395033101李军男1976-02-2095033109王芳⼥1975-02-1095031103陆君男1974-06-0395031表(⼆)CourseCno Cname Tno3-105计算机导论8253-245操作系统8043-245操作系统8046-166数字电路8569-888⾼等数学831表(三)ScoreSno Cno Degree1033-245861053-245751093-245681033-105921053-105881093-105761013-105641073-105911083-105781016-166851076-166791086-16681表(四)TeacherTno Tname Tsex Tbirthday Prof Depart804李诚男1958-12-02副教授计算机系856张旭男1969-03-12讲师电⼦⼯程系825王萍⼥1972-05-05助教计算机系831刘冰⼥1977-08-14助教电⼦⼯程系1、查询Student表中的所有记录的Sname、Ssex和Class列。

SQL SERVER查询练习习题

SQL SERVER查询练习习题

设教学数据库Education有三个关系:学生关系s(student_id,student_name,birthday,sex,major);学习关系sc(student_id,course_id,score);课程关系course(course_id,course_name,term,period,credit)查询问题:单表查询1:查所有年龄在20岁以下的学生姓名及年龄。

select student_name,year(getdate()) - year(birthday) as 年龄from swhere year(getdate()) - year(birthday) < 302:查考试成绩有不及格的学生的学号select distinct student_idfrom scwhere score < 603:查所年龄在20至23岁之间的学生姓名、系别及年龄。

select student_name,major,year(getdate()) - year(birthday) as 年龄from swhere year(getdate()) - year(birthday) between 20 and 244:查舞蹈编导、英语、通信技术专业的学生姓名、性别。

select student_name, sexfrom swhere major in ('舞蹈编导','英语','通信技术')5:查不是舞蹈编导、英语、通信技术的学生姓名、性别select student_name, sexfrom swhere major not in ('舞蹈编导','英语','通信技术')6:查所有姓“刘”的学生的姓名、学号和性别。

select student_name,student_id,sexfrom swhere student_name like '刘%'8:查所有不姓“张”且单名的学生的姓名。

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

SQL server 查询语句练习题用SQL语句创建四个表:create database tongjigouse tongjigocreate table student(Sno varchar(20) not null primary key ,--学号Sname varchar(20) not null,--学生姓名Ssex varchar(20) not null, --学生性别Sbirthday datetime,--学生出生年月Class varchar(20)--学生所在班级)gocreate table teacher--老师(Tno varchar(20) not null primary key ,--教工编号(主码)Tname varchar(20) not null,--教工姓名Tsex varchar(20) not null, --教工性别Tbirthday datetime,--教工出生年月Prof varchar(20),--职称Depart varchar(20) not null--教工所在部门)gocreate table Course--课程(Cno varchar(20) not null primary key ,--课程号Cname varchar(20) not null,--课程名称Tno varchar(20) not null references teacher(Tno), --教工编号(外码))gocreate table Score--分数(Sno varchar(20) not null references student(Sno), --学号(外码)Cno varchar(20) not null references Course(Cno), --课程号(外码)primary key(Sno,Cno),Degree Decimal(4,1),--成绩)表中数据如下:表(一)Student6、查询Student表中“95031”班或性别为“女”的同学记录。

select * from student where class='95031' or Ssex='女'7、以Class降序查询Student表的所有记录。

select * from student order by class desc8、以Cno升序、Degree降序查询Score表的所有记录。

select * from score order by cno,degree desc9、查询“95031”班的学生人数。

select count(*) from student where class='95031'10、查询Score表中的最高分的学生学号和课程号。

(子查询或者排序)select sno,cno from score where degree =(select max(degree) from score)11、查询每门课的平均成绩。

select cno,avg(degree) from score group by cno12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

select avg(degree) from score where cno like'3%' group by cno having count(*)>=5select avg(degree) from score group by cno having count(*)>=5 and cno like'3%'13、查询分数大于70,小于90的Sno列。

select sno from score where degree>70 and degree<9014、查询所有学生的Sname、Cno和Degree列。

select sname,cno,degree from score join student on score.sno = student.sno15、查询所有学生的Sno、Cname和Degree列。

select sno,cname,degree from score join course on o=o16、查询所有学生的Sname、Cname和Degree列。

select sname,cname,degree from score join student on student.sno=score.sno join course on o = oselect sname,cname,degree from score,student,course wherestudent.sno=score.sno and o = o17、查询“95033”班学生的平均分。

select avg(degree) from score where sno in(select sno from student whereclass='95033')18、假设使用如下命令建立了一个grade表:create table grade(low int(3),upp int(3),rank char(1))insert into grade values(90,100,’A’)insert into grade values(80,89,’B’)insert into grade values(70,79,’C’)insert into grade values(60,69,’D’)insert into grade values(0,59,’E’)现查询所有同学的Sno、Cno和rank列。

select sno,cno,rank from score,grade where degree between low and upp19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

select * from score where cno='3-105' and degree>(select degree from score where sno='109' and cno='3-105')select * from score where cno='3-105' and degree>(select max(degree) from score where sno='109')20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。

select * from score a where sno in (select sno from score group by sno having count(*)>1) and degree <(select max(degree) from score b where o=o)21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。

select * from score where degree>(select degree from score where sno='109' and cno='3-105')22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

select * from student where YEAR(sbirthday) = (select YEAR(sbirthday) from student where sno='108')23、查询“张旭“教师任课的学生成绩。

select * from score where cno in(select cno from course where tno in(select tno from teacher where tname='张旭'))24、查询选修某课程的同学人数多于5人的教师姓名。

select tname from teacher where tno in(select tno from course where cno in(select cno from score group by cno having count(*)>=5))25、查询95033班和95031班全体学生的记录。

select * from student where class in('95033','95031')26、查询存在有85分以上成绩的课程Cno.select distinct cno from score where degree>8527、查询出“计算机系“教师所教课程的成绩表。

select * from score where cno in(select cno from course where tno in(select tno from teacher where depart='计算机系'))28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。

select tname,prof from teacher where depart='计算机系' and prof not in(select prof from teacher where depart='电子工程系')unionselect tname,prof from teacher where depart='电子工程系' and prof not in(select prof from teacher where depart='计算机系')select tname,prof from teacher a where prof not in(select prof from teacher b where b.depart != a.depart)29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno 和Degree,并按Degree从高到低次序排序。

select * from score where cno='3-105' and degree>any(select degree from score where cno='3-245')30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.select * from score where cno='3-105' and degree>any(select degree from score where cno='3-245')31、查询所有教师和同学的name、sex和birthday.select sname,ssex,sbirthday from studentunionselect tname,tsex,tbirthday from teacher32、查询所有“女”教师和“女”同学的name、sex和birthday.select sname,ssex,sbirthday from student where ssex='女'unionselect tname,tsex,tbirthday from teacher where tsex='女'33、查询成绩比该课程平均成绩低的同学的成绩表。

相关文档
最新文档