
数据库
crazy_pan
我只是一个简单、专一的人!
展开
-
sql优化原则
1.多where,少having where用来过滤行,having用来过滤组 2.多union all,少union union删除了重复的行,因此花费了一些时间 3.多Exists,少in Exists只检查存在性,性能比in强很多,有些朋友不会用Exists,就举个例子 例,想要得到有电话号码的人的基本信息,table2有冗余信息 select * from table1;--(id,name,age) select * from table2;--(id,phone) in: select * fr转载 2010-09-09 22:24:00 · 445 阅读 · 0 评论 -
sql查询范例2
<br />问题描述:<br />本题用到下面三个关系表:<br />CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级<br />BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 <br />BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期<br />备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。<br />要求实现如下15个处理:<br />转载 2010-09-08 19:10:00 · 632 阅读 · 0 评论 -
sql查询范例1.2
<br />Student(S#,Sname,Sage,Ssex) 学生表 <br />Course(C#,Cname,T#) 课程表 <br />SC(S#,C#,score) 成绩表 <br />Teacher(T#,Tname) 教师表 <br />21、查询不同老师所教不同课程平均分从高到低显示 <br /> SELECTmax(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均转载 2010-09-08 19:08:00 · 560 阅读 · 0 评论 -
sql查询范例1.1
<br />Student(S#,Sname,Sage,Ssex) 学生表 <br />Course(C#,Cname,T#) 课程表 <br />SC(S#,C#,score) 成绩表 <br />Teacher(T#,Tname) 教师表 <br /><br />问题: <br />1、查询“001”课程比“002”课程成绩高的所有学生的学号; <br /> select a.S# from (select s#,score from SC where C#='001') a,(select s#,s转载 2010-09-08 19:05:00 · 425 阅读 · 0 评论 -
有关oracle分页的rownum字段
<br />Oracle的rownum字段是个比较奇怪的字段。拿一张有26条记录的Test表来举例。<br /> select * from Test where rownum >=1;<br /> select * from Test where rownum >=2;<br /> select * from Test where rownum <= 10;<br />第一条sql查出了26条记录,第二条sql一条记录也没查出。第三条sql查出10条记录。<br />导致这个的原转载 2010-09-08 19:13:00 · 586 阅读 · 0 评论 -
oracle decode()
<br />decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) <br />该函数的含义如下: <br />IF 条件=值1 THEN <br /> RETURN(翻译值1) <br />ELSIF 条件=值2 THEN <br /> RETURN(翻译值2) <br /> ...... <br />ELSIF 条件=值n THEN <br /> RETURN(翻译值n) <br /><br />ELSE <br /> RETURN(缺省值) <转载 2010-09-17 12:02:00 · 358 阅读 · 0 评论 -
sql查询范例3
<br />问题描述:<br />为管理岗位业务培训信息,建立3个表:<br />S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄<br />C (C#,CN ) C#,CN 分别代表课程编号、课程名称<br />SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩<br /><br />要求实现如下5个处理:<br /> 1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础转载 2010-09-08 19:11:00 · 624 阅读 · 0 评论 -
Oracle Instr()的特殊用法
NSTR方法的格式为: INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)例如: INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是I转载 2010-09-17 12:03:00 · 681 阅读 · 0 评论 -
oracle数据类型----rownum
rownum是一个比较容易混淆的概念,要正确的理解rownum伪列,首先我们要明白它的工作原理. rownum工作机制: 1 Oracle executes your query. 2 Oracle fetches the first row and calls it row number 1. 3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If ye转载 2010-09-09 22:25:00 · 3724 阅读 · 0 评论 -
对rownum和rowid的理解
<br />(1)rownum<br />关于rownum,可以看成是对已经查询出来的结果加上的一个伪列。<br />在利用rownum进行去数据的时候,系统首先从所给的条件处检索,是查询到不符合rownum条件的记录为止,不符合条件就删除,之后的记录就紧跟上来,所以一般以后的记录就都不会符合条件了。所以,对于rownum(直接利用的话)一般对于>,>=,between...and..一般查询不到什么结果。而对于这些情况,一般可以给rownum伪列取一个别名即可,因为取一个别名时,别名就相当于该表的一个实是转载 2010-09-09 22:28:00 · 726 阅读 · 0 评论 -
sql语句里max函数
oracle数据库表EXAMPLE里有一字段ORDER_NUM,类型为字符型,里面存放数字字符串,共10条记录,分别为,0-10。使用select max(ORDER_NUM) from EXAMPLE,获得结果,9。 解决方法,使用to_number函数先把ORDER_NUM转换成数值型。原创 2012-01-18 14:08:40 · 1521 阅读 · 0 评论