数据库常见笔试面试题

2024-04-27

1. 数据库常见笔试面试题

 数据库常见笔试面试题
                      数据库常见笔试面试题有哪些?数据库常见笔试面试会考什么?下面是数据库常见面试题总结,为大家提供参考。
    
     1、SQL的表连接方式有哪些? 
    SQL中连接按结果集分为:内连接,外连接,交叉连接
    内连接:inner join on,两表都满足的组合。内连接分为等值连接,不等连接,自然连接。
    等值连接:两表中相同的列都会出现在结果集中。
    自然连接:两表中具体相同列表的列会合并为同一列出现在结果集中。
    外连接:分为左(外)连接,右(外)连接,全连接
    左(外)连接:A left (outer) join B,以A表为基础,A表的全部数据,B表有的组合,没有的为null。
    右(外)连接:A right(outer) join B,以B表为基础,B表的全部数据,A表有的组合,没有的位null。
    全连接:A full (outer) join 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有,A表没有的显示为null。
    交叉连接:cross join,就是笛卡尔乘积。
     2、三范式 
    1NF:表中的字段都是单一属性,不再可分。
    2NF:在1NF的基础上,表中所有的非主属性都必须完全依赖于任意一组候选键,不能仅依赖于候选键中的某个属性。
    3NF:在2NF的基础上,表中所有的属性都不依赖其他非主属性。
    简单的说就是:1NF表示每个属性不可分割,2NF表示非主属性不存在对主键的部分依赖,3NF表示不存在非主属性对主键的依赖传递。
     3、表的操作 
    表的创建:create table 表名 (列名1 类型 约束,列2 类型 约束…)
    表的删除: 表名
    表的更改(结构的更改,不是记录的更新):alter table 表名 add|drop 列名|约束名
    插入记录: into 表名…values…
    更新记录:表名 set 列名=值 where 条件
    删除记录: from 表名 where 条件
     4、数据的完整性 
    数据完整性指的是存储在数据库中的数据的一致性和准确性。
    完整性分类:
    (1)实体完整性:主键值必须唯一且非空。(主键约束)
    (2) 引用完整性(也叫参照完整性):外键要么为空,要么引用主表中存在的记录。(外键约束)。
    (3)用户自定义完整性:针对某一具体关系数据库中的约束条件。
     5、SQL的查询优化 
    (1)从表连接的角度优化:尽量使用内连接,因为内连接是两表都满足的行的组合,而外连接是以其中一个表的全部为基准。
    (2)尽量使用存储过程代替临时写SQL语句:因为存储过程是预先编译好的SQL语句的集合,这样可以减少编译时间。
    (3)从索引的角度优化:对那些常用的查询字段简历索引,这样查询时值进行索引扫描,不读取数据块。
    (4)还有一些常用的select优化技巧:
    (5)A.只查询那些需要访问的字段,来代替select*
    B、将过滤记录越多的where语句向前移:在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。
     6、索引的作用,聚集索引与非聚集索引的区别 
    索引是一个数据库对象,使用索引,可以是数据库程序无须对整个数据进行扫描,就可以在其中找到目标数据,从而提高查找效率。索引的底层采用的是B树。
    聚集索引:根据记录的key再表中排序数据行。
    非聚集索引:独立于记录的结构,非聚集所以包含的`key,且每个键值项都有指向该简直的数据行的指针。
    聚集索引与非聚集索引的区别:
    (1)聚集索引的物理存储按索引排序,非聚集所以的物理存储不按索引排序。
    (2) 聚集索引插入,更新数据的速度比非聚集索引慢,单查询速度更快。
    (3) 聚集索引的叶级结点保存的是时间的数据项,而非聚集结点的叶级结点保存的是指向数据项的指针。
    (4)一个表只能有一个聚集索引(因为只有一种排序方式),但可以有多个非聚集索引。
     7、存储过程与函数的区别 
    (1)函数有返回值,存储过程没有返回值。
    (2) 因为存储过程没有返回值,所以不能将存储过程的执行结果赋值给变量;函数有返回值类型,调用函数时,可以将函数的执行结果赋值给变量。也就是说,函数可以在select语句中使用,而存储过程则不能。
    
  ;

数据库常见笔试面试题

2. 数据库笔试问题

有问题再追问,望采纳。
1、定义固定长度非Unicode字符型局部变量S,且长度为6的命令是declare @S char(10)。
2、表达式6!8=的值是 true,表达式(9=8)and(5<6)的值为false。
3、表达式STR(123.645,8,2)的值的 123.64。
4、表约束是SQL Server 提供的一种强制实现数据完整性的机制,包括:主键约束、外键约束、唯一键约束、检查约束、默认值约束、级联参照完整新约束
5、定义日期时间局部变量DT的命令是:declare @DT datetime。
6、实体之间的联系可以有3种:1对1、1对多和多对多。
7、表达式LEN(‘beijing’)的值是7。
8、在T-SQL中可以使用两种类型的注释字符:单行注释和多行注释。

3. 面试常问的数据库问题及答案

目前在职场中很难找到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。” 
在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。 
你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗? 
你希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。 
NULL是什么意思? 
NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。 
NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。 
  
什么是索引?SQL Server 2000里有什么类型的索引? 
任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。 
简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。 
什么是主键?什么是外键? 
主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。 
什么是触发器?SQL Server 2000有什么不同类型的触发器? 
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的
 
触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。 
AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。 
您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里? 
这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。 
另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。 
对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑? 
你正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。 
你可以用什么来确保表格里的字段只接受特定范围里的值? 
这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。 
触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。 
如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。 
返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。 
OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。 
什么是相关子查询?如何使用这些查询? 
经验更加丰富的开发人员将能够准确地描述这种类型的查询。 
相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

面试常问的数据库问题及答案

4. 数据库的面试会问什么问题

目前在职场中很难找到非常合格的数据库开发人员。有人说:“sql开发是一门语言,它很容易学,但是很难掌握。” 
在面试应聘的sql Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。 
你能向我简要叙述一下sql Server 2000中使用的一些数据库对象吗? 
你希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。 
null是什么意思? 
null(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。 
null这个值表示unknown(未知):它不表示“”(空字符串)。假设您的sql Server数据库里有ANSI_nullS,当然在默认情况下会有,对null这个值的任何比较都会生产一个null值。您不能把任何值与一个 unknown值进行比较,并在逻辑上希望获得一个答案。您必须使用IS null操作符。 
  
什么是索引?sql Server 2000里有什么类型的索引? 
任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。 
简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在sql Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。 
什么是主键?什么是外键? 
主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。 
什么是触发器?sql Server 2000有什么不同类型的触发器? 
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的
 
触发器是一种专用类型的存储过程,它被捆绑到sql Server 2000的表格或者视图上。在sql Server 2000里,有INSTEAD-OF和after两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,dml)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。 
after触发器要在dml语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。 
您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里? 
这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。 
另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。 
对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑? 
你正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。 
你可以用什么来确保表格里的字段只接受特定范围里的值? 
这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。 
触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。 
如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。 
返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是int数据类型。 
OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。 
什么是相关子查询?如何使用这些查询? 
经验更加丰富的开发人员将能够准确地描述这种类型的查询。 
相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

5. 数据库存储过程有哪些,面试题

/*系统存储过程很多,有些常用,有些不常用常用:sp_attach_db  附加数据库到一个服务器中sp_columns  返回在当前环境中列的信息sp_databases  列出当前系统中的数据库sp_configure  显示或修改当前服务器的全局配置sp_depends  显示数据库对象的依赖信息sp_executesql   执行动态的T-SQL语句sp_help  报告有关数据库对象的信息sp_helpdb   返回指定数据库或全部数据库的信息sp_helptext  显示规则、默认值、存储过程、触发器、视图等的未加密的文本定义信息sp_indexes  返回指定远程表的索引信息sp_lock  返回有关锁的信息sp_password  增加或者修改指定login的口令sp_rename  更改用户创建的数据库对象名称sp_renamedb  更改数据库名称sp_spaceused   显示数据库的空间使用情况sp_tables  返回在当前环境中可以被查询的对象的列表sp_who  提供当前用户和进程的信息不常用:sp_addlinkedserver  创建一个允许执行分布式查询的链接服务器sp_addlinkedsrvlogin  在本地服务器和远程服务器之间创建login帐户的映射关系sp_addlogin  创建一个新的login帐户sp_add_agent_parameter  在代理文件中增加一个参数sp_add_agent_profile  为复制代理增加一个代理文件sp_add_alert   创建一个警报sp_add_category   在服务器上,增加一种作业、警报或者操作员的特定分类sp_add_data_file_recover_suspect_db 当数据库复原不能完成时,向文件组增加一个数据文件sp_add_file_recover_suspect_db  对于复原有问题的数据库增加一个文件sp_add_job  增加一个sql server agent可以执行的作业sp_add_jobschedule  为作业创建调度sp_add_jobserver  把指定的作业增加到指定服务器上sp_add_jobstep  在作业中增加一步或一个操作sp_add_log_file_recover_suspect_db  当数据库复原不能完成时,向文件组增加一个日志文件sp_add_notification  为警报创建一个通知sp_add_operator  为警报或者作业创建一个操作员sp_add_targetservergroup  增加指定的服务器组sp_add_targetsvrgrp_member  在指定的目标服务器组增加一个目标服务器sp_addalias  在数据库中为login帐户增加一个别名sp_addapprole  在数据库中增加一个特殊的应用程序角色sp_addarticle  创建文章,并把该文章添加到出版物中sp_adddistpublisher  创建一个使用本地分布服务器的出版服务器sp_adddistributiondb  在分布服务器上创建一个新的distribution数据库sp_adddistributor  增加一个分布服务器sp_addextendedproc  在系统中增加一个扩展存储过程sp_addgroup  在当前数据库中增加一个组sp_addmergearticle  为一个已有的合并出版物创建一个文章sp_addmergefilter  为了连接另外一个表,创建一个合并过滤器sp_addmergepublication  创建一个新的合并出版物sp_addmergepullsubscription  增加一个拉回类型的订阅物sp_addmergepullsubscription_agent  在订阅服务器上,为合并拉回订阅物创建一个代理sp_addmergesubscription  创建一个推出或者拉回类型的订阅物sp_addmessage  在系统中增加一个新的错误消息sp_addpublicaton  创建一个快照复制或者事务复制出版物sp_addpublicaton_snapshot  创建一个快照代理sp_addpullsusscription  在当前订阅服务器的数据库中增加一个拉回或者匿名订阅物sp_addpullsusscription_agent  在订阅服务器的数据库中增加一个新的代理sp_addremotelogin 在本地服务器上增加一个远程login帐户,允许执行远程存储过程调用sp_addrole  在当前数据库中增加一个角色sp_addrolemember  为当前数据库中的一个角色增加一个安全性帐户sp_addserver  添加一个远程或者本地服务器sp_addsrvrolemember  为固定的服务器角色增加一个成员sp_addsubscriber  增加一个新的订阅服务器sp_addsubscriber_schedule  为分布代理和合并代理增加一个调度sp_addsubscription  订阅文章并且设置订阅服务器的状态sp_addsynctrigers  在订阅服务器上创建一个立即修改触发器sp_addtabletocontents  在合并跟踪表中插入一个参考sp_addtype  创建一个用户定义的数据类型sp_addumpdevice  增加一个备份设备sp_adduser  在当前数据库中为一个新用户增加一个安全性帐户sp_altermessage  修改错误信息的状态sp_addly_job_to_targets  把作业应用到一个或者多个目标服务器sp_approlepassword  在当前数据库中改变应用程序角色的口令sp_aarticle_validation  为指定的文章初始化确认请求sp_aarticlecolumn  指定在文章中使用的列sp_aarticlefilter  创建一个用于水平过滤数据的过滤器sp_articleview  当表被过滤时,为文章创建一个同步化对象sp_attach_single_file_db  在当前服务器中,附加一个只有一个数据文件的数据库sp_aautostats  对于一个指定的索引或统计,自动显示update statistics的状态sp_bindefault  把默认值绑定到列或用户定义的数据类型上sp_bindrule  把规则绑定到列或用户定义的数据类型上sp_bindsession  绑定或解除绑定与实例中的其它事务的连接sp_browsereplcmds  在分布数据库中返回一种可读格式的结果集sp_catalogs  返回指定连接服务器中的系统目录列表,在本地服务器中等价于数据库列表sp_certify_removable  确认在可移动介质上用于分布的数据库是否正确配置sp_change_agent_parameter  修改复制代理配置使用的参数sp_change_agent_profile   修改复制代理配置使用的配置参数sp_change_users_login  修改login与当前数据库中用户之间的关系sp_changearticle  改变文章的属性sp_changedbowner  改变当前数据库的所有者sp_changedistpublisher  改变分布出版服务器的属性sp_changedistributor_password  改变分布服务器的口令sp_changedistributor_property  改变分布服务器的属性sp_changedistribtutiondb  改变分布数据库的属性sp_changegroup  改变安全性帐户所属的角色sp_changemergearticle  改变合并文章的属性sp_changemergefilter  改变一些合并过滤器的属性sp_changemergepublication  改变合并出版物的属性sp_changemergepullsubscription  改变合并拉回出版物的属性sp_changemergesubscription  改变合并的推出或者拉回出版物的属性sp_changeobjectowner  改变对象的所有者sp_changepublication  改变出版物的属性sp_changesubscriber  改变用于订阅服务器的选项sp_changesubscriber_schedule  改变用于分布式代理和事务代理的订阅服务器的调度sp_changesubstatus  改变订阅服务器的状态sp_column_privileges  返回列的权限信息sp_column_privileges_ex  返回在链接服务器上指定表的列的权限信息sp_columns_ex  返回在链接服务器上列的信息sp_create_removable  创建一个可移动介质数据库sp_createstats  创建单列的统计信息sp_cursor  用于请求定位更新sp_cursor_list  报告当前打开的服务器游标属性sp_cursorclose  关闭和释放游标sp_cursorfetch   从游标中取出数据行sp_cursoropen   定义与游标和游标选项相关联的 SQL 语句,然后填充游标sp_cursoroption  用于设置各种游标选项sp_cycle_errorlog  关闭错误日志文件重新开始错误记录sp_datatype_info  返回当前环境支持的数据类型信息sp_dbfixedrolepermission  显示每一个固定数据库角色的许可sp_dboption   显示或修改数据库选项sp_dbremove   删除数据库和与该数据库相关的所有文件sp_defaultdb    设置登录帐户的默认数据库sp_defaultlanguage    设置登录帐户的默认语言sp_delete_alert   删除警报sp_delete_backuphistory   删除备份和恢复的历史信息sp_delete_category   删除指定类型的作业、警报和操作员sp_delete_job  删除一个作业sp_delete_jobschedule   删除作业的调度sp_delete_jobserver   删除指定的目标服务器sp_delete_jobstep   从作业中删除指定的作业步骤sp_delete_notfication   删除发送给某个操作员的所有通知sp_delete_operator   删除操作员sp_delete_targetserver   从可以使用的目标服务器列表中删除指定的服务器sp_delete_targetservergroup   删除指定的目标服务器组sp_delete_targetsvrgrp_member   从目标服务器组中删除一个目标服务器sp_deletemergeconflictrow   删除冲突表中的记录行sp_denylogin  防止window用户或群组连接到 sql serversp_describe_cursor  报告服务器游标的属性sp_describe_cursor_columns   报告在服务器游标的结果集中列的属性sp_describe_cursor_tables  报告服务器游标参考的基表信息sp_detach_db  分享服务器中的数据库sp_drop_agentparameger  删除配置文件中的一个或者多个参数sp_drop_profile  删除配置文件sp_dropalias  删除一个帐户的别名sp_dropapprole  删除当前数据库中的应用程序角色sp_droparticle  从出版物中删除一篇文章sp_dropdevice  删除数据库或者备份设备sp_dropdistpublisher  删除出版服务器sp_dropdistributiondb   删除分布数据库sp_dropdistributor   删除分布服务器sp_dropdropextendedproc  删除一个扩展存储过程sp_dropgroup  从当前数据库中删除角色sp_droplinkedsrvlogin  删除一个本地服务器和连接服务器的映射帐户sp_droplogin   删除一个登录帐户sp_dropmergearticle  从合并出版物中删除一篇文章sp_dropmergefilter  删除一个合并过滤器sp_dropmergepublication   删除一个合并出版物和与其相关的快照复制sp_dropmergepullsubscription  删除一个合并拉回订购物sp_dropmergesubscription  删除一个订阅物sp_dropmessage  删除一个消息sp_droppublication  删除出版物和与其相关的文章sp_droppullsubscription  删除当前订阅服务器数据库中的订阅物sp_dropremotelogin  删除一个远程登录帐户sp_droprole  从当前数据库中删除一个角色sp_droprolemember  从当前数据库中的一个角色中删除一个安全性帐户sp_dropserver  删除一个远程或者连接服务器列表中的服务器sp_dropsrvrolemember  从一个固定的服务器角色中删除一个帐户sp_dropsubscriber  删除一个订阅服务器sp_dropsubscription  删除订阅物sp_droptype   删除一种用户定义的数据类型sp_dropuser   从当前数据库中删除一个用户sp_dropdropwebtask  删除以前版本定义的web任务sp_dsninfo  从一个与当前服务器相关的分布服务器返回ODBC和OLE DB数据源的信息sp_dumpparamcmd  返回存储在分布数据库中的参数化命令的详细信息sp_enumcodepages   返回一个字符集和代码页的列表sp_enumcustomresovers  返回所有可用的定制解决方案表表sp_enumdsn  返回所有可用的odbc和ole db数据源列表sp_enumfullsubscribers  返回订阅服务器的列表sp_expired_subscription_cleanup  周期性地检查订阅物的状态是否失效sp_fkeys  返回当前环境的外键信息sp_foreignkeys  返回参照连接服务器的表的主键的外键sp_fulltext_catalog  创建和删除全文本目录sp_fulltext_column   指定某一个列是否参加全文本索引sp_fulltext_database   从当前数据库中初始化全文本索引sp_fulltext_service  改变Microsoft Search Service属性sp_fulltext_table    标记用于全文本索引的表sp_generatefilters    在外键表上创建一个过滤器sp_get_distributor    确定一个分布服务器是否安装在某个服务器上sp_getbindtoken    创建一个绑定的连接文本sp_getmergedeletype    返回合并删除的类型sp_grant_publication_access   在出版物的访问列表中增加一个用户sp_grantdbaccess   在当前数据库中增加一个安全性帐户sp_grantlogin   允许Windows用户或群组连接到 SQL Serversp_help_agent_default  检索作为参数传送的代理类型的默认配置的标识号sp_help_agent_parameter    返回代理配置的所有参数sp_help_agent_profile   返回指定代理的配置sp_help_alert  报告有关警报的信息sp_help_category   提供有关作业、警报、操作员的指定种类的信息sp_help_downloadlist   列出有关作业的信息sp_help_fulltext_catalogs   返回有关全文本索引表的信息sp_help_fulltext_columns   返回标记全文本索引的列信息sp_help_fulltext_columns_cursor   使用游标检索标记为全文本的索引列sp_help_fulltext_tables   返回标记为全文本索引的表sp_help_fulltext_tables_cursor   使用游标返回标记为全文本索引的表sp_help_job   返回有关作业的信息sp_help_jobhistory   提供有关作业的历史信息sp_help_jobschedule   返回作业的调度信息sp_help_jobserver   返回给定作业的服务器信息sp_help_jobstep   返回作业的步骤信息sp_help_operator    返回有关操作员的信息sp_help_publication_access  返回可以访问指定出版物的帐户列表sp_help_targetserver   列出全部目标服务器sp_help_targetservergroup    列出指定服务器组中的全部目标服务器sp_helparticle  显示有关文章的信息sp_helpconstraint  返回有关约束的类型、名称等信息sp_helpdbfixedrole   返回固定的服务器角色的列表sp_helpdevice    返回有关数据库文件的信息sp_helpdistpublisher   返回充当分布服务器的出版服务器的属性sp_helpdistributiondb   返回分布数据库的属性信息sp_helpdistributor   列出分布服务器、分布数据库、工作目录等信息sp_helpextendproc  显示当前定义的扩展存储过程信息sp_helpfile   返回与当前数据库相关的物理文件信息sp_helpfilegroup  返回与当前数据库相关的文件组信息sp_helpgroup  返回当前数据库中的角色信息sp_helpindex   返回有关表的索引信息sp_helplanguage  返回有关语言的信息sp_helplinkedsrvlogin  返回链接服务器中映射的帐户信息sp_helplogins  返回有关login和与其相关的数据库用户信息sp_helpmergearticle  返回有关合并文章的信息sp_helpmergearticleconflicts  返回有关冲突的出版物中的文章信息sp_helpmergeconflictrows  返回在指定冲突表中的行sp_helpmergefilter  返回有关合并过滤器的信息sp_helpmergepublication  返回有关合并出版物的信息sp_helpmergepullsubscription  返回有关拉回订阅物的信息sp_helpmergesubscription    返回有关推出订阅物的信息sp_help_notification    报告对于给定操作员的警报信息sp_helppublication   返回有关出版物的信息sp_helprole  返回当前数据库中的角色信息sp_helprolemember  返回当前数据库中角色成员的信息sp_helprotect    返回有关用户许可的信息sp_helpserver    显示特定远程或者复制服务器的信息sp_helpsort    显示系统的排列顺序和字符集的信息sp_helpsrvrole    显示系统中的固定服务器角色列表sp_helpsrvrolemember   显示系统中的固定服务器角色成员的信息sp_helpsubscrberinfo  显示有关订阅服务器的信息sp_helpsubscription  显示有特定出版物等有关的订阅物信息sp_helpsubscription_properties  检索安全性信息sp_helptrigger  显示触发器的类型sp_helpuser  显示当前数据库中的用户、Windows NT用户和组、角色等信息sp_indexoption  为用户定义的索引设置选项sp_link_publication  设置立即修改订阅服务器的同步化触发器使用的配置和安全性信息sp_linkedservers  返回在本地服务器上定义的链接服务器的列表sp_makewebtask  创建一个执行html文档的任务sp_manage_jobs_by_login  删除或者重新指定属于login的作业sp_mergedummyupdate  制作用于合并复制的修改备份sp_mergesubscription_cleanup  删除元数据sp_monitor  显示系统的统计信息sp_msx_defect  从多个服务器操作中删除当前服务器sp_msx_enlist   增加当前服务器到可用的目标服务器列表中sp_pkeys  返回某个表的主键信息sp_post_msx_operation  插入一些目标服务器可以执行的信息sp_primarykeys   返回主键列的信息sp_processmail   使用扩展存储过程修改邮件信息sp_procoption   设置或者显示过程选项sp_publication_validation   初始化文章校验请求sp_purge_jobhistory   删除作业的历史记录sp_recompile   使存储过程和触发器在下一次运行时重新编译sp_refreshsubscriptions  在拉回出版物中增加订阅物到文章中sp_refreshview  刷新指定视图的元数据sp_reinitmergepullsubscription   标记一个合并拉回订阅sp_reiniteergesubscription   标记一个合并订阅sp_reinitpullsubscription   标记一个事务订阅或者匿名订阅sp_reinitsubscription   重新初始化订阅sp_remoteoption   显示或者修改远程登录帐户的选项sp_remove_job_from_targets  从给定的目标服务器中删除指定的作业sp_removedbreplication   从数据库中删除所有的复制对象sp_replcounters  返回复制的统计信息sp_repldone  修改服务器做的分布事务的统计信息sp_replflush  处理文章的高速缓冲存储区sp_replication_agent_checkup  检查每一个分布数据库sp_replicationdboption   在当前数据库中设置复制数据库的选项sp_replsetoriginator   用于在事务复制中检测循环登录sp_replshowcmds  返回标记复制的事务命令sp_repltrans   返回在出版数据库事务日志中的所有事务的结果集sp_resetstatus   重新设置异常数据库的形态sp_resync_targetserver  重新同步所有的多服务器作业sp_revoke_publication_access   从出版数据库的访问列表中删除login帐户sp_revokedbaccess   从当前数据库中删除安全性帐户sp_revokelogin   删除系统的login帐户sp_script_synctran_commands   生成一个可以用于立即修改订阅物的脚本*/

数据库存储过程有哪些,面试题

6. 数据库面试常问问题有哪些?

1、什么是数据库事务
数据库事务是构成单一逻辑工作单元的操作集合。数据库事务可以包括一个或多个数据库操作,但是这些操作构成一个逻辑上的整体。
2、数据库事务的四个特性(ACID)
A:原子性,事务中的所有操作作为一个整体不可分割,要么全部操作要么全部不操作。
C:一致性,事务的执行结果必须使数据库从一个一致性状态转为另一个一致性状态。一致性状态:1.系统状态满足数据库的完整性约束,2.系统的状态反映数据库所描述的现实世界的真实状态。
I:隔离性:并发执行的事务不会相互影响,其对数据库的影响和他们串行执行时一样。
D:持久性:事务一旦提交,对数据库的影响就是持久的。任何事务或系统故障都不会导致数据丢失。
3、什么是数据库连接泄露
数据库连接泄露指的是如果在某次使用或者某段程序中没有正确地关闭Connection、Statement和ResultSet资源,那么每次执行都会留下一些没有关闭的连接,这些连接失去了引用而不能得到重新使用,因此就造成了数据库连接的泄漏。数据库连接的资源是宝贵而且是有限的,如果在某段使用频率很高的代码中出现这种泄漏,那么数据库连接资源将被耗尽,影响系统的正常运转。

4、聚集索引
数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。
5、主键与外键
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

7. 数据库经典笔试题和面试题答案

如下这些有关数据库知识考查的经典笔试题,非常全面,对计算机专业毕业生参加笔试会很有帮助,建议大家收藏。
    一、选择题
 
    1. 下面叙述正确的是___c___。
 
    A、算法的执行效率与数据的存储结构无关
 
    B、算法的空间复杂度是指算法程序中指令(或语句)的条数
 
    C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
 
    D、以上三种描述都不对
 
    2. 以下数据结构中不属于线性数据结构的是___c___。
 
    A、队列B、线性表C、二叉树D、栈
 
    3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方
 
    A、8 B、16 C、32 D、15
 
    4. 下面描述中,符合结构化程序设计风格的是___a___。
 
    A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
 
    B、模块只有一个入口,可以有多个出口
 
    C、注重提高程序的执行效率 D、不使用goto语句
 
    5. 下面概念中,不属于面向对象方法的是___d___。
 
    A、对象 B、继承 C、类 D、过程调用
 
    6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。
 
    A、可行性分析 B、需求分析 C、详细设计 D、程序编码
 
    7. 在软件开发中,下面任务不属于设计阶段的是__d____。
 
    A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型
 
    8. 数据库系统的核心是___b___。
 
    A、数据模型 B、数据库管理系统 C、软件工具 D、数据库
 
    9. 下列叙述中正确的是__c____。
 
    A、数据库是一个独立的系统,不需要操作系统的支持
 
    B、数据库设计是指设计数据库管理系统
 
    C、数据库技术的根本目标是要解决数据共享的问题
 
    D、数据库系统中,数据的物理结构必须与逻辑结构一致
 
    10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。
 
    A、内模式 B、外模式 C、概念模式 D、逻辑模式
 
    11. Visual FoxPro数据库文件是___d___。
 
    A、存放用户数据的文件 B、管理数据库对象的系统文件
 
    C、存放用户数据和系统的文件 D、前三种说法都对
 
    12. SQL语句中修改表结构的命令是___c___。
 
    A、MODIFY TABLE B、MODIFY STRUCTURE
 
    C、ALTER TABLE D、ALTER STRUCTURE
 
    13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是__b____。
 
    A、部门+性别+基本工资 B、部门+性别+STR(基本工资)
 
    C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资)
 
    14. 把一个项目编译成一个应用程序时,下面的叙述正确的是___a___。
 
    A、所有的项目文件将组合为一个单一的应用程序文件
 
    B、所有项目的包含文件将组合为一个单一的应用程序文件
 
    C、所有项目排除的文件将组合为一个单一的应用程序文件
 
    D、由用户选定的项目文件将组合为一个单一的应用程序文件
 
    15. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是_a___。
 
    A、DBS包括DB和DBMS B、DBMS包括DB和DBS
 
    C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
 
    16. 在"选项"对话框的"文件位置"选项卡中可以设置___b___。
 
    A、表单的默认大小 B、默认目录
 
    C、日期和时间的显示格式 D、程序代码的颜色
 
    17. 要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_a_。
 
    A、是同一个数据库中的两个表 B、不同数据库中的两个表
 
    C、两个自由表 D、一个是数据库表另一个是自由表
 
    18. 定位第一条记录上的命令是___a___。
 
    A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
 
    19. 在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__b____。
 
    A、候选键 B、主键 C、外键 D、超键
 
    20. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是___a___。
 
    A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
 
    21. 下列表达式中结果不是日期型的是___c___。
 
    A、CTOD("2000/10/01") B、{^99/10/01}+365
 
    C、VAL("2000/10/01") D、DATE()
 
    22. 只有满足联接条件的记录才包含在查询结果中,这种联接为___c___。
 
    A、左联接 B、右联接 C、内部联接 D、完全联接
 
    23. 索引字段值不唯一,应该选择的索引类型为___b___。
 
    A、主索引 B、普通索引 C、候选索引 D、唯一索引
 
    24. 执行SELECT 0选择工作区的结果是___b___。
 
    A、选择了0号工作区 B、选择了空闲的最小号工作区
 
    C、关闭选择的工作区 D、选择已打开的工作区
 
    25. 从数据库中删除表的命令是___a___。
 
    A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
 
    26. DELETE FROM S WHERE 年龄>60语句的功能是__b____。
 
    A、从S表中彻底删除年龄大于60岁的记录
 
    B、S表中年龄大于60岁的记录被加上删除标记
 
    C、删除S表 D、删除S表的年龄列       1    2

数据库经典笔试题和面试题答案

8. 数据库面试常问问题有哪些?

1、什么是数据库事务
数据库事务是构成单一逻辑工作单元的操作集合。数据库事务可以包括一个或多个数据库操作,但是这些操作构成一个逻辑上的整体。
2、数据库事务的四个特性(ACID)
A:原子性,事务中的所有操作作为一个整体不可分割,要么全部操作要么全部不操作。
C:一致性,事务的执行结果必须使数据库从一个一致性状态转为另一个一致性状态。一致性状态:1.系统状态满足数据库的完整性约束,2.系统的状态反映数据库所描述的现实世界的真实状态。
I:隔离性:并发执行的事务不会相互影响,其对数据库的影响和他们串行执行时一样。
D:持久性:事务一旦提交,对数据库的影响就是持久的。任何事务或系统故障都不会导致数据丢失。
3、什么是数据库连接泄露
数据库连接泄露指的是如果在某次使用或者某段程序中没有正确地关闭Connection、Statement和ResultSet资源,那么每次执行都会留下一些没有关闭的连接,这些连接失去了引用而不能得到重新使用,因此就造成了数据库连接的泄漏。数据库连接的资源是宝贵而且是有限的,如果在某段使用频率很高的代码中出现这种泄漏,那么数据库连接资源将被耗尽,影响系统的正常运转。

4、聚集索引
数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。
5、主键与外键
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。