SQL试题
sql常见的面试题
sql常见的面试题1. 基本概念和语法a. 什么是SQL?它的作用是什么?b. SQL的分类有哪些?c. SQL中常见的数据类型有哪些?d. 什么是表?如何创建表?e. 如何插入数据到表中?f. 如何查询表中的数据?g. 如何更新和删除表中的数据?h. 什么是索引?如何创建和使用索引?2. 数据库查询a. 如何使用SELECT语句查询表中的数据?b. SELECT语句中常见的聚合函数有哪些?如何使用它们?c. 如何使用WHERE子句过滤查询结果?d. 如何使用ORDER BY子句对查询结果进行排序?e. 如何使用LIMIT子句限制查询结果的数量?f. 如何使用JOIN操作进行多表查询?3. 数据库修改和删除操作a. 如何使用INSERT语句插入新数据?b. 如何使用UPDATE语句更新数据?c. 如何使用DELETE语句删除数据?d. 如何使用ALTER TABLE语句修改表的结构?4. 数据库设计和优化a. 什么是数据库范式?常见的数据库范式有哪些?b. 什么是索引?如何选择合适的索引?c. 如何进行数据库性能优化?d. 什么是数据库事务?如何使用事务进行数据的一致性维护?5. 数据库安全和权限管理a. 如何创建用户并为其分配权限?b. 如何控制用户对数据库对象的访问权限?c. 如何保护数据库的安全性?6. 数据库备份和恢复a. 为什么需要数据库备份?b. 数据库备份的常见方法有哪些?c. 如何进行数据库的恢复操作?7. 高级SQL问题a. 如何使用子查询进行复杂的数据查询?b. 如何使用常用的SQL函数完成特定的数据操作?c. 如何使用触发器和存储过程实现自动化的数据处理任务?总结:在面试中,对SQL的基本概念、查询操作和修改操作的熟练掌握是很重要的。
此外,了解数据库设计、安全和性能优化等方面的知识也会给你在面试中加分。
希望本文给你提供了一些常见的SQL面试题及其解答,帮助你在面试中有所准备。
SQL试题——精选推荐
SQL试题数据库基础与应⽤课程针对性训练⼀、单项选择题,1.域是实体中相应属性的( A. 取值范围)。
2.把保存关系定义的关系称为对应数据库的( B. 元关系)。
3.在⼀个关系R中,若存在X→Y和X→Z,则存在X→(Y,Z),称此为函数依赖的(C. 合并性)规则。
4. 设⼀个关系为R(A,B,C,D,E,F),它的最⼩函数依赖集为FD={A→B,A→C,D→E,D→F},则该关系的候选码为(D. (A,D))。
5.在SQL中,对基本表进⾏插⼊和修改记录的命令为(D. insert和update)。
6.Access2000数据库是(C.关系)型数据库。
7.如果字段内容为声⾳⽂件,可将此字段定义为(C.OLE对象)类型。
8.在建交叉表查询的过程中,最多可以选择(B.3)个⾏标题字段。
9.若要退出Microsoft Acces s,则应使⽤的操作是(C.Quit)。
10.显⽰包含警告信息或其他信息的消息框,应该使⽤的操作是(D.MsgBox)。
1.设D1,D2和D3域的基数分别为2,3和4,则D1?D2?D3的元组数为(B. 24 )。
2.若⼀个关系为R(学⽣号,姓名,性别,年龄),则(A. 学⽣号)适合作为该关系的主码。
3.设⼀个集合A={3,4,5,6,7},集合B={1,3,5,7,9},则A和B的并集中包含有(C. 7)个元素。
4. 在⼀个关系R中,若存在X→(Y,Z),则也隐含存在X→Y和X→Z,称此为函数依赖的(B. 分解性)规则。
5.在SQL的查询语句中,order by选项实现对结果表的(D. 排序)功能。
6.Access2000数据库⽂件的扩展名是(D.mdb)。
7.在下⾯所给的属性中,(D.⾝份证号码)属性适宜作为主关键字。
8.下列(C .)图标是Access中表对象的标志。
9.Access中包含有(B.10)种数据类型。
10.可以通过Internet进⾏数据发布的对象是(D.数据访问页)。
最全SQL数据库试题-整理
一、单项选择题1.下列四项中,不属于数据库特点的是( C )。
A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高2.下列四项中,不属于SQL2000实用程序的是( D )。
A.企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQL Server安装程序创建4个系统数据库,下列哪个不是(C )系统数据库。
A.masterB.modelC.pubD.msdb4.(A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。
数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DBC.DBS D.DBA5. 在SQL中,建立表用的命令是( B )。
A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX6.SQL语言中,条件年龄BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。
A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.下列四项中,不正确的提法是( C )。
A.SQL语言是关系数据库的国际标准语言B.SQL语言具有数据定义、查询、操纵和控制功能C.SQL语言可以自动实现关系数据库的规范化D.SQL语言称为结构查询语言8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。
A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb9.SQL语言中,删除表中数据的命令是( A )。
A. DELETEB. DROPC. CLEARD. REMOVE10.SQL的视图是从( C )中导出的。
A. 基本表B. 视图C. 基本表或视图D. 数据库11. 下列哪个不是sql 数据库文件的后缀。
CA..mdf B..ldfC..tif D..ndf12. 数据定义语言的缩写词为( A )。
sql测试题带 答案
01、mybatis案例-需求分析02、mybatis案例-环境准备03、查询-查询所有04、查询-结果映射【多选题】关于实体类属性名和数据库表列名不一致情况,下列解决方案正确的有(CD)A、定义SQL时,结果集使用别名可以解决上述问题,但是复用性强。
B、如果有<ResultMap id="baseResultMap" type="com.itheima.pojo.Brand">,那么<select id="selectAll" resultType="baseResultMap">可以解决上述问题C、如果有<ResultMap id="baseResultMap" type="com.itheima.pojo.Brand">,那么<select id="selectAll" resultMap="baseResultMap">可以解决上述问题D、可以在Mybatis核心配置文件中开启驼峰命名的方式解决上述问题。
05、查询-查询详情【多选题】关于参数占位符和参数类型说法正确的有(AD)A、在标签中使用parameterType属性指定参数类型,也可以省略不写。
B、在标签中使用parameterType属性指定参数类型,必须要写。
C、#{}和${}都可以作为参数的占位符,它们之间没有区别。
D、#{}作为参数的占位符,执行SQL时,会将#{}占位符替换为?防止SQL注入漏洞,而使用${}作为参数占位符不会。
06、添加-添加品牌07、添加-添加后返回自增主键【多选题】下列哪些需求需要使用添加后的自增主键(BC)A、小李在京东上架了一款商品,添加完商品之后需要返回自增的主键。
B、小李在京东提交了一个订单,添加订单信息需要返回自增主键,因为在后续添加订单项时要使用到刚刚的订单id。
sql试题及答案
一. 选择题:1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(_B__)A、只存在一对多的实体关系,以图形方式来表示。
B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、能体现一对多、多对多的关系,但不能体现一对一的关系。
D、关系模型数据库是数据库发展的最初阶段。
2、在“连接”组中有两种连接认证方式,其中在(__B_)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时3、关系数据库中,当运用Transact-SQL语句创建主键时,可以是(__B_)。
A、create table table1(column1 char(13) not null primary,column2 int not) on primary;B、alter table table1 with notcheck addconstraint [PK_table1] primary key nonclustered( column1) on primary;C、alter table table1 column1 primary key ;4、表在数据库中是一个非常重要的数据对象,数据库创建后就可以创建表了,创建表可以用(_D__)等方法来创建。
A、企业管理器B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句5、_______是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。
( C)A、操作系统B、关系模型C、数据库管理系统D、数据库6、SQL Serve是一款基于_________体系的关系型数据库管理系统。
(A )A、客户机/服务器B、主机C、N层D、单机7、下面哪一个不是SQL Server2000的基本数据类型( A)A、VARIANTB、VARCHARC、VARBINARYD、NVARCHAR8、下面的类型中宽度最大的是(C )A、CHAR(5)B、VARCHAR(5)C、NCHAR(5)D、BIGINT9、表达式LEN('电子学院') + DATALENGTH(GETDATE())的值为( C)A、8B、10C、12D、1610、(D )下面哪些操作可以用DataReader对象来实现?A. 添加B. 删除C. 更改D. 查询表的数据11、若要在Web窗体中使用,并且访问SQL Server数据库,需要导入的名称空间为:( B )A. System.SQLServerB. System.Data.SqlClientC. System.Data.OleDbD.System.SQL12、以下哪一个对象不是.NET的数据提供者?( A )A. ConnectionB. CommandC. DataAdapterD. DataReaderE. DataSet13、(B )要使用一个返回记录的存储过程,并把结果返回到DataSet中,在设置DataAdapter对象的属性SelectCommand时,应把存储过程名赋给哪个属性?A. ConnectionB. CommandTextC. CommandTypeD. Result14、(B)以下对象中除什么外都是DataSet对象所包含的A. DataTableB. DataAdapterC. DataRowD. DataColumn15、当采用Windows认证方式登录数据库服务器时,SQL Server客户端软件会向操作系统请求一个( A )。
sql入门试题
sql入门试题SQL(Structured Query Language)是用于管理和操作关系数据库的标准化查询语言。
以下是一组SQL 入门试题,旨在测试对基本SQL 查询语句的理解和应用。
一、选择题1.下列哪个是SQL 的关键字?– A. SELECT– B. PRINT– C. SEARCH– D. FIND2.在SQL 中,用于从表中检索数据的命令是?– A. RETRIEVE– B. SELECT– C. GET– D. EXTRACT3.SQL 中用于过滤结果的子句是?– A. WHERE– B. FROM– C. SELECT– D. ORDER BY4.在SQL 中,用于按照某一列对结果进行排序的子句是?– A. GROUP BY– B. ORDER BY– C. SORT BY– D. ARRANGE BY5.在SQL 中,用于将结果按照某一列进行分组的子句是?– A. GROUP BY– B. ORDER BY– C. SORT BY– D. ARRANGE BY二、填空题6.编写一个SQL 查询,从"Employees" 表中选择所有员工的名字和薪水。
SELECT Name, SalaryFROM Employees;7.编写一个SQL 查询,从"Products" 表中选择产品的名称和价格,并按价格从高到低排序。
SELECT ProductName, PriceFROM ProductsORDER BY Price DESC;8.编写一个SQL 查询,统计"Orders" 表中订单的总数。
SELECT COUNT(*) AS TotalOrdersFROM Orders;9.编写一个SQL 查询,找到"Customers" 表中不重复的城市数量。
SELECT COUNT(DISTINCT City) AS UniqueCitiesFROM Customers;三、简答题10.解释SQL 中的WHERE 子句的作用。
SQL数据库考试试题
SQL数据库考试试题*1SQL数据库试题一、单项选择题(每小题1分,共10分)1.下列四项中,不属于数据库特点的是( C )。
—A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高2.下列四项中,不属于SQL2000实用程序的是( D )。
A.企业管理器B.查询分析器、C.服务管理器D.媒体播放器3.SQL Server安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。
A.masterB.modelC.pubD.msdb》4.(A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。
数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DBC.DBS D.DBA,5. 在SQL中,建立表用的命令是 ( B )。
A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX6.SQL语言中,条件年龄BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。
<A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁<7.下列四项中,不正确的提法是( C )。
2A.SQL语言是关系数据库的国际标准语言B.SQL语言具有数据定义、查询、操纵和控制功能]C.SQL语言可以自动实现关系数据库的规范化D.SQL语言称为结构查询语言8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。
A.sp_dbhelpB. sp_db,C. sp_helpD. sp_helpdb9.SQL语言中,删除表中数据的命令是( A )。
A.DELETEB. DROPC. CLEARD. REMOVE(10.SQL的视图是从( C )中导出的。
A.基本表B. 视图C. 基本表或视图D. 数据库SQL数据库试题2(一、单项选择题(每小题1分,共10分)4. 下列哪个不是sql 数据库文件的后缀。
SQL试题(附答案)
《SQL 数据库管理与开发教程与实训》试题<A 卷>一、单项选择题<每小题1分,共10分>1.下列四项中,不属于数据库特点的是〔 C 〕.A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高2.下列四项中,不属于SQL2000实用程序的是〔 D 〕.A.企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQL Server 安装程序创建4个系统数据库,下列哪个不是〔 C 〕系统数据库.4.〔 A 〕是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法.数据库在建立、使用和维护时由其统一管理、统一控制.A .DBMSB .DBC .DBSD .DBA 5.在SQL 中,建立表用的命令是 < B >. A.CREATE SCHEMAB.CREATE TABLE C.CREATE VIEWD.CREATE INDEX6.SQL 语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且< A >.A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.下列四项中,不正确的提法是< C >.A.SQL 语言是关系数据库的国际标准语言B.SQL 语言具有数据定义、查询、操纵和控制功能C.SQL 语言可以自动实现关系数据库的规范化D.SQL 语言称为结构查询语言8.在MS SQL Server 中,用来显示数据库信息的系统存储过程是< D >.A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb9.SQL 语言中,删除表中数据的命令是< A >.A. DELETEB. DROPC. CLEARD. REMOVE10.SQL 的视图是从〔 C 〕中导出的.A. 基本表B. 视图C. 基本表或视图D. 数据库三、填空题<每空1分,共20分>1.数据库系统具有数据的_外模式___、_模式________和内模式三级模式结构.2.SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头.3.语句 select ascii<'D'>, char<67> 的执行结果是:_______68__和____C_____.4.语句 select lower<'Beautiful'> , rtrim<'我心中的太阳 '> 的执行结果是:_____beautiful_______和__我心中的太阳________.5.选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割.6.关系运算主要有________、________和连接.7.完整性约束包括______完整性、______完整性、参照完整性和用户定义完整性.8.在SQL Server 2000中,数据库对象包括__表____、_视图_____、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等.9.语句 select day<'2004-4-6'>, len<'我们快放假了.'> 的执行结果是:_6________和________7_.10.语句 select round<13.4321,2>, round<13.4567,3>的执行结果是:_13.4300________和_______13.4570__.五、设计题<共50分>现有关系数据库如下:数据库名:我班同学数据库同学表<学号 char<6>,##,性别,年龄,民族,##号,宿舍号>宿舍表<宿舍号 char<6>,宿舍 >用SQL语言实现下列功能的sql语句代码:2.创建数据表[宿舍表]代码<3分>;宿舍表<宿舍号 char<6>,宿舍 >要求使用:主键<宿舍号>、宿舍:以633开头的7位同学表<学号 char<6>,##,性别,年龄,民族,##号,宿舍号>要求使用:主键<学号>、外键<宿舍号>、默认<民族>、非空<民族,##,年龄>、唯一<##号>、检查<性别>4.将下列宿舍信息添加到宿舍表的代码<8分>宿舍号宿舍101 6331157102 6331777修改宿舍号为101的宿舍:6331158删除宿舍号为102的宿舍信息5.创建视图[同学表视图]代码<5分>;同学表视图<学号, ##, 性别, 年龄, 民族, ##号, 宿舍号, 宿舍 >7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄.<5分>8.创建带参数的存储过程[某宿舍同学]:##, 性别, 宿舍执行此过程,查询'101'宿舍情况 <8分>9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程.请写出账户、权限设置的T_SQL脚本.<9分>一、三、《SQL数据库管理与开发教程与实训》试题<B卷>马建鹏老师一、单项选择题<每小题1分,共10分>1.〔〕是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法.数据库在建立、使用和维护时由其统一管理、统一控制.A.DBMSB.DBC.DBSD.DBA2.下列四项中,不属于SQL2000实用程序的是〔〕.A.企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQL Server安装程序创建4个系统数据库,下列哪个不是〔〕系统数据库.A. masterB. modelC. pubD. msdb4.下列哪个不是sql 数据库文件的后缀.A..mdfB..ldfC..tifD..ndf5.数据定义语言的缩写词为 < >.6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且< >.A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.SQL的视图是从〔〕中导出的.A. 基本表B. 视图C. 基本表或视图D. 数据库8.在SQL语言中,建立存储过程的命令是<>A、CREATE PROCEDUREB、CREATE RULEC、CREATE DURED、CREATE FILE9.SQL语言中,删除表中数据的命令是< >.A. DELETEB. DROPC. CLEARD. REMOVE10.在MS SQL Server中,用来显示数据库信息的系统存储过程是< >.A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb三、填空题<每空1分,共20分>1.SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头.2.语句 select ascii<'D'>, char<67> 的执行结果是:_________和_________.3.语句 select lower<'Beautiful'> , rtrim<'我心中的太阳 '> 的执行结果是:____________和___________.4.选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割.5.关系运算主要有________、________和连接.6.完整性约束包括_______完整性、______完整性、参照完整性和用户定义完整性.7.T-SQL 语言中,有_________运算、字符串连接运算、比较运算和_________运算.8.语句 select day<'2004-4-6'>, len<'我们快放假了.'> 的执行结果是:_________和_________.9.语句 select floor<17.4>, floor<-214.2>, round<13.4382,2>, round<-18.4562,3>的执行结果是: _________、_________、_________和_________.五、设计题<共45分>现有关系数据库如下:数据库名:学生成绩数据库学生信息表<学号 char<6>,##,性别,民族,##号>课程信息表<课号 char<6>,名称>成绩信息表<ID,学号,课号,分数>用SQL语言实现下列功能的sql语句代码.1.创建数据库[学生成绩数据库]代码<2分>.2.创建数据表[课程信息表]代码;〔2分〕课程信息表<课号 char<6>,名称>要求使用:主键<课号>、非空<名称>3.创建数据表[学生信息表]代码;〔4分〕学生信息表<学号 char<6>,##,性别,民族,##号>要求使用:主键<学号>、默认<民族>、非空<民族,##>、唯一<##号>、检查<性别>4.创建数据表[成绩信息表];〔5分〕成绩信息表<ID,学号,课号,分数>要求使用:外键<学号,课号>、检查<分数>,自动编号<ID>5.将下列课程信息添加到课程信息表的代码〔8分〕课号名称100101 西班牙语100102 大学英语修改课号为100102的课程名称:专业英语删除课号为100101的课程信息6.创建视图[成绩信息表视图]的代码;〔5分〕成绩信息表视图<学号,##,课号,课程名称,分数>7.从学生信息表中查询姓刘的女同学的情况:##、性别、民族.〔2分8.查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、##.〔4分〕9.创建带参数的存储过程[某门课程高低均分]、执行该过程的代码〔7分〕存储过程功能:查询某门课程的最高分、最低分、平均分;执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分;10设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程.请写出账户、权限设置的T_SQL脚本.<6分>一、五、《SQL数据库管理与开发教程与实训》试题<C卷>杜兆将老师一、单项选择题<每小题1分,共10分>1.下列四项中,不属于数据库特点的是〔〕.A.数据共享B.数据完整性C. 数据冗余很高D.数据独立性高2. 目前〔〕数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统.A.关系B.面向对象C.分布3. 数据库设计中的概念结构设计的主要工具是〔〕.A.数据模型B.E—R模型 C.新奥尔良模型D.概念模型4. 〔〕是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法.数据库在建立、使用和维护时由其统一管理、统一控制.A.DBMSB.DBC.DBSD.DBA5. 在SQL中,建立视图用的命令是 < >.A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX6. SQL语言中,条件"年龄BETWEEN 20 AND 30"表示年龄在20至30之间,且< >.A.包括20岁和30岁B.不包括20岁和30岁C.包括20岁但不包括30岁D.包括30岁但不包括20岁8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是< >.A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb9. SQL语言中,删除一个表的命令是< >.A. DELETEB. DROPC. CLEARD. REMOVE10.SQL的视图是从〔〕中导出的.A.基本表B. 视图 C. 基本表或视图D. 数据库三、填空题<每空1分,共20分>1. 数据库系统具有数据的___________、_________和_________三级模式结构.2. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头.3. 语句 select ascii<'C'>, char<68>, len<'你是BigTiger '> 的执行结果是:_________、_________和_________.4. 语句select upper<'beautiful'> ,ltrim <'我心中的太阳'> 的执行结果是:____________和___________.5. 关系运算主要有________、________、________.6. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割.7. 索引的类型主要有__和_ __.8. 在SQL Server 2000中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数据类型等.五、设计题<共50分>现有关系数据库如下:数据库名:学生成绩数据库学生表<学号 char<6>,##,性别,民族,##号>课程表<课号 char<6>,名称>成绩表<ID,学号,课号,分数>用SQL语言实现下列功能的sql语句代码:1.创建数据库[学生成绩数据库]代码<2分>;create database [学生成绩数据库]gouse [学生成绩数据库]go2.创建[课程表]代码<2分>;课程表<课号 char<6>,名称>CREATE TABLE 课程表〔course CHAR<6>,PRIMARY KEY,Name CHAR<6>,NOT NULL,〕;要求使用:主键<课号>、非空<名称>3.创建[学生表]代码<6分>;学生表<学号 char<6>,##,性别,民族,##号>要求使用:主键<学号>、默认<民族>、非空<民族,##>、唯一<##号>、检查<性别>4.创建[成绩表]代码<4分>;成绩表<ID,学号,课号,分数>要求使用:主键<课号>、外键<成绩表.学号,成绩表.课号>、检查<分数>,自动编号<ID>5.将下列课程信息添加到课程表的代码<8分>课号课程名称100001 大学语文100002 大学英语100003 西班牙语修改课号为100002的课程名称:实用英语删除课号为100003的课程信息6.写出创建:成绩表视图<学号,##,课号,课程名称,分数>的代码;<4分>7.写出创建:某门课程成绩内嵌表值函数以与检索的代码;<6分>检索:所有修实用英语这门学生的成绩;8.写出创建:某门课程高低均分计算某门课程成绩最高分、最低分、平均分存储过程以与执行的代码;<6分>执行:所有修实用英语这门学生的最高分、最低分、平均分;9.检索姓李的女同学的情况:##、性别、民族.<2分>10.检索有一门或一门以上课程成绩大于等于90分的所有学生的信息,包括学号、##.<4分>11.设置一SQL身份验证的账户:登录名:U领导,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据.请写出账户、权限设置的T_SQL脚本.<6分>《SQL数据库管理与开发教程与实训》试题<C卷>参考答案一、1.C 2.A 3. B 4.A 5.C 6.A 7. 8.D 9.B 10.C二、1. N 2.N 3.Y 4.N 5.N 6.N 7. Y 8.N 9.N 10.Y三、1. 外模式、模式、内模式.2. ,3. 67, D, 124. BEAUTIFAL,我心中的太阳5. 选择、投影、连接.6. 水平, 垂直7. 聚簇索引非聚簇索引8. 视图、存储过程五、设计题1.create database [学生成绩数据库]gouse [学生成绩数据库]go2. create table 学生表<[学号] char<6> primary key,[##] nchar<4> not null,[性别] nchar<1> check<[性别] in <'男', '女'>>,[民族] nchar<8> default '汉族' not null,[##号] char<18> unique>3. create table 课程表<[课号] char<6> primary key,[名称] char<40> not null>4. create table 成绩表<ID integer IDENTITY<1, 1>,[学号] char<6> references 学生表<学号>,[课号] char<6> references 课程表<课号>,[分数] integer check<[分数] between 0 and 100>>5.insert 课程表 values<'100001', '大学语文'>insert 课程表 values<'100002', '大学英语'>insert 课程表 values<'100003', '西班牙语'>update课程表 set 名称='实用英语' where 课号='100002'delete课程表 where 课号='100003'6. create view [成绩表视图] asselect 成绩表.学号,##,成绩表.课号,名称课程名称,分数from 成绩表,学生表,课程表where 成绩表.学号=学生表.学号and 成绩表.课号=课程表.课号create view [成绩表视图] asselect 成绩表.学号,##,成绩表.课号,名称课程名称,分数from 成绩表 join 学生表 on 成绩表.学号=学生表.学号join 课程表 on 成绩表.课号=课程表.课号7. create function [某门课程成绩]<课程名 varchar<40>>returns table asreturn <select 学号,##,课程名称,分数 from 成绩表视图where 课程名称=课程名>create function [某门课程成绩]<课程名 varchar<40>>returns table asreturn <select * from 成绩表视图where 课程名称=课程名>select * from [某门课程成绩]<'实用英语'>8.create procedure [某门课程高低均分]课程名 varchar<40> asselect 课程名称, 最高分=max<分数>、最低分=min<分数>、平均分=avg<分数> from 成绩表视图where 课程名称 = 课程名execute [某门课程高低均分] '实用英语'9.select ##, 性别, 民族 from 学生表 where ## like '李%' and 性别='女'10. select 学号, ## from 学生表 where学号 in <select distinct 学号 from成绩表 where分数>=90>11.use [学生成绩数据库]exec sp_addlogin 'U领导', NULL, '学生成绩数据库', '简体中文'exec sp_password NULL, '888', 'U领导'exec sp_grantdbaccess 'U领导', 'U读者'exec sp_addrolemember 'db_datareader', 'U读者'use [学生成绩数据库]exec sp_addlogin 'U领导', '888', '学生成绩数据库'exec sp_grantdbaccess 'U领导', 'U读者'exec sp_addrolemember 'db_datareader', 'U读者'《SQL数据库管理与开发教程与实训》试题<D卷>刘占文老师一、单项选择题<每小题1分,共10分>1.数据库应用系统是由数据库、数据库管理系统〔与其开发工具〕、应用系统、〔〕和用户构成.A.DBMSB.DBC.DBSD.DBA2.数据库管理系统的英文缩写是〔〕.A.DBMSB.DBSC.DBAD.DB3.在关系运算中,选取符合条件的元组是〔〕运算.A.除法B.投影C.连接D.选择4.数据库设计中的逻辑结构设计的任务是把〔〕阶段产生的概念数据库模式变换为逻辑结构的数据库模式.A.需求分析B.物理设计C.逻辑结构设计D.概念结构设计5.一个规范化的关系至少应当满足〔〕的要求.A.一范式B.二范式C.三范式D.四范式6.在实际数据库设计中,"学号"通常作为〔〕存在.A.数据结构B.数据存储C.数据项目D.处理过程7.SQL Server 2000中删除表中记录的命令是〔〕.A.DELETEB.SELECTC.UPDATED.DROP8.运行命令SELECT ASCII〔‘Alklk’〕的结果是〔〕.A.48B.32C.90D.659.在SQL中,建立视图用的命令是 < >.A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX10.在MS SQL Server中,用来显示数据库信息的系统存储过程是< >.A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb三、填空题<每空1分,共20分>1.数据库三个要素是__________、__________和_____________.2. 语句 select year<'1931-9-18'> 的执行结果是____________.3.__________是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围.4.__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行.5.事务<Transaction>可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________<如果在操作执行过程中不能完成其中任一操作>.6. SQL Server 2000 采用的身份验证模式有________________模式和________模式.7.用户访问SQL Server数据库时,经过了两个_______验证和________验证安全验证阶段.8.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份.9.SQL Server代理主要由______、______和警报来组成.10.SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种. 五、设计题<1—6题每空2分,第7题10分,共40分>1.计算1+2+3+……+100的和,并使用PRINT显示计算结果.DECLARE I int,sum int,csum char<10>SELECT I=1,sum=0WHILE I<=________BEGINSELECT sum= __________SELECT I=I+1ENDSELECT csum=convert<char<10>,sum>__________ ’1+2+3+……+100=’+ csum2.使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空.CREATE ________ CLASS<CLASSNO ______<8> NOT NULL,DEPARTNO CHAR <2> NOT NULL,CLASSNAME CHAR <____> NOT NULL〕3.声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集.USE XKDECLARE COUNO VARCHAR<3>,COUNAME VARCHAR<20>_________________________FORSELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO_________________________FETCH NEXT FROM CRSCOURSE INTO COUNO,COUNAMEWHILE FETCH_STATUS=0BEGINPRINT ’课程号:’+ COUNO +’课程名称:’+ CouNameFETCH NEXT FROM CRSCOURSE INTO COUNO,COUNAMEEND_________________________DEALLOCATE CRSCOURSSE4.使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看"STUDENT"表中"00电子商务"班的学生信息.USE XKCREATE ____________ V_STUDENTASSELECT *FROM ____________WHERE CLASSNO=’20000001’5.使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程返回"STUDEND"表中所有班级代码为200000001的记录.USE XKCREATE ____________ P_STUDENTASSELECT *____________ STUDENTWHERE CLASSNO=’20000001’6.创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条"记录已修改"的消息.USE XK_________________ON STUDENT_________________ASPRINT ‘记录已修改’7.定义事务向[学生]数据库的[选课表]中插入学号=‘20030021’的多条记录,并检验若报名课程超过4门,则回滚事务,即报名无效,否则成功提交.选课表<学号,课号,报名号>假设要插入的记录为以下三条:‘20030021’,‘01’,1 ‘20030021’,‘02’,2 ‘20030021’,‘03’,3根据以上要求编写程序,并指出本题定义的事务是否成功提交.《SQL数据库管理与开发教程与实训》试题<D卷>参考答案一、单项选择题1.D 2.A 3.D 4.D 5.C 6.C 7.D 8.D 9.C 10.D二、判断题1.N 2.N 3.N 4.Y 5.Y 6.N 7.Y 8.N 9.Y 10.N三、填空题1.数据结构、数据操作、完整性约束2.19313.域完整性4.触发器5.都完成、都取消6.Windows身份验证、混合7.身份、权限8.完整、差异、事务日志、文件和文件组9.操作员、作业10.发布、分发五、设计题1.100 sum+i print2.table char 203.Declare crscourse cursoropen crscourseclose crscourse4.viewstudent5.procedurefrom6.Alter trigger testfor update7.Use 学生Begin transactionInsert 选课表<学号,课程号,报名号> values<‘20030021’,‘01’,1>Insert 选课表<学号,课程号,报名号> values<‘20030021’,‘02’,2>Insert 选课表<学号,课程号,报名号> values<‘20030021’,‘03’,3>Declare num intSet num=<select count<*> from 选课表 where 学号=‘20030021’>If num>4beginRollback transactionPrint ‘超过报名门数!’endElseBeginmit transactionPrint ‘报名成功!’endgo本题定义的事务成功提交.《SQL数据库管理与开发教程与实训》试题<E卷>刘占文老师三、填空题<每空1分,共20分>1.SQL语言主要由组成.2.SQLServer2000采用的身份验证模式有Windows身份验证模式和_________模式.3.语句 SELECT<7+3>*4-17/<4-<8-6>>+99%4的执行结果是_____________.4. ________是由一个或多个数据表〔基本表〕或视图导出的虚拟表.5._____________用于保证数据库中数据表的每一个特定实体的记录都是惟一的.6.索引的类型有______________和非聚集索引.7._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句.8.触发器定义在一个表中,当在表中执行________、________或delete操作时被触发自动执行.9.事务的ACID属性是指________性、________性、_______性和_______性.10.数据库管理系统的安全性通常包括两个方面,一是指数据________的安全性,二是指数据_______的安全性.11.SQL Server代理主要由________、操作员和________来组成.12.SQL Server复制有快照复制、________复制和________复制3种类型.五、设计题<每小题5分,共40分>现有关系数据库如下:数据库名:学生成绩数据库用SQL语言实现下列功能的sql语句代码:1.创建数据库[学生成绩数据库]代码<2分>;2.创建[课程表]代码<2分>;课程表<课号 char<6>,名称>要求使用:主键<课号>、非空<名称>3.创建[学生表]代码<2分>;学生表<学号 char<6>,##,性别,民族>要求使用:主键<学号>、默认<民族>、非空<民族,##>、检查<性别>4.创建[成绩表]代码<2分>;成绩表<学号,课程号,分数>要求使用:外键<成绩表.学号,成绩表.课程号>、检查<分数>5.将下列课程信息添加到课程表中课号课程名称100001 大学语文100002 大学英语6.写出创建成绩表视图<学号,##,课程号,课程名称,成绩>的代码;7.写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分8.检索姓李的女同学的信息:##、性别、民族.9.设置SQL身份验证的账户:登录名:U领导密码:888数据库用户名:U读者权限:可查询查询本数据库中所有表的数据.10.《SQL数据库管理与开发教程与实训》试题<E卷>参考答案一、单项选择题1.C 2.A 3.D 4.D 5.B 6.C 7.A 8.D 9.B 10.D二、判断题1.N 2.Y 3.Y 4.N 5.N 6.Y 7.Y 8.N 9.N 10.Y三、填空题1.数据定义语言<DDL>、数据操作语言<DML>2.混合3.354.视图5.实体完整性6.聚集索引7.存储过程8.insert、update9.原子、一致、独立、持久10.访问、运行11.作业、警报12.事务、合并五、设计题1.create database [学生成绩数据库]gouse [学生成绩数据库]go2. create table课程表<[课程号] char<6> primary key,[课程名称] char<40> not null[任课教师] char<4>>3. create table 学生表<[学号] char<6> primary key,[##] nchar<4> not null,[性别] nchar<1> check<[性别] in <'男', '女'>>,[民族] nchar<8> default '汉族' not null>4. create table成绩表<[学号] char<6> references 学生表<学号>,[课程号] char<6> references 课程表<课号>,[成绩] integer check<[成绩] between 0 and 100>>5.insert 课程表 values<'100001', '大学语文'>insert 课程表 values<'100002', '大学英语'>insert 课程表 values<'100003', '西班牙语'>6.create view [成绩表视图] asselect 学号,##,课程号,课程名称,成绩 from 成绩表,学生表where 成绩表.学号=学生表.学号select 学号,##,课程号,课程名称,成绩 from 成绩表 join 学生表on 成绩表.学号=学生表.学号7.create procedure [分数]课程名 nchar<16> asselect 课程名称, 最高分=max<分数>、最低分=min<分数>、平均分=avg<分数> from 成绩表视图where 课程名称 = 课程名8.select ##, 性别, 民族 from 学生表 where ## like '李%' and 性别='女' 9.use [学生成绩数据库]exec sp_addlogin 'U领导', '888', '学生成绩数据库', '简体中文'exec sp_grantdbaccess 'U领导', 'U读者'exec sp_addrolemember 'db_datareader', 'U读者'10.Begin transactionInsert 成绩表<学号,课程号,分数> values<‘20030021’,’001’,80>Insert 成绩表<学号,课程号,分数> values<‘20030021’,’002’,90>Insert 成绩表<学号,课程号,分数> values<‘20030021’,’003’,80>Insert 成绩表<学号,课程号,分数> values<‘20030021’,’004’,70>Declare num intSet num=<select count<*> from 成绩表 where 学号=‘20030021’>If num>4Rollback transactionElsemit transactiongo《SQL数据库管理与开发教程与实训》试题<F卷>郭鲜凤老师一、单项选择题<每小题1分,共10分>1.SQL Server系统中的所有服务器级系统信息存储于哪个数据库〔〕.A. masterB. modelC. tempdbD. msdb2.下列标识符可以作为局部变量使用〔〕.A. MyvarB. My varC. @MyvarD. @My var3.以下关于主键的描述正确的是〔〕.A.标识表中唯一的实体B.创建唯一的索引,允许空值C.只允许以表中第一字段建立D.表中允许有多个主键4.为数据表创建索引的目的是〔〕.A.提高查询的检索性能B.创建唯一索引C.创建主键D.归类5.下列哪个不是sql 数据库文件的后缀.A..mdfB..ldfC..dbfD..ndf6.在SQL SERVER服务器上,存储过程是一组预先定义并〔〕的Transact-SQL语句.A.保存B.编译C.解释D.编写7.数据定义语言的缩写词为 < >.8.以下关于外键和相应的主键之间的关系,正确的是< >.A.外键并不一定要与相应的主键同名B.外键一定要与相应的主键同名C.外键一定要与相应的主键同名而且唯一D.外键一定要与相应的主键同名,但并不一定唯一9.在数据库设计中使用E-R图工具的阶段是< >.A.需求分析阶段B.数据库物理设计阶段C.数据库实施D.概念结构设计阶段10.在T-SQL语言中,修改表结构时,应使用的命令是〔〕A.UPDATEB. INSERTC. ALTERD. MODIFY三、填空题<每空1分,共30分>1. 目前最常用的数据库有层次数据库、_________数据库和_________数据库,其中_________数据库是目前应用最广泛的一种数据库.2. 关系数据模型的逻辑结构是__________,关系中的列称为________,行称为________.3. 关系数据库模型的数据操作主要包括插入、________、________和________数据.4. SQL、DCL和DML缩写词的意义是___________语言、___________语言和___________语言.5.实体之间的联系类型有三种,分别为________、________和________.6.数据库系统的三级模式结构和两级数据映像确保了数据的________独立性和________独立性.7.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份.8.SQL Server代理主要由______、______和_____来组成.9.SQL Server复制把服务器分为______服务器、______服务器和_____服务器三种.10.在SQL中,create view、alter view和drop view命令分别为________、________和________视图的命令.五.设计题<每小题5分,共40分>有一个[学生课程]数据库,数据库中包括三个表:学生表:Student由学号<Sno>、##<Sname>、性别<Ssex>、年龄<Sage>、所在系<Sdept>五个属性组成,记为:Student<Sno,Sname,Ssex,Sage,Sdept>,Sno 为关键字.课程表:Course由课程号<o>、课程名<ame>、先修课号<Cpno>、学分<Ccredit>四个属性组成,记为: Course<o,ame,Cpno,Ccredit> o为关键字.成绩表:SG由学号<Sno>、课程号<o>、成绩<Grade>三个属性组成,记为:SG<Sno,o,Grade> <SNO, O> 为关键字.用SQL语言实现下列功能:1.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的.2.查考试成绩有不与格的学生的学号.3.将学号为05001学生的年龄改为22岁.。
sql面试必会6题经典
sql面试必会6题经典面试题
1. SQL有哪些数据类型?
SQL数据类型包括:数值类型(整数、实数、位类型)、字符串类型(字符串、固定长度字符串、可变长度字符串)、日期/时间类型、二进制类型以及用户自定义的特殊类型。
2. 什么是 SQL 联合查询?
SQL联合查询是一种在单个查询中使用多个表进行信息检索的技术,可以将多个相关表中的数据检索出来并进行合并显示。
常用的联合查询有内连接(Inner Join)、左外连接(Left Join)、右外连接(Right Join)、全外连接(Full Join)等。
3. 什么是 SQL 索引?
SQL索引是数据库表中用于快速检索数据的数据结构,它可以加快数据库表中某一列或多列上的查询速度。
常见的索引类型有B树索引、哈希索引、空间索引等。
4. 什么是SQL视图?
SQL视图是一种虚拟表,用于从一个或多个表中检索数据,并提供一种抽象的方法来访问表中的数据。
它可以让用户只能看到所需要看到的列和行,而不需要查看整个表。
5. SQL语句有哪些?
SQL语句有以下几种:CREATE(创建)、SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)、ALTER(修改)、DROP(删除)等。
6. 什么是子查询?
子查询是一种在SQL语句中嵌套另一个完整的SQL语句的查询,它可以从其它表中检索数据,也可以从当前表中检索数据。
它可以让你更有效地检索数据,并且可以让你在不使用连接的情况下实现类似于连接的结果。
SQL试题及答案
SQL试题及答案模拟测验1一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分)1.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。
数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMSB.DBC.DBSD.DBA2.下列四项中,不属于SQL2005实用程序的是()。
A.对象资源管理器B.查询分析器C.服务管理器D.媒体播放器3.SQLServer安装程序创建4个系统数据库,下列哪个不是()系统数据库。
A.materB.modelC.pubD.mdb4.下列哪个不是ql数据库文件的后缀。
A..mdfB..ldfC..tifD..ndf5.SQL语言允许使用通配符进行字符串匹配的某作,其中%可以表示()A.零个字符B.1个字符串C.多个字符串D.以上都是6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且()。
A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁7.SQL的视图是从()中导出的。
A.基本表B.视图C.基本表或视图D.数据库8.在SQL语言中,建立存储过程的命令是()A、CREATEPROCEDUREB、CREATERULEC、CREATEDURED、CREATEFILE9.SQL语言中,删除表中数据的命令是()。
A.DELETEB.DROPC.CLEARD.REMOVE10.在MSSQLServer中,用来显示数据库信息的系统存储过程是()。
A.p_dbhelpB.p_dbC.p_helpD.p_helpdb二、简答题(16分)1、什么是游标?使用游标的步骤?2、什么是事务?事务的基本属性是什么?三、应用题1、创建一个名字为k的数据库,包含一个数据文件和一个日志文件,逻辑文件名为k_data,磁盘文件名为k_data.mdf,文件初始容量为5MB,最大容量为10MB,文件递增量为1MB;而事务日志文件的逻辑文件名k_log,磁盘文件名为k_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在C:\\SERVER文件夹下)(10分)2、假设k数据库有以下三张表,请写出下列问题的SQL语句:(每题6分,共54分)学生(学号,姓名,年龄,性别)课程(课程号,课程名,任课教师)成绩(学号,课程号,成绩)(1)如何在SQLServer上创建这三张表;(2)查询刘峰教师所授课程号,课程名;(3)查询年龄大于20岁的所有男同学的学号、姓名;(4)查询王文芳同学选修的所有课程的课程号;(5)查询所有上刘峰老师课程的学生学号;(6)查询所有选修“数据库技术”的学生的学号;(7)向学生表中插入一条记录(2003001,吴红,21,女);(8)删除三张表中所有学号为20020001的学生信息;(9)把学号为20030002的学生的年龄改为22岁;SQLServer2005复习题一、选择题1.SQL语言允许使用通配符进行字符串匹配的某作,其中%可以表示(C)A零个字符B1个字符串C多个字符串D以上都是2如何在已经创建好的表上添加一个外键(A)AAltertable表名addforeignkey(键名)reference关联表(关联键名)BAltertable表名addPrimarykey(键名)reference关联表(关联键名)CAlter表名addforeignkey(键名)reference关联键名)DAlter表名addPrimarykey(键名)reference关联表(关联键名)3.要修改表名为Table1的字段Field1长度,原为Char(10)要求用SQL增加长度为char(20),以下语句那个正确(C)AAltertableTable1AlterField1char(20)BAlterTable1AltercolumnField1char(20)CAltertableTable1AltercolumnField1char(20)DAltercolumnField1char(20)4.下面聚集函数中哪个只能用于计算数值类型的数据(D)ACOUNT()BMIN()CMA某()DSUM()5.以下哪个关键字用来定义记录在某属性上的约束条件(D)ADEFAULTBDISTINCTCUNIQUEDCHECK6.欲往表中增加一条记录,应该用哪一条SQL语句(B)AALTERTABLEBINSERTINTOTABLECCREATETABLEDDROPTABLE7.以下哪一个不是逻辑运算符(D)ANOTBANDCORDIN8.在创建表的过程中,哪个关键字用来定义默认值(D)ADISTINCTBUNIQUECCHECKDDEFAULT二、填空题1数据库技术经历了人工管理阶段,_________和_______三个发展阶段。
SQL 数据库试题及答案
SQL 数据库试题及答案一、单选题(每题2分,共20分)()1、下列不能启动SQL Server服务的方法:A、使用SQL Server配置管理器B、使用Windows的管理工具C、使用net start mssqlserver 命令D、在查询编辑器中编写T-SQL程序()2、部分匹配查询中有关通配符“%”的正确的叙述是。
A、“%”代表多个字符B、“%”可以代表零个或多个字符C、“%”不能与“_”一同使用D、“%”代表一个字符()3、在SELECT子句中,如果想要返回结果集中不包含相同的行,应该使用关键字。
A、TOPB、ASC、DISTINCTD、JOIN()4、是表中用来唯一标识的每行记录。
A、外键B、主键C、索引D、数据库完整性()5、SQL 中,"GRADE NOT BETWEEN 60 AND 90"的语义是。
A、GRADE<60 OR GRADE>90B、GRADE<= 60 OR GRADE>= 90C、GRADE<>60 AND GRADE<>90D、GRADE<>60 OR GRADE<>90()6、简称DBA。
A、数据库管理员B、数据库C、数据库管理系统D、计算机硬件()7、在SQL中,可以使用语句执行恢复数据库的操作。
A、BACKUP DA TABASEB、RESTORE DA TABASEC、CREATE DARABASED、DROP DATABASE()8、设一个班级可选修多门课程,一门课程可被多个班级选修,班级与课程之间是。
A、一对一的联系B、一对多的联系C、多对一的联系D、多对多的联系()9、SQL Server2016的数据库中主数据文件的扩展名是。
A、.mdfB、.ndfC、.ldfD、.dbf()10、当表中引入时,会提高记录的查询速度。
A、外键B、主键C、索引D、数据库完整性二、数据库设计题(共40分)根据如下E-R图,将其转换为逻辑数据库。
SQL试题
*40. 下列哪个统计函数可以计算某一列上的最大值?( )。
A.sum
B.avg
C.max
D.min
*41. 声明了变量:declare @i int,@c char(4),现在为@i赋值10,为@c赋值'abcd',正确的语句是? ( )。
A.*
B.all
C.desc
D.distinc
*49. 下列哪个函数可以计算平均值?( )。
A.sum
B.avg
C.count
D.min
*50. 下列哪种数据类型上不能建立IDENTITY列?( )。
A.int
B.tinyint
C.float
B.数据管理功能
C.数据查询
D.数据控制
*4. 在通常情况下,下列哪个事物不是数据库对象?( )
A.View
B.Table
C.Rule
D.Word
*5. 视图最主要的优点是什么?( )
A.提高数据的逻辑独立性
B.提高查询效率
C.操作灵活
D.节省存储空间
A.insert
B.update
C.select
D.truncate table
*54. 所谓空值就是()的值?( )。
A.数值0
B.空的字符串?
C.未知的值
D.任何值
*55. 下列创建表student的语句正确的是( )。
A.create table student( 学号 char(10),姓名 char(2) ,年龄 int(4))
SQL 测试题
SQL考试题一、选择题1.SELECT语句中与HAVING子句通常同时使用的是(C)子句。
A.ORDER BYB.WHEREC.GROUP BYD.无需配合2.以下聚合函数求数据总和的是(B)A.MAX B.SUM C.COUNT D.AVG3.SELECT语句的完整语法较复杂,但至少包括的部分是( B )A.仅SELECT B.SELECT,FROM C.SELECT,GROUP D.SELECT,INTO 4.SQL语句中的条件用以下哪一项来表达( C )A.THEN B.WHILE C.WHERE D.IF5.查找表结构用以下哪一项( B )A.FIND B.SELETE C.ALTER D.DESC6.向数据表中插入一条记录用以下哪一项( B )A.CREATE B.INSERT C.SAVE D.UPDATE7.SQL语言中,删除一个表的命令是( D )A.REMOVE B.CLEAR C.DELETE D.DROP8.修改数据库表结构用以下哪一项( D )A.UPDATE B.CREATE C.UPDATED D.ALTER9.下列( D )不属于连接种类A.左外连接B.内连接C.中间连接D.交叉连接10.SQL是一种( C )语言。
A.函数型B.高级算法C.关系数据库D.人工智能11.下列的SQL语句中,( B )不是数据定义语句。
A.CREATE TABLE B.GRANT C.CREATE VIEW D.DROP VIEW 12.以下聚合函数求平均数的是( C )A.COUNT B.MAX C.AVG D.SUM13.用来插入数据的命令是( A ),用于更新的命令是( ) A.INSERT,UPDATE B.CREATE,INSERT INTO C.DELETE,UPDATE D.UPDATE,INSERT14.以下哪项用于左连接( C )A.JOIN B.RIGHT JOIN C.LEFT JOIN D.INNER JOIN15.一张表的主键个数为( C )A.至多3个B.没有限制C.至多1个D.至多2个二、填空题1.select 9/3;的结果为___true_。
sql面试题50题
sql面试题50题1. 查询表中所有数据:SELECT * FROM 表名;2. 查询表中某列的不重复数据:SELECT DISTINCT 列名 FROM 表名;3. 查询表中满足条件的数据:SELECT * FROM 表名 WHERE 条件;4. 查询表中前n条数据:SELECT * FROM 表名 LIMIT n;5. 查询表中按某列排序的数据:SELECT * FROM 表名 ORDER BY 列名;6. 查询表中某列的最大值和最小值:SELECT MAX(列名), MIN(列名) FROM 表名;7. 查询表中某列的求和值:SELECT SUM(列名) FROM 表名;8. 查询表中某列的平均值:SELECT AVG(列名) FROM 表名;9. 查询表中某列的记录数:SELECT COUNT(列名) FROM 表名;10. 查询表中满足条件的记录数:SELECT COUNT(*) FROM 表名 WHERE 条件;11. 查询表中满足条件的前n条数据:SELECT * FROM 表名 WHERE 条件 LIMIT n;12. 查询表中的数据并按某列分组:SELECT 列名 FROM 表名 GROUP BY 列名;13. 查询表中满足条件的数据并按某列分组:SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 列名;14. 查询表中满足条件的数据并计算某列的和:SELECT 列名, SUM(列名) FROM 表名 WHERE 条件 GROUP BY 列名;15. 查询表中数据满足多个条件的情况:SELECT * FROM 表名 WHERE 条件1 AND 条件2;16. 查询表中数据满足任意一个条件的情况:SELECT * FROM 表名 WHERE 条件1 OR 条件2;17. 查询表中数据满足某个范围的情况:SELECT * FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;18. 查询表中数据满足某个模式的情况:SELECT * FROM 表名 WHERE 列名 LIKE '模式';19. 查询表中数据满足某个模式的情况(不区分大小写):SELECT * FROM 表名 WHERE 列名 ILIKE '模式';20. 查询表中数据满足某个条件并按某列排序:SELECT * FROM 表名 WHERE 条件 ORDER BY 列名;21. 查询表中数据满足某个条件并按某列降序排序:SELECT * FROM 表名 WHERE 条件 ORDER BY 列名 DESC;22. 查询表中数据满足某个条件并限制结果集:SELECT * FROM 表名 WHERE 条件 LIMIT n;23. 查询表中数据满足某个条件并选择特定的列:SELECT 列名1, 列名2 FROM 表名 WHERE 条件;24. 查询表中数据满足某个条件并将结果分页显示:SELECT * FROM 表名 WHERE 条件 LIMIT 每页数量 OFFSET (页数-1) * 每页数量;25. 查询表中数据满足某个条件并按某列分组,并对某列进行排序:SELECT 列名1, SUM(列名2) FROM 表名 WHERE 条件 GROUP BY 列名1 ORDER BY 列名2;26. 查询表中数据满足某个条件,并按某列分组,并对某列进行排序,并限制结果集:SELECT 列名1, SUM(列名2) FROM 表名 WHERE 条件 GROUP BY 列名1 ORDER BY 列名2 LIMIT n;27. 查询表中数据满足某个条件,并根据某列分组,计算某列的平均值并按某列排序:SELECT 列名1, AVG(列名2) FROM 表名 WHERE 条件 GROUP BY 列名1 ORDER BY 列名2;28. 连接两个表并查询满足条件的数据:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名 WHERE 条件;29. 连接两个表并查询满足条件的数据,并根据某列排序:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名 WHERE 条件 ORDER BY 表1.列名;30. 连接两个表并查询满足条件的数据,并限制结果集:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名 WHERE 条件 LIMIT n;31. 连接两个表并查询满足条件的数据,并选择特定的列:SELECT 表1.列名1, 表2.列名2 FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名 WHERE 条件;32. 连接两个表并查询满足条件的数据,并将结果分页显示:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名 WHERE 条件 LIMIT 每页数量 OFFSET (页数-1) * 每页数量;33. 对表中的数据进行插入操作:INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);34. 对表中的数据进行更新操作:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;35. 对表中的数据进行删除操作:DELETE FROM 表名 WHERE 条件;36. 创建表:CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,...);37. 修改表结构:ALTER TABLE 表名 ADD 列名数据类型;38. 删除表:DROP TABLE 表名;39. 添加索引:CREATE INDEX 索引名 ON 表名 (列名);40. 删除索引:DROP INDEX 索引名;41. 统计表中每个值的出现次数:SELECT 列名, COUNT(列名) FROM 表名 GROUP BY 列名;42. 查询表中某列存在的不重复值:SELECT 列名 FROM 表名 WHERE 列名 IS NOT NULL GROUP BY 列名;43. 查询表中某列不存在的值:SELECT 列名 FROM 表名 WHERE 列名 IS NULL;44. 查询表中数据满足某个条件并进行分组,并统计每组的数量:SELECT 列名, COUNT(*) FROM 表名 WHERE 条件 GROUP BY 列名;45. 查询表中数据满足某个条件并进行分组,并统计每组中某列的最大值:SELECT 列名, MAX(列名2) FROM 表名 WHERE 条件 GROUP BY 列名;46. 查询表中数据满足某个条件并进行分组,并统计每组中某列的最小值:SELECT 列名, MIN(列名2) FROM 表名 WHERE 条件 GROUP BY 列名;47. 查询表中数据满足某个条件并进行分组,并统计每组中某列的平均值:SELECT 列名, AVG(列名2) FROM 表名 WHERE 条件 GROUP BY 列名;48. 查询表中数据满足某个条件并进行分组,并统计每组中某列的求和值:SELECT 列名, SUM(列名2) FROM 表名 WHERE 条件 GROUP BY 列名;49. 查询表中多个列的不重复组合:SELECT DISTINCT 列名1, 列名2, ... FROM 表名;50. 查询表中某列满足条件的前n个不重复值:SELECT DISTINCT 列名 FROM 表名 WHERE 条件 LIMIT n;这些SQL面试题可以帮助你在面试中更好地掌握SQL语言的使用。
sql试题及答案
sql试题及答案一、单选题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数据库试题及答案
sql数据库试题及答案SQL数据库试题一1. 下面哪个命令可以创建一个名为"employee"的表格?A. CREATE TABLE employee;B. NEW TABLE employee;C. ADD TABLE employee;D. INSERT TABLE employee;答案:A. CREATE TABLE employee;2. 下列哪个是SQL数据库的关键字?A. SELECTB. COLUMNC. INSERTD. ADD答案:A. SELECT3. 在SQL中,如何查询一个名为"customers"的表格的所有记录?A. SELECT * FROM customers;B. SELECT ALL FROM customers;C. SELECT RECORDS FROM customers;D. SELECT DATA FROM customers;答案:A. SELECT * FROM customers;4. 如何在SQL中向表格中插入新的记录?A. ADD NEW INTOB. UPDATE TABLEC. INSERT INTOD. CREATE NEW答案:C. INSERT INTO5. 如何根据特定条件从表格中删除记录?A. REMOVE FROMB. ERASE ROWC. DELETE FROMD. DROP RECORD答案:C. DELETE FROMSQL数据库试题二1. 下面哪个关键字可以用来对查询结果进行排序?A. GROUP BYB. SORT BYC. ORDER BYD. ARRANGE BY答案:C. ORDER BY2. 在SQL中,如何对表格的指定列进行更新?A. MODIFY COLUMNB. EDIT TABLEC. UPDATE COLUMND. ALTER TABLE答案:C. UPDATE COLUMN3. 下面哪个函数可以计算表格中指定列的平均值?A. AVG()B. SUM()C. MAX()D. COUNT()答案:A. AVG()4. 在SQL中,如何查找表格中满足特定条件的记录数量?A. GET()B. FETCH()C. SEARCH()D. COUNT()答案:D. COUNT()5. 下面哪个关键字可以用来从多个表格中联合查询数据?A. UNIONB. JOINC. CONNECTD. COMBINE答案:B. JOIN文章到此结束,希望以上SQL数据库试题及答案能帮助到您对SQL数据库的理解和学习。
sql经典练习题库(附答案)
SQL练习题库表结构Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表试题:1、查询“0001”课程比“C002”课程成绩高的所有学生的学号;Select s# from scWhere c#='0001' and score>any(select score from sc c#='0002')2、查询平均成绩大于60分的同学的学号和平均成绩;select s#,avg(score) from SCgroup by s#having avg(score)>603、查询所有同学的学号、姓名、选课数、总成绩;select student.s#,student.sname,count(sc.c#)as 选课数,sum(score)总成绩from student,scwhere student.s#=sc.s#group by student.s#,student.sname4、查询姓“张”的老师的个数;select count(*)人数from teacherwhere tname like'张%'5、查询没学过“叶平”老师课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# not in(select t# from teacher where tname='张丽芬') group by student.s#,student.sname6、查询学过“0001”并且也学过编号“0002”课程的同学的学号、姓名;select sc.s#,sname from sc,studentwhere sc.c# = '0001' and student.s# = sc.s# and sc.s# in (select s# from sc where sc.c# = '0002')--并(两表值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'unionselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--交(有相同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'intersectselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--差(不同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'exceptselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# in(select t# from teacher where tname='张丽芬')group by student.s#,student.sname8、查询课程编号“001”的成绩比课程编号“002”课程低的所有同学的学号、姓名;select student.s#,sname,score from student,scwhere student.s#=sc.s# and score in(( select score from sc where c#='0001' )<all( select score from sc where c#='0002' )) 9、查询所有课程成绩小于60分的同学的学号、姓名;select student.s#,sname from studentwhere s# in(select s# from sc where score<60)10、查询没有学全所有课的同学的学号、姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s#group by student.s#,student.snamehaving count(c#)<(select count(c#) from course)11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s# and c#=any(select c# from scwhere s#='1001')group by student.s#,student.sname12、查询至少学过学号为“0001”同学所有一门课的其他同学学号和姓名;Select sc.s#,sname from sc inner join student on sc.s#=student.s#Where c# in (select c# from sc where s#=’0001’)13、把“SC”表中“赵雁南”老师教的课的成绩都更改为此课程的平均成绩;update scset score=(select avg(sc.score) from sc,teacher,coursewhere sc.c#=course.c# and course.t#=teacher.t# and teacher.tname='赵雁南')where sc.c#=(select c# from course,teacher where course.t#=teacher.t# and tname='赵雁南' )14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select student.s#,sname from student,scwhere student.s#=sc.s# and sc.c#=all(select c# from sc where s#='1005') and student.s#<>'1005'15、删除学习“朱玉文”老师课的SC表记录;delete from scwhere c# in(select c# from sc where c# in (select c# from course,teacher where teacher.t#=course.t# and teacher.tname='朱玉文' ) )16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“0002”课程的同学学号、号课的平均成绩;insert into scvaluesselect s# from sc where s# not in (select s# from sc where c#='0002'select avg(score) as 平均成绩from sc where c#='0002'17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分select sc.s#,ame,sc.score,avg(score)as 平均成绩from sc inner join course on sc.c#=course.c#where sc.c# in(select c# from course where cname=any(select cname from course where cname in('计算机基础','Oracle','软件工程')))group by sc.s#,ame,sc.scoreorder by avg(score) descSELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0001') AS 计算机基础,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0002') AS Oracle,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0011') AS 软件工程,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM sc AS tGROUP BY S#ORDER BY avg(t.score) desc18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分select c# 课程ID,max(score) 最高分,min(score) 最低分from scgroup by c#19、按各科平均成绩从低到高和及格率的百分数从高到低顺序select c#, avg(score) from scwhere score>60group by c#20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(),马克思(),OO&UML (),数据库()21、查询不同老师所教不同课程平均分从高到低显示select course.t#,avg(sc.score) as 平均分from sc,coursewhere sc.c#=course.c#group by course.t#order by avg(sc.score) desc22、查询如下课程成绩第3 名到第6 名的学生成绩单:企业管理,马克思,UML,数据库[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩select student.s#,student.sname,sc.score,ame from student inner join sc on student.s#=sc.s#inner join course on sc.c#=course.c#where ame in('oracle','电路分析','计算机基础')order by ame,sc.score desc23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]select sc.c#,ame,count(*)人数from sc,coursewhere course.c#=sc.c#group by sc.c#,ame24、查询学生平均成绩及其名次select sc.s#,avg(score) from scgroup by sc.s#order by avg(score) desc25、查询各科成绩前三名的记录考虑成绩并列情况select s#,c# ,score from scwhere score in (select distinct top 3 score from scgroup by c#,score)order by score desc26、查询每门课程被选修的学生数select c# as 课程号,count(c#)as 选修人数from scgroup by c#order by count(c#) desc27、查询出只选修了一门课程的全部学生的学号和姓名select sc.s#,student.sname from sc inner join student on student.s#=sc.s#group by sc.s#,student.snamehaving count(c#)=128、查询男生、女生人数select ssex, count(*) as 总人数from studentgroup by ssex29、查询姓“张”的学生名单select sname from studentwhere sname like '张%'30、查询同名同性学生名单,并统计同名人数select ssex,count(*) from studentgroup by ssex31、同年出生的学生名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列select c#,avg(score)平均成绩from scgroup by c#order by avg(score) asc33、查询平均成绩大于的所有学生的学号、姓名和平均成绩select top 1 student.s#,student.sname,avg(score)平均成绩from student inner join sc on student.s#=sc.s#group by student.s#,student.snameorder by avg(score) desc34、查询课程名称为“数据库”,且分数低于80的学生姓名和分数select student.sname,sc.score from sc,student,coursewhere student.s#=sc.s# and sc.c#=course.c# and ame='计算机基础' and sc.score<80group by student.sname,sc.score35、查询所有学生的选课情况;select student.s#,sname,c# from student left join sc on student.s#=sc.s#36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;select student.sname,ame,sc.score from student,sc,coursewhere student.s#=sc.s# and sc.c#=course.c# and sc.score>70order by score desc37、查询不及格的课程,并按课程号从大到小排列select c#,score from scwhere score<60order by c#38、查询课程编号为0001且课程成绩在70分以上的学生的学号和姓名;select student.s#,sname from sc,studentwhere c#='0001' and score>70 and student.s#=sc.s#39、求选了课程的学生人数select count(s#)人数from scwhere sc.score<>040、查询选修“oracle”课程的学生中,成绩最高的学生姓名及其成绩select top 1 student.sname,max(sc.score)成绩最高from student inner join sc on student.s#=sc.s# inner join course on sc.c#=course.c#where ame='oracle'group by student.snameorder by max(sc.score) desc41、查询各个课程及相应的选修人数select ame,count(sc.c#) as 选修人数from sc inner join course on sc.c#=course.c#group by ameorder by count(sc.c#) desc,ame asc42、查询不同课程成绩相同的学生的学号、课程号、学生成绩43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 score FROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#44、统计每门课程的学生选修人数(超过人的课程才统计)。
sql测试题和答案.docx
sql测试题和答案# SQL测试题1. 基础查询题- 题目:编写一个SQL查询,从`employees`表中选择所有员工的姓名和员工ID。
- 答案:`SELECT name, employee_id FROM employees;`2. 条件查询题- 题目:从`orders`表中选择所有订单金额超过1000的订单。
- 答案:`SELECT * FROM orders WHERE order_amount > 1000;`3. 排序题- 题目:从`products`表中选择所有产品的名称和价格,并按价格降序排列。
- 答案:`SELECT name, price FROM products ORDER BY price DESC;`4. 聚合函数题- 题目:计算`sales`表中所有销售额的总和。
- 答案:`SELECT SUM(sales_amount) AS total_sales FROM sales;`5. 分组查询题- 题目:从`sales`表中按产品ID分组,并计算每个产品的总销售额。
- 答案:`SELECT product_id, SUM(sales_amount) AStotal_sales_per_product FROM sales GROUP BY product_id;`6. 连接查询题- 题目:查询`customers`表和`orders`表,找出所有客户的姓名和他们下过的订单数量。
- 答案:`SELECT , COUNT(o.order_id) AS order_count FROM customers c JOIN orders o ON c.customer_id =o.customer_id GROUP BY ;`7. 子查询题- 题目:找出`employees`表中工资高于平均工资的员工的姓名和工资。
- 答案:`SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`8. 多表连接查询题- 题目:查询`employees`表和`departments`表,找出所有员工的姓名、部门名称和部门ID。
sql考试题
常见SQL考试题以下是一些常见的SQL编程考试题,仅供参考:1. 查询表中所有数据:SELECT * FROM table_name;2. 查询表中指定字段的数据:SELECT column1, column2 FROM table_name;3. 查询表中符合条件的数据:SELECT * FROM table_name WHERE condition;4. 对查询结果进行排序:SELECT * FROM table_name ORDER BY column_name ASC/DESC;5. 查询表中数据的总数:SELECT COUNT(*) FROM table_name;6. 查询表中数据的平均值:SELECT AVG(column_name) FROM table_name;7. 查询表中数据的最大值:SELECT MAX(column_name) FROM table_name;8. 查询表中数据的最小值:SELECT MIN(column_name) FROM table_name;9. 查询表中数据的和:SELECT SUM(column_name) FROM table_name;10. 查询表中数据的分组统计:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;11. 查询表中数据满足多个条件的记录:SELECT * FROM table_name WHERE condition1 AND condition2;12. 查询表中数据满足任意一个条件的记录:SELECT * FROM table_name WHERE condition1 OR condition2;13. 查询表中数据满足一个条件但不满足另一个条件的记录:SELECT * FROM table_name WHERE condition1 AND NOT condition2;14. 查询表中数据匹配指定模式的记录:SELECT * FROM table_name WHERE column_name LIKE 'pattern';15. 查询表中数据在指定值范围内的记录:SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;16. 查询表中数据按照日期范围筛选:SELECT * FROM table_name WHERE date_column BETWEEN 'start_date' AND'end_date';17. 查询表中数据按照年份统计:SELECT YEAR(date_column), COUNT(*) FROM table_name GROUP BY YEAR(date_column);18. 查询表中数据按照月份统计:SELECT MONTH(date_column), COUNT(*) FROM table_name GROUP BY MONTH(date_column);19. 查询表中数据按照星期几统计:SELECT DAYNAME(date_column), COUNT(*) FROM table_name GROUP BY DAYNAME(date_column);20. 查询表中数据按照区间分组统计:SELECT CASE WHEN column_name < value1 THEN 'Group1'WHEN column_name <= value2 THEN 'Group2'ELSE 'Group3' END AS group_name, COUNT(*) FROM table_name GROUP BY group_name;21. 查询表中数据按照多个字段排序:SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;22. 查询表中数据按照字段去重:SELECT DISTINCT column_name FROM table_name;23. 查询两个表的交集:SELECT * FROM table1 INTERSECT SELECT * FROM table2;24. 查询两个表的并集:SELECT * FROM table1 UNION SELECT * FROM table2;25. 查询两个表的差集:SELECT * FROM table1 EXCEPT SELECT * FROM table2;26. 查询表中数据按照条件分页:SELECT * FROM table_name WHERE condition LIMIT offset, count;27. 查询表中数据排序并分页:SELECT * FROM table_name ORDER BY column_name LIMIT offset, count; 28. 查询表中数据按照指定值分段:SELECT column_name,CASE WHEN column_name <= value1 THEN 'Group1'WHEN column_name <= value2 THEN 'Group2'ELSE 'Group3' END AS group_nameFROM table_name;29. 查询表中数据在另一个表中不存在的记录:SELECT * FROM table1 WHERE column_name NOT IN (SELECT column_name FROM table2);30. 查询表中数据在另一个表中存在的记录:SELECT * FROM table1 WHERE column_name IN (SELECT column_name FROM table2);31. 查询表中数据满足多个条件的记录:SELECT * FROM table_name WHERE column1 IN (value1, value2) AND column2 = value3;32. 查询表中数据的前N条记录:SELECT * FROM table_name LIMIT N;33. 查询表中数据的第N到第M条记录:SELECT * FROM table_name LIMIT N, M;34. 查询表中数据按照指定字段分组并计算总和:SELECT column1, SUM(column2) FROM table_name GROUP BY column1; 35. 查询表中数据按照指定字段分组并计算平均值:SELECT column1, AVG(column2) FROM table_name GROUP BY column1; 36. 查询表中数据按照指定字段分组并计算最大值:SELECT column1, MAX(column2) FROM table_name GROUP BY column1; 37. 查询表中数据按照指定字段分组并计算最小值:SELECT column1, MIN(column2) FROM table_name GROUP BY column1; 38. 查询表中数据按照指定字段分组并计算个数:SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;39. 查询表中数据按照指定字段分组并计算各分组记录的个数:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;40. 查询表中数据按照指定字段分组并排序:SELECT column1, COUNT(*) FROM table_name GROUP BY column1 ORDER BY COUNT(*) DESC;41. 查询表中数据同时满足多个条件的记录数:SELECT COUNT(*) FROM table_name WHERE condition1 AND condition2;42. 查询表中数据满足一个条件但不满足另一个条件的记录数:SELECT COUNT(*) FROM table_name WHERE condition1 AND NOT condition2;43. 查询表中数据在指定模式下匹配的记录数:SELECT COUNT(*) FROM table_name WHERE column_name LIKE 'pattern';44. 查询表中数据在指定值范围内的记录数:SELECT COUNT(*) FROM table_name WHERE column_name BETWEEN value1 AND value2;45. 查询表中数据满足多个条件的平均值:SELECT AVG(column_name) FROM table_name WHERE condition1 AND condition2;46. 查询表中数据满足一个条件但不满足另一个条件的平均值:SELECT AVG(column_name) FROM table_name WHERE condition1 AND NOT condition2;47. 查询表中数据在指定模式下匹配的平均值:SELECT AVG(column_name) FROM table_name WHERE column_name LIKE 'pattern';48. 查询表中数据在指定值范围内的平均值:SELECT AVG(column_name) FROM table_name WHERE column_name BETWEEN value1 AND value2;49. 将查询结果按照指定字段进行分组并计算总和、平均值、最大值、最小值:SELECT column1, SUM(column2), AVG(column2), MAX(column2), MIN(column2) FROM table_name GROUP BY column1;50. 查询表中数据满足多个条件的总和:SELECT SUM(column_name) FROM table_name WHERE condition1 AND condition2;51. 查询表中数据满足一个条件但不满足另一个条件的总和:SELECT SUM(column_name) FROM table_name WHERE condition1 AND NOT condition2;52. 查询表中数据在指定模式下匹配的总和:SELECT SUM(column_name) FROM table_name WHERE column_name LIKE 'pattern';53. 查询表中数据在指定值范围内的总和:SELECT SUM(column_name) FROM table_name WHERE column_name BETWEEN value1 AND value2;54. 查询表中数据在两个字段间的总和:SELECT SUM(column_name1 + column_name2) FROM table_name;55. 查询表中数据在两个字段间的平均值:SELECT AVG(column_name1 + column_name2) FROM table_name;56. 查询表中数据在两个字段间的最大值:SELECT MAX(column_name1 + column_name2) FROM table_name;57. 查询表中数据在两个字段间的最小值:SELECT MIN(column_name1 + column_name2) FROM table_name;58. 查询表中数据在两个字段间的个数:SELECT COUNT(column_name1 + column_name2) FROM table_name;59. 查询表中数据在两个字段间的去重记录数:SELECT COUNT(DISTINCT column_name1 + column_name2) FROM table_name;60. 查询表中数据在两个字段间的记录满足条件的个数:SELECT COUNT(*) FROM table_name WHERE column_name1 + column_name2 >= value;这些试题涵盖了SQL编程的各种常见知识点,希望对您有帮助!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
id int primary key auto_increment, name varchar(20), mid int, constraint foreign key (mid) references modules(id) );
SQL 部分
1、当用下面的 SQL 语句对数据库进行查询时,为什么会出错? SELECT name, sal FROM emp WHERE sal =
(SELECT sal FROM emp WHERE name='John' OR deptno = 12)
A. 上述查询中不允许子查询 B. WHERE 语句中不允许出现逻辑运算符 C. 单行运算符后面的子查询返回多行 D. 多行运算符后的子查询返回单行 答:C
2、下面查询中哪一个查询返回所有没有下属的员工? A. SELECT e.ename FROM emp e WHERE e.mgr IS NOT NULL; B. SELECT e.ename FROM emp e WHERE e.empno IN (SELECT m.mgr FROM emp m) C. SELECT e.ename FROM emp e WHERE e.empno NOT IN (SELECT m.mgr FROM emp
答:like,%
15、计算机字段的累加和的函数是_____,统计结果集行数的函数是______。 答:sum 和 count
16、什么是数据库系统? 答:数据库系统是储存、管理、处理和维护数据的软件系统,它由数据库、数据 库管理员和有关软件组成。数据库系统的结构框架由外部层(单个用户的视图)、 概念层(全体用户的公共视图)和内部层(存储视图)组成。
m) D. SELECT e.ename FROM emp e WHERE e.empno IN (SELECT m.mgr FROM emp m
WHERE m.mgr IS NOT NULL) 答:D
3、在 PL/SQL 块的变量声明部分声明的 number 类型的变量,如果没有给出变量 的初始值,那么在 PL/SQL 块执行时,该变量的被初始化为: A. 0 B. Null C. 变量的初始值取决于变量定义中指定的长度和精度 D. 由于变量没有初始化,PL/SQL 块将无法执行 答:B
答:A
11、当运用 SQL 语句创建主键时,可以是 A.create table table
(column1 char(13) not null primary, Column2 int not) on primary ;
B.alter table table with notcheck add
Copyright Tarena Corporation,2011.All rights reserved
Copyright Tarena Corporation,2011.All rights reserved
条件的检查以及完整性约束条件的处理.后两部分在数据库中一般有相应的模块 处理。另外触发器也可以做完整性的保护,但触发器大量用于主动性领域。
18、什么是触发器和存储过程? 答:触发器是存储在数据库中的块,这些块一旦被构造后,就可以多次执行,当 触发它的事件发生时调用该触发器。触发事件是指对表中数据的操作,如插入、 删除和修改。
6、description of the students table: sid_id number start_date date end_date date which two function are valid on the start_date column?_________。 A.sum(start_date) B.avg(start_date) C.count(start_date) D.avg(start_date,end_date) E.min(start_date) F.maximum(start_date) 答:CE
create table course (id number(10) primary key,name varchar2(20)); create table sc(sid number(10) references student(id),cid number(10)
references course(id),grade number(4,2));
Copyright Tarena Corporation,2011.All rights reserved
B.select dept_id, job_cat,max(salary) dept_id,job_cat;
from employees group by
C. select dept_id, job_cat,max(salary) from employees;
id int primary key auto_increment, name varchar(20)
);
-- 系统模块表
create table modules (
id int primary key auto_increment,
name varchar(50),
url
varchar(50)
);
存储过程是将常用的或很复杂的工作,预先用 SQL 语句写好并用一个指定的 名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的 服务时,只需调用 execute,即可自动完成命令。
19、说出下面语句的作用:
Select
rownum,last_name,salary
From (select last_name,salary from s_emp order by salary desc) Where rownum<=10;
insert into student values(1,'feifei'); insert into student values(2,'jingjing'); insert into student values(3,'nannan'); insert into student values(4,'yuanyuan'); insert into student values(5,'jiejie');
constraint [PK_ table1] primary key nonclustered (column1) on primary ; C.alter table table add primary key column; 答:C
12、为数据库创建索引的目的是(___)
A.提高查询的检索功能
7、在关系数据库的询问优化中,事先处理文件,如排序、建立索引的目的是 A 优化表达式 B 减少中间结果 C 扩大缓冲数据 D 减少扫描文件的时间 答:D
8、已知关系框架 R(A,B,C,D,E)及其上的函数相关性集合,F={ A →B,E→ A,CE→D},该关系框架的候选关键字是
A .AE B.BE C.CE D.DE 答:C
D.select dept_id, job_cat,max(salary) from employees group by dept_id;
E.select dept_id, job_cat,max(salary) from employees group by
dept_id,job_cat,salary; 答:B
17、试述数据库完整保护的主要任务和措施。 答:数据库的完整性保护也就是数据库中数据正确性的维护。数据库完整性包括 三个内容:实体完整性规则,参照物完整性规则以及用户定义完整性规则。
前两个是有 DBMS 自动处理。 实体完整性规则是说针对于基表中的关键字中属性值不能为空值,是数据库 完整性的基本要求,主关键字和元组的唯一性对应。 参照物完整性规则是不允许引用不存在的元组:即基表中的外关键字要么为 空,要么关联基表中必存在元组。 用户定于的完整性规则针对具体的数据环境由用户具体设置的规则,它反应 了具体应用中的语义要求。 一个完整性规则一般由下面三部分组成:完整性约束条件设置,完整性约束
-- 角色权限设置表
create table rolerights (
id
int primary key auto_increment,
roleid
int references roles(id),
rightid int references rights(id)
);
21、有三张表,学生表 S,课程表 C,学生课程表 SC,学生可以选修多门课程, 一门课程可能被多个学生选修,通过 SC 表关联。
4、在执行下面 SQL 时 DELETE FROM dept WHERE dept_id = 12;出现 integrated constraint error because the child record was found 错误,如何才能使这 条 SQL 语句执行成功? A. 执行之前,删除 child record B. 无法使该命令执行成功 C. 在该命令上添加另外的关键字 D. 在命令中添加 cascade constraints 选项 答:AD
答:选出 s_emp 表中工资前 10 名员工的姓名和工资。
20、说明在一个系统中权限管理中应该有哪些表、表间关系、各表哪些功能? 答:
角色和权限表是 m:n 的关系 操作表和权限表是 1:m 的关系 模块表和操作表是1:m的关系 表的大体设计如下: -- 角色表
create table roles (
(1) 写出建表以及插入语句; (2) 写出 SQL 语句,查询选修了所有选修课程的学生; (3) 写出 SQL 语句,查询选修了至少 2 门以上的课程的学生。 答: (1)