
SQL: 从表a中选择a.title,a.username,b.adddate,(从表中选择max(adddate)adddate,其中table.title = a.title)b
9. 说明: 外部连接查询(表名1: 表名2: b)
SQL: 从a.a = b.c的左外部联接b中选择a.a,a.bsql语句面试常见问题,a.c,b.c,b.d,b.f
ORACLE: 从a,b中选择a.a,a.b,a.c,b.c,b.d,b.f
其中a.a = b.c(+)
10. 说明: 比计划提醒提前五分钟
SQL: 从日程表中选择*,其中datediff('minute',f start timesql语句面试常见问题,getdate())> 5
11. 说明: 两个相关表,删除主表中辅助表中尚未存在的信息
SQL:
从不存在的信息中删除(从infobz的info.infid = infobz.infid选择*)
*************************************************** ************************************
12. 有两个表A和B,都具有键和值字段. 如果B的键也位于A中,则将B的值替换为A中的相应值
如何为该问题编写SQL语句?
更新b设置b.value =(从a.key = b.key的a中选择a.value)其中b.id in(从b,a的b.key = a.key中选择b.id);
*************************************************** ********************************
13. 高级SQL面试问题
原始表:
课程ID课程名称分数
-------------------------------------
1个Java 70
2个Oracle 90
3 xml 40
4个jsp 30
5个servlet 80
-------------------------------------
为便于阅读,查询该表后的结果如下(及格分数为60):
课程ID课程名称得分标记
--------------------------------------------------- ----
1个Java 70通行证
2 oracle 90 pass
3 xml 40失败
4个jsp 30失败
5 servlet 80通过
--------------------------------------------------- ----
写出该查询语句
从课程中选择课程ID,课程名称,得分,解码(sign(score-60),-1,'失败','通过')作为标记
完全正确
SQL> desc course_v
名称为空?输入
----------------------------------------- ------ -----------------------------
课程编号

COURSENAME VARCHAR2(10)
分数
SQL>从course_v中选择*;
COURSEID COURSENAME得分
---------- ---------- ----------
1个Java 70
2个Oracle 90
3 xml 40
4个jsp 30
5个servlet 80
SQL>从Course_v中选择课程ID,课程名称,得分,解码(sign(score-60),-1,'失败','通过')作为标记;
COURSEID COURSENAME分数
---------- ---------- ---------- ----
1个Java 70通行证
2 oracle 90 pass
3 xml 40失败
4个jsp 30失败
5 servlet 80通过
SQL面试问题(1)
创建表testtable1
(
id int IDENTITY,
部门varchar(12)
)
从testtable1中选择*
插入testtable1值(“设计”)
插入testtable1值(“市场”)
插入testtable1值(“ sales”)
/ *
结果
id部门
1个设计
2市场
3售后
* /
创建表testtable2
(
id int IDENTITY,
dptID int,
名称varchar(12)
)

插入testtable2值(1,'张三')
插入testtable2值(1,'Li Si')
插入testtable2值(2,“ Wang Wu”)
插入testtable2值(3,“ Peng Liu”)
插入testtable2值(4,“陈其”)
/ *
使用SQL语句,如何显示以下结果
id dptID部门名称
1 1设计张三
2 1设计李思
3 2市场之王五
4 3售后刘鹏
5 4 Negro Chen Qi
* /
答案:
SELECT testtable2. *,ISNULL(部门,'Negro')
FROM testtable1右连接testtable2.dptID = testtable1.ID上的testtable2
也做了,它比这种方法复杂一点.
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.
结果:
选择p_id,
sum(s_id = 1时p_num否则0结束的情况)为s1_id
,sum(s_id = 2时p_num否则0结束的情况)为s2_id
,sum(s_id = 3时p_num否则0结束的情况)为s3_id
来自myPro组的p_id
SQL面试问题(3)
1. 触发器的作用是什么?
答案: 触发器是一种特殊的存储过程,主要由事件执行. 它可以强制执行约束以维护数据完整性和一致性,并且可以跟踪中的操作以允许未经授权的更新和更改. 可以级联. 例如,一个表上的触发器包含另一个表上的数据操作,该操作将导致该表触发器被触发.

