IT口试题.docVIP

  • 9
  • 0
  • 约6.59万字
  • 约 15页
  • 2017-06-04 发布于河南
  • 举报
IT口试题

SQL: Q: 什么是事务?什么是锁? A: 事务:被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。 锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 Q: 假设一个表名为pages,有四个字段,id, url, title, body。里面储存了很多网页,网页的url地址,title和网页的内容,请用一个SQL查询语言将url匹配的排在最前,title匹配的其次,body匹配最后,如果没有任何字段匹配的则不返回结果。 A: 以匹配”baidu”为例: (1)SELECT * FROM page where url like %baidu% or title like %baidu% or like ORDER BY CHARINDEX (baidu, url) DESC, CHARINDEX (baidu, title) DESC, CHARINDEX (baidu, body) DESC (2)用union 实现联合查询,在每个查询语句中定义一个临时变量mark 并给mark赋值,在最后的输出时采用mark来排序。 select a.[id],a.mark from ( select [page].[id],100 as mark from [page] where [page].[url] like %baidu% union select [page].[id],50 as mark from [page] where [page].[title] like %baidu% union select [page].[id],10 as mark from [page] where [page].[body] like %baidu% ) as a order by mark desc Q: 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 设计 市场 售后 */ 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 黑人 陈七 */ A: SELECT testtable2.* , ISNULL(department,黑人) FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID Q: 把表一转换为表二 表一: 表二: A: declare @sql varchar(4000) set @sql = select stdname select @sql = @sql + ,isnull(sum(case stdsubject when +stdsubject+ then Result end),0) [+stdsubject+] from (select distinct stdsubject from #student) as a sel

文档评论(0)

1亿VIP精品文档

相关文档