易截截图软件、单文件、免安装、纯绿色、仅160KB

一个SQL面试题

 题目要求
阿里baba的面试题
有三个表
    学生表  S 
          SID  SNAME
  教师课表 T 
          TID  TNAME  TCL
  成绩表  SC   
            SID  TCL  SCR
各字段的含义不用我标明了吧,大侠哥哥么!呵呵
现在要求写SQL查询
    1、选修了A、B课程,并且A课程的成绩大于B成绩的学生姓名?
    2、没有选修‘li’老师的课程的学生,要求不能用in,exists 等词?
create table SC(
SID varchar(64) ,
TCL varchar(64) ,
SCR int) ;
create table S (
SID varchar(64) ,
SNAME varchar(64)
) ;
create table T
(
  TID varchar(64),
  TNAME varchar(64),
  TCL varchar(64)
) ;
insert into S VALUES ('1','11') ;
insert into S VALUES ('2','22') ;
insert into S VALUES ('3','33') ;
insert into S VALUES ('4','44') ;
insert into SC VALUES ('1','a',100) ;
insert into SC VALUES ('1','b',90) ;
insert into SC VALUES ('2','a',77) ;
insert into SC VALUES ('3','b',34) ;
insert into SC VALUES ('4','a',59) ;
insert into SC VALUES ('4','b',88) ;
insert into T VALUES ('5','li','a');
第一个问题的答案
select
  s.sname,sc1.scr,sc2.scr
from
  s,sc sc1,sc sc2 
where s.sid=sc1.sid
    and s.sid=sc2.sid
    and sc1.tcl='a'
    and sc2.tcl='b'
    and sc1.scr>sc2.scr
   
    运行结果:
   11 ,100 , 90
   
  第二题的答案
 
  select sid from
(select s.sid,a.tcl from (select sc.sid,sc.tcl  from sc,t where sc.tcl=t.tcl and t.tname='li' ) a
right join s
  on a.sid=s.sid ) b
where  b.tcl is null
运行结果

   


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

SQL 优化经验总结34条

(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE 的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersectio ......

sql 修改表以及表字段

 
用SQL语句添加删除修改字段
1.增加字段
     alter table docdsp    add dspcode char(200)
     alter table tbl add meet_group int2
2.删除字段
     ALTER TABLE table_NAME DROP COLUMN column_NAME
3.修改字段类型
&nbs ......

预防SQL注入攻击之我见

1、 SQL注入攻击的本质:让客户端传递过去的字符串变成SQL语句,而且能够被执行。
2、 每个程序员都必须肩负起防止SQL注入攻击的责任。
  说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。当不知道注入原理的时候会觉得很神奇,怎么就被注入了呢? ......

SQL语句效率

 1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。
调整不良SQL通常可以从以下几点切入:
检查不良的SQL,考虑其写法是否还有可优化内容
检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写
检查优化 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号