Oracle SQLµÄÓÅ»¯
SQLµÄÓÅ»¯Ó¦¸Ã´Ó
5
¸ö·½Ãæ½øÐе÷Õû£º
1.È¥µô²»±ØÒªµÄ´óÐͱíµÄÈ«±íɨÃè
2.»º´æÐ¡ÐͱíµÄÈ«±íɨÃè
3.¼ìÑéÓÅ»¯Ë÷ÒýµÄʹÓÃ
4.¼ìÑéÓÅ»¯µÄÁ¬½Ó¼¼Êõ
5.¾¡¿ÉÄܼõÉÙÖ´Ðмƻ®µÄ
Cost
SQLÓï¾ä£º
ÊǶÔÊý¾Ý¿â(
Êý¾Ý
)
½øÐвÙ×÷µÄΩһ;¾¶£»
ÏûºÄÁË70%~90%
µÄÊý¾Ý¿â×ÊÔ´£»¶ÀÁ¢ÓÚ³ÌÐòÉè¼ÆÂß¼£¬Ïà¶ÔÓÚ¶Ô³ÌÐòÔ´´úÂëµÄÓÅ»¯£¬¶Ô
SQL
Óï¾äµÄÓÅ»¯ÔÚʱ¼ä³É±¾ºÍ·çÏÕÉϵĴú¼Û¶¼ºÜµÍ£»
¿ÉÒÔÓв»Í¬µÄд·¨£»Ò×ѧ£¬ÄѾ«Í¨¡£
SQLÓÅ»¯£º
¹Ì¶¨µÄSQL
Êéдϰ¹ß£¬ÏàͬµÄ²éѯ¾¡Á¿±£³ÖÏàͬ£¬´æ´¢¹ý³ÌµÄЧÂʽϸߡ£
Ó¦¸Ã±àдÓëÆä¸ñʽһÖµÄÓï¾ä£¬°üÀ¨×ÖĸµÄ´óСд¡¢±êµã·ûºÅ¡¢»»ÐеÄλÖõȶ¼ÒªÒ»ÖÂ
ORACLEÓÅ»¯Æ÷£º
ÔÚÈκοÉÄܵÄʱºò¶¼»á¶Ô±í´ïʽ½øÐÐÆÀ¹À£¬²¢ÇÒ°ÑÌØ¶¨µÄÓï·¨½á¹¹×ª»»³ÉµÈ¼ÛµÄ½á¹¹£¬Õâô×öµÄÔÒòÊÇ
Ҫô½á¹û±í´ïʽÄܹ»±ÈÔ´±í´ïʽ¾ßÓиü¿ìµÄËÙ¶È
ҪôԴ±í´ïʽֻÊǽá¹û±í´ïʽµÄÒ»¸öµÈ¼ÛÓïÒå½á¹¹
²»Í¬µÄSQL
½á¹¹ÓÐʱ¾ßÓÐͬÑùµÄ²Ù×÷£¨ÀýÈ磺
= ANY (subquery) and IN (subquery)
£©£¬
ORACLE
»á°ÑËûÃÇÓ³Éäµ½Ò»¸öµ¥Ò»µÄÓïÒå½á¹¹¡£
1 ³£Á¿ÓÅ»¯£º
³£Á¿µÄ¼ÆËãÊÇÔÚÓï¾ä±»ÓÅ»¯Ê±Ò»´ÎÐÔÍê³É£¬¶ø²»ÊÇÔÚÿ´ÎÖ´ÐÐʱ¡£ÏÂÃæÊǼìË÷ÔÂн´óÓÚ2000
µÄµÄ±í´ïʽ£º
sal > 24000/12
sal > 2000
sal*12 > 24000
Èç¹ûSQL
Óï¾ä°üÀ¨µÚÒ»ÖÖÇé¿ö£¬ÓÅ»¯Æ÷»á¼òµ¥µØ°ÑËüת±ä³ÉµÚ¶þÖÖ¡£
ÓÅ»¯Æ÷²»»á¼ò»¯¿çÔ½±È½Ï·ûµÄ±í´ïʽ£¬ÀýÈçµÚÈýÌõÓï¾ä£¬¼øÓÚ´Ë£¬Ó¦¾¡Á¿Ð´Óó£Á¿¸ú×ֶαȽϼìË÷µÄ±í´ïʽ£¬¶ø²»Òª½«×Ö¶ÎÖÃÓÚ±í´ïʽµ±ÖС£·ñÔòûÓа취ÓÅ»¯£¬±ÈÈçÈç¹ûsal
ÉÏÓÐË÷Òý£¬µÚÒ»ºÍµÚ¶þ¾Í¿ÉÒÔʹÓ㬵ÚÈý¾ÍÄÑÒÔʹÓá£
2 ²Ù×÷·ûÓÅ»¯£º
ÓÅ»¯Æ÷°ÑʹÓÃLIKE
²Ù×÷·ûºÍÒ»¸öûÓÐͨÅä·ûµÄ±í´ïʽ×é³ÉµÄ¼ìË÷±í´ïʽת»»ÎªÒ»¸ö
“
=
”
²Ù×÷·û±í´ïʽ¡£
ÀýÈ磺ÓÅ»¯Æ÷»á°Ñ±í´ïʽename LIKE 'SMITH'
ת»»Îª
ename = 'SMITH'
ÓÅ»¯Æ÷Ö»ÄÜת»»Éæ¼°µ½¿É±ä³¤Êý¾ÝÀàÐ͵ıí´ïʽ£¬Ç°Ò»¸öÀý×ÓÖУ¬Èç¹ûENAME
×ֶεÄÀàÐÍÊÇ
CHAR(10)
£¬ ÄÇôÓÅ»¯Æ÷½«²»×öÈκÎת»»¡£
Ò»°ãÀ´½²LIKE
±È½ÏÄÑÒÔÓÅ»¯¡£
ÆäÖУº
~~
IN ²Ù×÷·ûÓÅ»¯£º
ÓÅ»¯Æ÷°ÑʹÓÃIN
±È½Ï·ûµÄ¼ìË÷±í´ïÊ½Ìæ»»ÎªµÈ¼ÛµÄʹÓÃ
“
=
”
ºÍ
“
OR
”
²Ù×÷·ûµÄ¼ìË÷±í´ïʽ¡£
ÀýÈ磬ÓÅ»¯Æ÷»á°Ñ±í´ïʽename IN ('SMITH
Ïà¹ØÎĵµ£º
¼ÙÉèÓÐÕÅ±í£¬½Ðtable1£¬ÀïÃæÓÐ5000ÍòÐÐÊý¾Ý£¬¼ÙÉèÔ¤¼ÆÈ«±íɨÃè1´ÎÐèÒª1¸öСʱ£¬ÎÒÃÇ´Ó¹ý³ÌÀ´¿´£º
1¡¢ÔÚ1µãÖÓ£¬ÓиöÓû§A·¢³öÁËselect * from table1;´Ëʱ²»¹Ü½«À´table1Ôõô±ä»¯£¬ÕýÈ·µÄ½á¹ûÓ¦¸ÃÊÇÓû§A»á¿´µ½ÔÚ1µãÖÓÕâ¸öʱ¿ÌµÄÄÚÈÝ¡£Õâ¸öÊÇûÓÐÒÉÎʵġ£
2¡¢ÔÚ1µã30·Ö£¬ÓиöÓû§BÖ´ÐÐÁËupdateÃüÁ¸üÐÂÁËtable1±íÖеĵ ......
OracleÌṩµÄÐòºÅº¯Êý:
ÒÔemp±íΪÀý:
1: rownum ×î¼òµ¥µÄÐòºÅ µ«ÊÇÔÚorder by֮ǰ¾ÍÈ·¶¨Öµ.
select rownum,t.* from emp t order by ename
ÐÐÊý
ROWNUM
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
1
11
7876
ADAMS
CLERK
7788
1987-5-23
1100
¡¡
20
2
2
7499
ALLEN
SALESMAN
7698
......
Äãд¹ýÒ»ÌõsqlÓï¾äÀ´ÐÞ¸ÄÁ½¸ö±íµÄÊý¾ÝÂð£¿
UPDATE test.table1 t1,test.table2 t2 SET t1.aa='a',t1.bb='b',t2.cc='c',WHERE t1.u_id=t2.u_id AND t1.u_id='1' £»
table1µÄu_idºÍtable2µÄu_idÊÇÖ÷Íâ¼ü¹ØÏµ ......
Tree±íÈçÏÂ:
NodeId ParentId NodeName
0 -1 &nb ......
Ó¦Ò»¸öÅóÓѵÄÒªÇó£¬ÌùÉÏÊղصÄSQL³£Ó÷ÖÒ³µÄ°ì·¨¡«¡«
±íÖÐÖ÷¼ü±ØÐëΪ±êʶÁУ¬[ID] int IDENTITY (1,1)
1.·ÖÒ³·½°¸Ò»£º(ÀûÓÃNot InºÍSELECT TOP·ÖÒ³)
Óï¾äÐÎʽ£º
SELECT TOP Ò³¼Ç¼ÊýÁ¿ *
from ±íÃû
WHERE (ID NOT IN
(SELECT TOP (ÿҳÐÐÊý*(Ò³Êý-1)) ID
from ±íÃû
ORDER BY ......