Sql Server SQL练习题
SQL Server基础查询练习(附答案)
![SQL Server基础查询练习(附答案)](https://img.taocdn.com/s3/m/441c845c01f69e314332944c.png)
--创建数据库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经典练习题](https://img.taocdn.com/s3/m/293a172ba88271fe910ef12d2af90242a895ab25.png)
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复习题汇总](https://img.taocdn.com/s3/m/5c7f783bf011f18583d049649b6648d7c1c70883.png)
SQL_Server复习题汇总SQLServer复习题一、选择题1、数据库系统的主要特征是(ABCD)A、数据的冗余度小B、数据的结构化C、数据独立性高D、数据可以共享2、下面不属于关系数据库管理系统的是(B)A、OracleB、IMSC、SQLServerD、DB23、数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A)。
A、DBS包括DB和DBMSB、DBMS包括DB和DBSC、DB包括DBS和DBMSD、DBS就是DB,也就是DBMS4、(C)是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。
A、操作系统B、关系模型C、数据库管理系统D、数据库5、下列四项说法中不正确的是(C)A、数据库减少了数据冗余B、数据库中的数据可以共享C、数据库避免了一切数据的重复D、数据库具有较高的数据独立性6、下列特点中哪个不是数据库系统阶段的特点(C)。
A.数据共享B.数据冗余大C.完善的数据控制D.数据和程序相互独立7、数据库设计中概念模型设计阶段的主要描述工具是(C)。
A.数据字典B.流程图C.E-R图D.二维表格8、关系模型的基本数据结构是(B)A、树B、二维表C、图D、二叉树9、将E-R模型转换成关系模型的过程,属于数据库设计的(C)阶段。
A、矩形B、直线C、菱形D、椭圆11、为了防止多个用户对数据库的同一数据进行非法存取操作,DBMS 必须提供(A).A、安全性保护B、完整性保护C、故障恢复D、并发控制12、按照数据模型分类,数据库管理系统可分为(C)。
A.关系型,概念型,网状B.内模式,概念模式,外模式C.关系型,层次型,网状模型D.SQLServer,oracle,DB213、SQLServer安装程序创建4个系统数据库,下列哪个不是系统数据库(C)。
A.materB.modelC.AdventureWorkD.mdb14、SQLerver数据库文件有三类,其中主数据文件的后缀为(C)A、NDFB、LDFC、MDFD、IDF15、SQLerver数据库文件有3类,其中日志文件的后缀为(B)A..ndfB..ldfC..mdfD..idf16、附加数据库时,在【附加数据库】对话框中,选择(B)文件文件路径。
sqlserver考试试题库
![sqlserver考试试题库](https://img.taocdn.com/s3/m/05f01d3ecbaedd3383c4bb4cf7ec4afe04a1b182.png)
sqlserver考试试题库SQL Server考试试题库是一个专为准备SQL Server相关认证考试的考生设计的资源库。
以下是一些模拟考试题目,涵盖了SQL Server的基础知识、高级查询技术、性能优化、安全性以及数据库管理等方面。
一、选择题1. 在SQL Server中,以下哪个不是系统表?A. sys.databasesB. sys.tablesC. sys.columnsD. Customers2. 以下哪个SQL语句用于创建数据库?A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE PROCEDURE3. SQL Server中的事务可以保证哪些特性?A. 原子性、一致性、隔离性B. 原子性、一致性、持久性C. 原子性、隔离性、持久性D. 所有选项都是4. 以下哪个选项不是SQL Server的索引类型?A. 聚集索引B. 非聚集索引C. 唯一索引D. 复合索引5. SQL Server中,以下哪个命令用于备份数据库?A. BACKUP DATABASEB. BACKUP TABLEC. BACKUP INDEXD. BACKUP LOG二、简答题1. 解释SQL Server中的死锁是什么,并给出解决死锁的一般策略。
2. 描述SQL Server的恢复模式,并说明它们在数据库备份和恢复过程中的作用。
3. 什么是SQL Server的分区表,它有什么优势?三、操作题1. 假设你有一个名为`Sales`的数据库,里面有一个名为`Orders`的表,包含`OrderID`, `OrderDate`, `CustomerID`, `TotalAmount`等字段。
编写一个SQL查询,列出所有2019年的订单,并按`TotalAmount`降序排序。
2. 编写一个存储过程,该存储过程接受一个`CustomerID`作为参数,并返回该客户的所有订单信息。
SQL-Server-期末考试题目及答案
![SQL-Server-期末考试题目及答案](https://img.taocdn.com/s3/m/0e378f7ec950ad02de80d4d8d15abe23482f039b.png)
SQL-Server-期末考试题目及答案SQL Server 期末考试题目及答案一、单选题1. Microsoft公司的SQL Server2000数据库管理系统一般只能运行于()。
A. Windows平台B. UNIX平台C. LINX平台D. NetWare平台2. 当一条SELECT语句访问一大表里的有限几行数据时,SQL Server2000通常会()。
A. 为数据加上页级锁B. 为数据加上行级锁C. 需要用户的干涉和参与D. 使用户独占数据库3. 当采用Windows认证方式登录数据库服务器时,SQL Server2000客户端软件会向操作系统请求一个()。
A. 信任连接B. 集成C. 并发控制D. 数据转换服务4. 以下对SQL Server2000描述不正确的是()。
A. 支持XMLB. 支持用户自定义函数C. 支持集成D. 支持网状数据模型5. 如果在SQL Server2000上运行一个非常大的数据库,为取得较好效果应选用安装()。
A. 企业版B. 标准版C. 个人版D. 开发版6. 提高SQL Server2000性能的最佳方法之一是()。
A. 增大硬盘空间B. 增加存C. 减少数据量D. 采用高分辨率显示器7. SQL Server2000标准版不支持的操作系统是()。
A. Windows 2000 ServerB. Windows NT ServerC. Windows98D. Windows 2000 Advanced Server8. 如果希望完全安装SQL Server2000,则应选择()。
A. 典型安装B. 最小安装C. 自定义安装D. 仅连接9. 要想使SQL Server2000数据库管理系统开始工作,必须首先启动()。
A. SQL Server服务器B. 查询分析器C. 网络实用工具D. 数据导入和导出程序10. 用于配置客户端网络连接的工具是()。
A. 企业管理器B. 客户端网络实用工具C. 查询分析器D. 联机帮助文档11. SQL Server2000的物理存储主要包括3类文件()。
SQL Server 练习题
![SQL Server 练习题](https://img.taocdn.com/s3/m/3af0962f2af90242a995e504.png)
SQL Server 练习题一、填空题1.数据库系统的特点分别是数据的结构化、数据共享、数据独立性和可控冗余度。
2.在数据库的表中,主键是指表中的某一列或几列,它的值唯一标识一行。
3.SQL Server 2005的文件包括: 数据文件(.mdf或.ndf)和日志文件。
4.在SQL Server 2005中,要访问某个数据库,除了需要有一个登录帐号外,还必须有一个该数据库的用户帐号。
5. 数据库管理系统,简称DBMS,它是指帮助用户建立、使用和管理数据库的软件系统。
6.在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是ALTER;若要创建一个数据库,应该使用的语句是CREA TE DA TABASE。
5.命令Truncate Table的功能是清空数据库。
6.数据完整性是指存储在数据库中的数据的一致性和准确性,,根据完整性机制所作用的数据库对象和范围不同,可以分为:实体完整性、域完整性、参照(或:引用)完整性和用户自定义完整性约束等四种,其中主键可以实现实体完整性。
7.模糊查询符号% 代表任意字符,查询条件e%im 代表意思是查询以 e 开头中间任意字符(串)且以im 结尾的字符串。
8.使用索引可以减少检索时间,根据索引的存储结构不同将其分为两类:簇集索引和非簇集索引。
9.SQL Server中的变量分为两种,全局变量和局部变量。
其中全局变量的名称以@@字符开始,由系统定义和维护;局部变量以@字符开始,由用户自己定义和赋值。
10.实现数据完整性的途径有默认值、约束、规则、存储过程、触发器等。
11.访问SQL Server数据库对象时,需要经过身份验证和权限验证两个阶段,其中身份验证分为Windows验证模式和混合验证模式。
12.SQL Server使用日志文件记载用户对数据库进行的所有操作。
13.sp_help系统存储过程的功能是显示数据对象的相关属性。
?14.SQL语言中行注释的符号为-- ;块注释的符号为/* */ 。
sql server 练习题
![sql server 练习题](https://img.taocdn.com/s3/m/b7872150cd7931b765ce0508763231126fdb776e.png)
sql server 练习题SQL Server是一种关系型数据库管理系统,广泛用于存储和管理大量结构化数据。
为了帮助大家熟练掌握SQL Server的使用,以下是一些练习题,涵盖了SQL Server的常见操作和语法。
通过完成这些练习题,你可以增强对SQL Server的理解和应用能力。
第一题:创建数据库在SQL Server中,创建数据库使用CREATE DATABASE语句。
请根据以下要求创建一个名为"Company"的数据库:要求:1. 数据库的字符集为UTF-8;2. 数据库的校对规则选择Chinese_PRC_CI_AS。
解答:```CREATE DATABASE CompanyCOLLATE Chinese_PRC_CI_AS;```第二题:创建表格在创建数据库后,我们需要创建表格来存储具体的数据。
请根据以下要求创建一个名为"Employees"的表格:要求:1. 表格包含以下字段:EmployeeID(整数类型,主键),LastName (字符串类型),FirstName(字符串类型),Age(整数类型),Salary(浮点数类型);2. 字符串类型的字段长度分别为50个字符;3. 浮点数类型的字段保留两位小数。
解答:```CREATE TABLE Employees(EmployeeID INT PRIMARY KEY,LastName NVARCHAR(50),FirstName NVARCHAR(50),Age INT,Salary FLOAT(2));```第三题:插入数据在创建表格后,我们需要往表格中插入数据。
请根据以下要求向"Employees"表格中插入一条数据:要求:EmployeeID为101,LastName为"Smith",FirstName为"John",Age为30,Salary为5000.00。
SQL_Server数据库试题六及答案范文
![SQL_Server数据库试题六及答案范文](https://img.taocdn.com/s3/m/c60843cc51e2524de518964bcf84b9d528ea2c7c.png)
SQL_Server数据库试题六及答案范⽂SQL Server数据库试卷6⼀、单项选择题(每题2分,共15题)1、DBMS是什么?()(A)操作系统(B)数据库管理系统(C)数据库(D)数据库管理员2、SQL Server 2000是⼀个()的数据库系统。
(A)⽹状型(B)层次型(C)关系型(D)以上都不是3、SQL Server 2000 采⽤的⾝份验证模式有()。
(A)仅Windows⾝份验证模式(B)仅SQL Server⾝份验证模式(C)仅混合模式(D)Windows⾝份验证模式和混合模式4、关于主键描述正确的是:()(A)包含⼀列(B)包含两列(C)包含⼀列或者多列(D)以上都不正确5、下列()数据库不属于SQL Server 2000在安装时创建的系统数据库。
(A)master (B)NorthWind (C)model (D)bookdb6、在SQL SERVER中局部变量前⾯的字符为:()(A)* (B)# (C)@@ (D)@7、在SQL Server 2000中,当数据表被修改时,系统⾃动执⾏的数据库对象是()。
(A)存储过程(B)触发器(C)视图(D)其他数据库对象8、SQL Server的字符型系统数据类型主要包括()。
(A)Int、money、char (B)char、varchar、text(C)datetime、binary、int (D)char、varchar、int9、在SELECT语句的WHERE⼦句的条件表达式中,可以匹配0个到多个字符的通配符是()(A)* (B)% (C)- (D)? 10、在WHILE循环语句中,如果循环体语句条数多于⼀条,必须使⽤:(A)BEGIN……END(B)CASE……END(C)IF…………THEN(D)GOTO11、SELECT查询中,要把结果中的⾏按照某⼀列的值进⾏排序,所⽤到的⼦句是:(A)ORDER BY (B)WHERE (C)GROUP BY (D)HA VING 12、要删除视图myview,可以使⽤()语句。
sqlserver综合练习题
![sqlserver综合练习题](https://img.taocdn.com/s3/m/a27b3eb6f71fb7360b4c2e3f5727a5e9856a27ae.png)
sqlserver综合练习题SQL Server综合练习题题目1: 管理数据库在SQL Server中,管理数据库是非常重要的任务。
请根据以下场景,回答相应的问题。
场景背景:某公司使用SQL Server作为其主要数据库管理系统,负责存储和管理大量的业务数据。
作为数据库管理员,您需要对数据库进行适当的管理和维护。
问题1:如何创建一个新数据库?要创建一个新的数据库,可以使用以下SQL语句:```sqlCREATE DATABASE [数据库名称];```问题2:如何备份和恢复数据库?为了备份数据库,可以使用以下方法之一:- 使用SQL Server Management Studio (SSMS):在对象资源管理器中,右键单击相应的数据库,选择“任务” > “备份”。
- 使用Transact-SQL:使用`BACKUP DATABASE`语句执行备份。
为了恢复数据库,可以使用以下方法之一:- 使用SSMS:在对象资源管理器中,右键单击“数据库”文件夹,选择“还原数据库”。
- 使用Transact-SQL:使用`RESTORE DATABASE`语句执行恢复。
问题3:如何监视数据库的性能和活动?要监视数据库的性能和活动,可以使用以下方法之一:- 使用SSMS:连接到相应的数据库服务器,在“对象资源管理器”中选择相应的数据库,右键单击选择“报表” > “标准报表” > “活动监视器”。
- 使用Transact-SQL:可以查询系统视图(如`sys.dm_exec_query_stats`)来获取性能统计信息。
场景背景:某公司的数据库中存在有关员工和部门的表。
现在,需要针对这些表执行一些常见的查询操作。
问题4:如何创建一个包含所有员工信息的视图?要创建一个包含所有员工信息的视图,可以使用以下SQL语句:```sqlCREATE VIEW [所有员工信息] ASSELECT * FROM [员工表];```问题5:如何查询工资最高的员工?要查询工资最高的员工,可以使用以下SQL语句:```sqlSELECT * FROM [员工表] WHERE [工资] = (SELECT MAX([工资]) FROM [员工表]);```问题6:如何计算每个部门的员工人数?要计算每个部门的员工人数,可以使用以下SQL语句:```sqlSELECT [部门], COUNT(*) AS [人数] FROM [员工表] GROUP BY [部门];```题目2: 数据库设计良好的数据库设计是一个高效、稳定和可扩展的数据库系统的关键。
sql server 练习题
![sql server 练习题](https://img.taocdn.com/s3/m/22e27a4002d8ce2f0066f5335a8102d276a261fc.png)
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 关键字给结果列起了一个别名。
数据库SQL练习题
![数据库SQL练习题](https://img.taocdn.com/s3/m/c66d07f6de80d4d8d05a4f34.png)
数据库应用(SQL Server)练习题一题:单选1. 在Transact-SQL中,下列命令能让程序完全跳出循环的是( C )。
(A) CASE (B) WAIT (C) BREAK (D) CONTINUE2. 在SQL SERVER 2008中,不能恢复的操作是( D )。
(A) DELETE (B) UPDATE (C) INSERT (D) TRUNCATE TABLE3. 在SQL SERVER 2008中,默认的事务隔离级别是(A )。
(A) READ COMMITTED (B) READ UNCOMMITTED (C) REPEATABLE READ (D) SERIALIZABLE4. 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的(D )。
(A) 元组(B) 关键字(C) 记录(D) 属性5. 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为( B )。
(A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E)(C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E)6. SQL语言查询一次的结果是一个(B )。
(A) 元组(B) 表(C) 属性(D) 数据库7. 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为(B )。
(A) 平凡函数依赖(B) 部分函数依赖(C) 完全函数依赖(D) 传递函数依赖8. 如果删除表中的数据,而不删除表,应使用的选项是(A )。
(A) DELETE (B) DROP (C) UNION (D) REMOVE9. 下列关于DELETE语句的说法中错误的是(D )。
(A) DELETE语句可以删除一行数据(B) DELETE语句可以删除表中所有数据(C) DELETE语句可以带有子查询(D) DELETE语句可以删除多个表中的数据10. 下列选项中,可以正确表达姓“张”的通配符是(B )。
SQLsever基础试题及答案
![SQLsever基础试题及答案](https://img.taocdn.com/s3/m/352cfd8b18e8b8f67c1cfad6195f312b3069eb5b.png)
SQLsever基础试题及答案SQL Server基础试题及答案1. 什么是SQL Server?SQL Server是由Microsoft开发的关系数据库管理系统(RDBMS),它用于存储、管理、检索和分析数据。
2. SQL Server的主要组件有哪些?SQL Server的主要组件包括SQL Server数据库引擎、SQL Server Analysis Services、SQL Server Reporting Services、SQL Server Integration Services和SQL Server Notification Services。
3. 如何在SQL Server中创建一个新数据库?使用以下SQL语句可以创建一个新数据库:```CREATE DATABASE DatabaseName;```4. 如何在SQL Server中添加一个新表?使用以下SQL语句可以添加一个新表:```CREATE TABLE TableName (Column1 DataType,Column2 DataType,...);```5. 如何在SQL Server中插入数据?使用以下SQL语句可以插入数据:```INSERT INTO TableName (Column1, Column2, ...) VALUES (Value1, Value2, ...);```6. 如何在SQL Server中查询数据?使用SELECT语句可以查询数据:```SELECT Column1, Column2, ...FROM TableNameWHERE Condition;```7. 如何在SQL Server中更新数据?使用UPDATE语句可以更新数据:```UPDATE TableNameSET Column1 = Value1, Column2 = Value2, ... WHERE Condition;```8. 如何在SQL Server中删除数据?使用DELETE语句可以删除数据:```DELETE FROM TableNameWHERE Condition;```9. 如何在SQL Server中创建一个索引?```CREATE INDEX IndexNameON TableName (ColumnName);```10. 如何在SQL Server中备份数据库?使用以下SQL语句可以备份数据库: ```BACKUP DATABASE DatabaseNameTO DISK = 'BackupPath';```11. 如何在SQL Server中恢复数据库?使用以下SQL语句可以恢复数据库: ```RESTORE DATABASE DatabaseNameFROM DISK = 'BackupPath'WITH REPLACE;```12. 如何在SQL Server中创建一个视图?使用以下SQL语句可以创建一个视图: ```CREATE VIEW ViewName ASSELECT Column1, Column2, ...FROM TableNameWHERE Condition;```13. 如何在SQL Server中使用事务?```BEGIN TRANSACTION;-- SQL StatementsCOMMIT TRANSACTION;```如果需要回滚事务,可以使用:```ROLLBACK TRANSACTION;```14. 如何在SQL Server中创建一个存储过程?使用以下SQL语句可以创建一个存储过程: ```CREATE PROCEDURE ProcedureNameASBEGIN-- SQL StatementsEND;```15. 如何在SQL Server中使用触发器?使用以下SQL语句可以创建一个触发器: ```CREATE TRIGGER TriggerNameON TableNameAFTER INSERT, UPDATE, DELETEASBEGIN-- SQL StatementsEND;```以上是SQL Server基础试题及答案的示例。
SQL SERVER练习题及答案
![SQL SERVER练习题及答案](https://img.taocdn.com/s3/m/a31f9ddf16fc700aba68fc06.png)
题目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 借书卡。
SQL Server数据库的练习题和答案3 共6份
![SQL Server数据库的练习题和答案3 共6份](https://img.taocdn.com/s3/m/d079d7bb1a37f111f1855b1d.png)
一、有以下三个关系:SALESPERSON(销售人员)Number CustName SalespersonName Amount(1)显示所有Salespeople的Ages和salary但是去掉重复的行。
Select distinct Ages, salaryfrom salespeople(2)显示所有和ABERNATHY CONSTRUCTION有订单的Salespeople。
SELECT DISTINCT , SALESPERSON.Age, SALESPERSON.Salary FROM [ORDER], SALESPERSONWHERE [ORDER].SalespersonName = AND [ORDER].CustName = 'Abernathy Construction'(3)显示所有的和ABERNATHY CONSTRUCTION没有订单的Salespeople,按工资的升序进行排列。
SELECT DISTINCT Name, Age, SalaryFROM SALESPERSONWHERE (Name NOT IN(SELECT NameFROM [ORDER] INNER JOINSALESPERSON ON[ORDER].SalespersonName = WHERE ([ORDER].CustName='Abernathy Construction')))ORDER BY Salary(4)显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使用子查询)。
SELECT DISTINCT Name, AgeFROM SALESPERSONWHERE (Name IN(SELECT SalespersonNameFROM [ORDER]WHERE CustName LIKE 'Abernathy Construction%'))ORDER BY Age DESC(5)显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使用连接)。
SQL Server SQL实验与练习题参考答案
![SQL Server SQL实验与练习题参考答案](https://img.taocdn.com/s3/m/67a716a6d1f34693daef3e50.png)
/zh-cn/library/ms177503.aspx实验1 数据库操作1.创建数据库:操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。
参考答案:create database TestON primary(name = test_data,filename = 'd:\test\test_data.mdf',size = 5MB,maxsize = unlimited,filegrowth = 1MB)LOG ON(name = test_log,filename = 'd:\test\test_log.ldf',size = 1MB,maxsize = 5MB,filegrowth = 10%)GO2.查看数据库属性:操作1.2:使用T-SQL语句查看数据库test属性参考答案:EXEC sp_helpdb testEXEC 执行存储过程sp_helpdb 报告有关指定数据库或所有数据库的信息。
3.删除数据库:操作1.3:使用T-SQL语句删除数据库test参考答案:drop database Test实验2 表操作1.创建表:操作2.1:创建学生表:表名:student 说明:学生基本信息表参考答案:USE testGOCREATE TABLE student(st_id nVarChar(9) primary key NOT NULL ,st_nm nVarChar(8) NOT NULL ,st_sex nVarChar(2) NULL ,st_birth datetime NULL ,st_score int NULL ,st_date datetime NULL ,st_ from nVarChar(20) NULL ,st_dpid nVarChar(2) NULL ,st_ mnt tinyint NULL)GO操作2.2:创建课程信息表:表名:couse 说明:课程信息表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) primary key NOT NULL ,cs_nm nVarChar(20) NOT NULL ,cs_tm int NULL ,cs_sc int NULL)GO操作2.3:创建选课表:表名:slt_couse 说明:选课表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) NOT NULL ,st_id nVarChar(9) NOT NULL ,score int NULL ,sltdate datetime NULL)GO操作2.4:创建院系信息表:表名:dept 说明:院系信息表USE testGOCREATE TABLE dept(dp_id nVarChar(2) NOT NULL ,dp_nm nVarChar(20) NOT NULL ,dp_drt nVarChar(8) NULL ,dp_tel nVarChar(12) NULL)GO2.修改表结构:(1)向表中添加列:操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空)参考答案:ALTER TABLE dept ADD dp_count nvarchar(3) NULL (2)修改列数据类型:操作2.6:修改“dept”表的“dp_count”列数据类型为int参考答案:ALTER TABLE dept ALTER COLUMN dp_count int NULL (3)删除表中指定列:操作2.7:删除“dept”表的“dp_count”列参考答案:ALTER TABLE dept DROP COLUMN dp_count3.删除表操作2.8:删除“dept”表参考答案:DROP TABLE student4.向表中输入数据记录操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录实验3 数据完整性1.空值约束( NULL )操作3.1:将student表中的st_sex列属性更改为NOT NULL参考答案:ALTER TABLE student ALTER COLUME st_nm nVarChar(8) NOT NULL2.默认值约束( DEFAULT )操作3.2:将student表中的st_from列默认值设置为“陕西省”参考答案:ALTER TABLE student ADD DEFAULT '陕西省' FOR st_from3.默认值对象操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。
SQLServer基础练习题及答案
![SQLServer基础练习题及答案](https://img.taocdn.com/s3/m/0a4683218762caaedc33d470.png)
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_Server数据库笔试题集合
![SQL_Server数据库笔试题集合](https://img.taocdn.com/s3/m/e65598d6a5e9856a57126059.png)
SQL测试-笔试试卷1) 在SQL Server 中,为数据库表建立索引能够()。
A. 防止非法的删除操作B. 防止非法的插入操作C. 提高查询性能D. 节约数据库的磁盘空间2) 在SQL SERVER中,创建一个表使用()语句。
A. INSERTB. DROPC. CREATED. ALERT3) 在SQL SERVER中,下面关于视图说法错误的是()。
A. 对查询执行的大多数操作也可以在视图上进行B. 使用视图可以增加数据库的安全性C. 不能利用视图增加,删除,修改数据库中的数据D. 视图使用户更灵活的访问所需要的数据4) 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的()阶段。
A. 需求分析B. 概要设计C. 逻辑设计D. 物理设计5) 在SQL Server 数据库中,如果强制要求grades表中的学员必须是Students表中存在的学员,以下描述正确的是()。
A. 在grades表中创建外键约束B. 在grades表中创建检查约束C. 在grades表中创建唯一约束D. 在grades表中创建默认约束6) 在SQL Server 数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内容修改情况是()。
BEGIN TRANSACTIONupdate Account set balance=7800 where id=1update Account set balance=9000 where id=1检查上一句错误则执行IF @@error <> 0ROLLBACK TRANSACTIONELSECOMMIT TRANSACTIONA. Account表中id为1的记录中balance字段的值被修改为7800B. Account表中id为1的记录中balance字段的值被修改为9000C. Account表中id为1的记录中balance字段的值不变D. 不可能发生这种情况7) 在SQL Server 数据库中,有关下列T-SQL语句的功能,说法正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试表格--1.学生表Student(S#,Sname,Sage,Ssex)--S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表Course(C#,Cname,T#)--C# --课程编号,Cname 课程名称,T# 教师编号--3.教师表Teacher(T#,Tname)--T# 教师编号,Tname 教师姓名--4.成绩表SC(S#,C#,score)--S# 学生编号,C# 课程编号,score 分数创建测试数据学生表 Studentcreate 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'女')科目表Coursecreate 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')教师表Teachercreate 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'王五')成绩表SCcreate 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)50道练习题1. 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数1.1 查询同时存在" 01 "课程和" 02 "课程的情况1.2 查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为null )1.3 查询不存在" 01 "课程但存在" 02 "课程的情况2. 查询平均成绩大于等于60 分的同学的学生编号和学生姓名和平均成绩select new map(sc.student.id,,avg(sc.num)) from Score sc left join sc.student group by sc.student having avg(sc.num)>603. 查询在SC 表存在成绩的学生信息from Score4. 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为null )select new map(sc.student.id,,count(sc),sum(sc.num)) from Score sc right join sc.student group by sc.student4.1 查有成绩的学生信息select distinct new map(stu.id,,stu.birthday) from Score sc join Student stu on sc.student=stu5. 查询「李」姓老师的数量select count(*) from Teacher t where name like ?6. 查询学过「张三」老师授课的同学的信息select distinct new map(stu.id,) from select sc.student from Score sc where sc in (select Score from Teacher t left join Course c on c.teacher=t where ='张三') group by sc.student) as B left join Student stu on B=stu7. 查询没有学全所有课程的同学的信息select new map(stu.id,) from Student stu where stu.id in (select sc.student.id from Score sc group by sc.student having count(sc.student)<3)8. 查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息select distinct new map(stu.id,) from Student stu join Score sc on sc.student=stu where sc.course.id in (select new map(sc.course.id) from Score sc where sc.student.id=1)9. 查询和" 01 "号的同学学习的课程完全相同的其他同学的信息10. 查询没学过"张三"老师讲授的任一门课程的学生姓名11. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩select new map(stu.id,,avg(sc.num)) from Student stu join Score sc on sc.student=stu where stu.id in (select new map(sc.student.id) from Score sc where sc.num<60 group by sc.student having count(sc.student)>=2) group by stu12. 检索" 01 "课程分数小于60,按分数降序排列的学生信息select new map(sc.student.id,,sc.num) from Score sc where sc.course.id=1 and sc.num<60 order by sc.num desc13. 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩select new map(,avg(sc.num)) from Score sc group by sc.student order by avg(sc.num) desc14. 查询各科成绩最高分、最低分和平均分:select new map(,max(sc.num),min(sc.num),avg(sc.num)) from Score sc group by sc.course以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列15. 按各科成绩进行排序,并显示排名,Score 重复时保留名次空缺select new map(,,sc.num) from Score sc where sc.course.id=1 order by sc.numselect new map(,,sc.num) from Score sc where sc.course.id=2 order by sc.numselect new map(,,sc.num) from Score sc where sc.course.id=3 order by sc.num15.1 按各科成绩进行排序,并显示排名,Score 重复时合并名次select new map(,,sc.num) from Score sc where sc.course.id=1 order by sc.numselect new map(,,sc.num) from Score sc where sc.course.id=2 order by sc.numselect new map(,,sc.num) from Score sc where sc.course.id=3 order by sc.num16. 查询学生的总成绩,并进行排名,总分重复时保留名次空缺select new map(index() ,sum(sc.num) as total) from Score sc group by sc.student order by sum(sc.num) desc16.1 查询学生的总成绩,并进行排名,总分重复时不保留名次空缺select new map(index() ,sum(sc.num) as total) from Score sc group by sc.student order by sum(sc.num) desc17. 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 及所占百分比18. 查询各科成绩前三名的记录session.createQuery("select new map(,,sc.num) from Score sc where sc.course.id=1 order by sc.num desc").setFirstResult(0).setMaxResults(3).list();session.createQuery("select new map(,,sc.num) from Score sc where sc.course.id=2 order by sc.num desc").setFirstResult(0).setMaxResults(3).list();session.createQuery("select new map(,,sc.num) from Score sc where sc.course.id=3 order by sc.num desc").setFirstResult(0).setMaxResults(3).list();19. 查询每门课程被选修的学生数select new map(,count(sc.course)) from Score sc group by sc.course20. 查询出只选修两门课程的学生学号和姓名select new map(sc.student.id,) from Score sc group by sc.student having count(sc.student)=221. 查询男生、女生人数select new map(stu.sex,count(stu.sex)) from Student stu group by stu.sex 22. 查询名字中含有「风」字的学生信息select new map(stu.id,,stu.birthday) from Student stu where like ?23. 查询同名同性学生名单,并统计同名人数select new map(,count(*)) from Student stu1 order by 24. 查询1990 年出生的学生名单select new map(stu1.id,,stu1.birthday) from Student stu1 where stu1.birthday > ?25. 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列select new map(c.id,,avg(sc.num)) from Score sc join Course c on sc.course=c group by c order by avg(sc.num) asc,c.id desc26. 查询平均成绩大于等于85 的所有学生的学号、姓名和平均成绩select new map(stu.id,,avg(sc.num)) from Score sc join Student stu on sc.student=stu group by stu having avg(sc.num)>8527. 查询课程名称为「数学」,且分数低于60 的学生姓名和分数select new map(,sc.num) from Score sc left join Course c on sc.course=c left join Student stu on sc.student=stu where ='数学' and sc.num>6028. 查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)29. 查询任何一门课程成绩在70 分以上的姓名、课程名称和分数select distinct new map(,,sc.num) from Score sc where sc.num>7030. 查询不及格的课程select distinct new map() from Score sc where sc.num<60 31. 查询课程编号为01 且课程成绩在80 分以上的学生的学号和姓名select new map(sc.student.id,) from Score sc join sc.student where sc.num>80 and sc.course.id=132. 求每门课程的学生人数select new map(,count(sc.course)) from Score sc group by sc.course33. 成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩34. 成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩35. 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩36. 查询每门功成绩最好的前两名37. 统计每门课程的学生选修人数(超过5 人的课程才统计)。