没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
SQL
面试题(
1
)
create table testtable1
(
id int IDENTITY,
department varchar(12)
)
select * from testtable1
insert into testtable1 values('设计')
insert into testtable1 values('市场')
insert into testtable1 values('售后')
/*
结果
id department
1 设计
2 市场
3 售后
*/
create table testtable2
(
id int IDENTITY,
dptID int,
name varchar(12)
)
insert into testtable2 values(1,'张三')
insert into testtable2 values(1,'李四')
insert into testtable2 values(2,'王五')
insert into testtable2 values(3,'彭六')
insert into testtable2 values(4,'陈七')
/*
用一条 SQL 语句,怎么显示如下结果
id dptID department name
1 1 设计 张三
2 1 设计 李四
3 2 市场 王五
4 3 售后 彭六
5 4 黑人 陈七
*/
答案:
SELECT testtable2.* , ISNULL(department,'黑人')
FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID
也做出来了可比这方法稍复杂。
sql
面试题(
2
)
有表 A,结构如下:
A: p_ID p_Num s_id
1 10 01
1 12 02
2 8 01
3 11 01
3 8 03
其中:p_ID 为产品 ID,p_Num 为产品库存量,s_id 为仓库 ID。请用 SQL 语句
实现将上表中的数据合并,合并后的数据为:
p_ID s1_id s2_id s3_id
1 10 12 0
2 8 0 0
3 11 0 8
其中:s1_id 为仓库1的库存量,s2_id 为仓库2的库存量,s3_id 为仓库3的库存
量。如果该产品在某仓库中无库存量,那么就是0代替。
结果:
select p_id ,
sum(case when s_id=1 then p_num else 0 end) as s1_id
,sum(case when s_id=2 then p_num else 0 end) as s2_id
,sum(case when s_id=3 then p_num else 0 end) as s3_id
from myPro group by p_id
SQL 面试题(3)
1.触发器的作用?
答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可
以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允
许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个
表的数据操作,而该操作又会导致该表触发器被触发。
2
。什么是存储过程?用什么来调用?
答:存储过程是一个预编译的
SQL
语句,优点是允许模块化的设计,就是说只
需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次
SQL
,
使用存储过程比单纯
SQL
语句执行要快。可以用一个命令对象来调用存储过程。
3
。索引的作用?和它的优点缺点是什么?
答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。
它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数
据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢
了数据录入的速度,同时也增加了数据库的尺寸大小。
3
。什么是内存泄漏?
答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分
配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字
new
等创
建对象时,就从堆中为它分配一块内存,使用完后程序调用
free
或者
delete
释放
该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。
4
。维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什
么?
答:我是这样做的,尽可能使用约束,如
check,
主键,外键,非空字段等来约
束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论
什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写
业务逻辑,但这样做麻烦,编程复杂,效率低下。
5
。什么是事务?什么是锁?
答:事务就是被绑定在一起作为一个逻辑工作单元的
SQL
语句分组,如果任何
一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或
者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组
语句作为事务考虑,就需要通过
ACID
测试,即原子性,一致性,隔离性和持久
性。
锁:在所以的
DBMS
中,锁是实现事务的关键,锁可以保证事务的完整性和
并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能
使用某些数据或数据结构。当然锁还分级别的。
6
。什么叫视图?游标是什么?
答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,
查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影
响基本表。它使得我们获取数据更容易,相比多表查询。
游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该
单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修
改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
7
。为管理业务培训信息,建立
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 s# ,sn from s where S# in(select S# from c,sc where
c.c#=sc.c# and cn=
’税收基础’
)
(2)
使用标准
SQL
嵌套语句查询选修课程编号为’
C2
’的学员姓名和
所属单位
?
答:
select sn,sd from s,sc where s.s#=sc.s# and sc.c#=
’
c2
’
(3)
使用标准
SQL
嵌套语句查询不选修课程编号为’
C5
’的学员姓名
和所属单位
?
答:
select sn,sd from s where s# not in(select s# from sc where c#=
’
c5
’
)
(4)
查询选修了课程的学员人数
答:
select
学员人数
=count(distinct s#) from sc
(5)
查询选修课程超过
5
门的学员学号和所属单位
?
答:
select sn,sd from s where s# in(select s# from sc group by s# having
count(distinct c#)>5)
SQL 面试题(4)
1.
查询
A(ID,Name)
表中第
31
至
40
条记录,
ID
作为主键可能是不是连续增长的列,
完整的查询语句如下:
select top 10 * from A where ID >(select max(ID) from (select top 30 ID from A
order by A ) T) order by A
2.
查询表
A
中存在
ID
重复三次以上的记录
,
完整的查询语句如下:
select * from(select count(ID) as count from table group by ID)T where
T.count>3
SQL 面试题(5)
在面试应聘的
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有什么不同类型的触发器?
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益
的。
剩余64页未读,继续阅读
资源评论
小正太浩二
- 粉丝: 184
- 资源: 5908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Qt开发知识、经验总结 包括Qss,数据库,Excel,Model/View等
- IV数据.xlsx
- 一些深度学习中的小例子,适合新手学习使用
- foldcraftlauncher_262944.apk
- 珍藏多年的基于matlab实现潮流计算程序源代码集合,包含多个潮流计算程序.rar
- 使用FPGA实现串-并型乘法器
- 基于matlab实现针对基于双曲线定位的DV-Hop算法中误差误差出一种基于加权双曲线定位的DV-Hop改进算法.rar
- 基于matlab实现由遗传算法开发的整数规划,车辆调度问题.rar
- 电视家7.0(对电视配置要求高).apk
- 免费计算机毕业设计-基于JavaEE的医院病历管理系统设计与实现(包含论文+源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功