2. 什么是存储过程?什么叫电话?
答案: 存储过程是一个预编译的SQL语句. 优点是它允许模块化设计,也就是说,只需要创建一次即可,以后可以在程序中多次调用它. 如果一个操作需要执行多个SQL,则使用存储过程比执行简单的SQL语句要快. 您可以使用命令对象来调用存储过程.
3. 索引有什么作用?优点和缺点是什么?
答案: 索引是一个特殊的查找表,搜索引擎可以使用该表来加快数据检索的速度. 它与现实生活中的书籍目录非常相似,您可以查找所需的数据而无需查询整本书. 索引可以是唯一的. 创建索引使您可以指定单列或多列. 缺点是它减慢了数据输入速度,同时也增加了的大小.
3. 什么是内存泄漏?
答案: 一般来说,我们提到的内存泄漏是指堆内存的泄漏. 堆内存由程序从堆中分配,并且大小不限. 使用后,它将显示可用内存. 当应用程序使用关键字new等创建对象时,它会从堆中为其分配一块内存. 使用后,程序将调用free或delete释放内存. 否则,它表明无法使用该内存. 我们说内存泄漏.
4. 为了维护的完整性和一致性,您是喜欢使用触发器还是编写自己的业务逻辑?为什么?
答案: 我这样做. 为此,我尽可能使用约束,例如检查,主键,外键和非空字段. 这是最有效和方便的. 第二个是触发器的使用. 这种方法可以确保无论哪个业务系统访问,都可以确保数据的完整性和一致性. 最后一个考虑因素是自写业务逻辑,但这麻烦,复杂,编程且效率低下.
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嵌套语句查询名称为“ Tax Basic”的选修课的学生ID和名称?
答案: 从s中选择s#,sn(从c,sc中选择S#,其中c.c#= sc.c#和cn =“税基”)
(2)使用标准的SQL嵌套语句查询选修课程号为“ C2”的学生的姓名和单位?
答案: 从s,sc中选择sn,sd,其中s.s#= sc.s#和sc.c#='c2'
(3)使用标准的SQL嵌套语句来查询未选择课程编号“ C5”的学生的姓名和所属单位?
答案: 从s中不选择s#的位置选择sn,sd(从sc此处c#='c5'的位置选择s#)
(4)查询参加课程的学生人数
答案: 从sc中选择学生人数= count(distingt s#)
(5)查询选修课程超过5门的学生的学生编号和所属单位?
答案: 从s中选择sn,sd,其中s#in(从sc组中选择s#的s#具有count(distinct c#)> 5)
SQL面试问题(4)
1. 查询A(ID,Name)表中的第31至40条记录. 作为主键的ID可能是不断增长的列. 完整的查询语句如下:
从A中选择前10位*,其中ID>(从(从A顺序中选择前30个ID,从A中选择T),按A顺序选择)
2. 查询表A中有ID重复超过3次的记录. 完整的查询语句如下:
select * from(从表组中按ID选择count(ID)作为计数)T,其中T.count> 3
SQL面试问题(5)
在采访SQL Server开发人员的候选人时,我使用了一组标准的基准技术问题. 以下问题是我认为可以真正帮助淘汰不合格候选人的问题. 它们按从易到难的顺序排列. 当您问有关主键和外键的问题时,后一个问题非常困难,因为答案可能更难以解释和解释,尤其是在访谈的情况下.
您能简要描述一下SQL Server 2000中使用的一些对象吗?
您想听到的答案包括表,视图,用户定义的函数和存储过程等对象;如果他们还可以提及触发器之类的对象,那就更好了. 如果候选人不能回答这个基本问题,那么这不是一个好兆头.
NULL是什么意思?
在世界中,NULL的值是一件非常困难的事情,所以不要惊讶于许多申请人都会遇到这个问题.
NULL值表示UNKNOWN(未知): 它并不表示“”(空字符串). 假设您的SQL Server中有ANSI_NULLS. 当然默认情况下会有. 该值的任何比较都会产生一个NULL值. 您不能将任何值与UNKNOWN值进行比较,并且在逻辑上需要答案. 您必须使用IS NULL运算符.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-240735-1.html
是人的基本需要
还有那故意让老鼠咬破包长蛆的学生
拿你马去投资