1、数据库工程师面试题Lyven SQL 数据库开发 5 月 14 日(点击上方蓝色字,可快速关注我们哦)选择题:(每空分共 18 分)1、在 MS SQL Server 中,用来显示数据库信息的系统存储过程是( )A sp_ dbhelpB sp_ dbC sp_ helpD sp_ helpdb2、 SQL 语言中,删除一个表的命令是( )A DELETEB DROPC CLEARD REMORE3、关系数据库中,主键是(_)A、为标识表中唯一的实体B、创建唯一的索引,允许空值C、只允许以表中第一字段建立D、允许有多个主键的4、在 Transact-SQL 语法中,SELECT 语句的完整语法
2、较复杂,但至少包括的部分(1_) ,使用关键字(2_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3_) ,如果在 SELECT 语句中使用聚合函数时,一定在后面使用( 4_) 。 A、SELECT,INTO B、SELECT,FROMC、SELECT,GROUP D、仅 SELECT A、DISTINCT B、UNIONC、ALL C、TOP A、JOIN B、UNIONC、INTO C、LIKE A、GROUP BY B、COMPUTE BYC、HAVING D、COMPUTE5、语句 DBCC SHRINKDATABASE (Sample, 25)中的 25 表示的意思是
3、A、25MB、剩余占整个空间的 25%C、已用空间占整个空间的 25%D、以上都不对6、你是一个保险公司的数据库开发人员,公司的保单信息存储在 SQL Server 2000 数据库中,你使用以下脚本建立了一个名为 Policy 的表:CREATE TABLE Policy(PolicyNumber int NOT NULL DEFAULT (0),InsuredLastName char (30) NOT NULL,InsuredFirstName char (20) NOT NULL,InsuredBirthDate datetime NOT NULL,PolicyDate datetim
4、e NOT NULL,FaceAmount money NOT NULL,CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)每次公司销售出一份保单,Policy 表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?a.建立一个 INSTEAD OF INSERT 触发器来产生一个新的保单号,并将这个保单号插入数据表中。b.建立一个 INSTEAD OF UPDATE 触发器来产生一个新的保单号,并将这个保单号插入数据表中。c.建立一个 AFTER UPDATE 触发器来产生一个新的保单号,并将这个保单号插入数据表中。d.用 AFTER UPDAT
5、E 触发器替代 DEFAULT 约束条件产生一个新的保单号,并将这个保单号插入数据表中。、在 SQL 语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资字段的取值不低于 800 元,最合适的实现方法是:A。在创建工资表时为”工资“字段建立缺省B。在创建工资表时为”工资“字段建立检查约束C。在工资表建立一个触发器D。为工资表数据输入编写一个程序进行控制、Select 语句中用来连接字符串的符号是_.A. “+” B. “&” C.“|” D.“|”、你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:CREATE PROCEDURE ge
6、t_sales_for_titletitle varchar(80), ytd_sales int OUTPUTASSELECT ytd_sales = ytd_salesFROM titlesWHERE title = titleIF ROWCOUNT = 0RETURN(-1)ELSERETURN(0)另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回“No Sales Found”,怎样建立这个脚本?. DECLARE retval intDECLARE ytd intEXEC get_sales_for_title Net E
7、tiquette, ytdIF retval 1drop table zd_ks、(1 )select Class,count(1) as num from student group by Class(2 )select S.Sex,avg(G.Num) as Numfrom student S,Grade Gwhere S.ID=G.ID and S.Class=1group by S.Sex(3 )select S.Class,count(1) as numfrom student S,Grade G,schedule SCwhere S.ID=G.ID and G.SID =Sc.ID
8、 and SC.Name=数据结构 and Sc.Num52. 查询借阅了“水浒“一书的读者,输出姓名及班级-实现代码:SELECT * FROM CARD cWHERE EXISTS(SELECT * FROM BORROW a,BOOKS bWHERE a.BNO=b.BNOAND b.BNAME=N水浒 AND a.CNO=c.CNO)3. 查询过期未还图书,输出借阅者(卡号) 、书号及还书日期-实现代码:SELECT * FROM BORROWWHERE RDATE4. 查询书名包括“网络“关键词的图书,输出书号、书名、作者-实现代码:SELECT BNO,BNAME,AUTHOR FROM BOOKSWHERE BNAME LIKE N%网络%5. 查询现有图书中价格最高的图书,输出书名及作者-实现代码:SELECT BNO,BNAME,AUTHOR FROM BOOKSWHERE PRICE=(SELECT MAX(PRICE) FROM BOOKS)6. 查询当前借了 “计算方法“但没有借“计算方法习题集“ 的读者,输出其借书卡号,并按卡号降序排序输出-实现代码:SELECT a.CNOFROM BORROW a,BOOKS b