¹«Ë¾×éÖ¯SQLˮƽ¿¼ÊÔ£¬¿´ÁËд½Ì²Ä£¬Ð´Á˵ã×ܽᷢÉÏÀ´¸ú´ó¼Ò·ÖÏí¡£
ÎÒ¹«Ë¾Ê¹ÓõÄÊÇSybase ASE12.5£¬ËùÒÔÏÂÃæµÄÒ»Ð©ÌØÐÔÊÇÕë¶ÔSybase ASEµÄ¡£
Ò»£ºSQL Bisic
1£ºSQL(Structured Quary Language)ÌØÐÔ£º
a£º±ê×¼»¯
b£º·Ç¹ý³Ì»¯µÄ
c£º¿ÉÓÅ»¯µÄ
d£ºÃæÏò¼¯ºÏ²Ù×÷µÄ
2£ºASEÖеÄÊý¾ÝÀàÐÍ
a£ºNumberic
b£ºCharacter
c£ºDate/Time
d£ºLobs
3: convert(varchar, textColumn),Èç¹û²»Ö¸¶¨varchar(n)nÄÇôĬÈÏÊÇ30
4£ºwhere ÔÚsqlÖеÄ×÷ÓÃ
a£º¹ýÂËÊý¾Ý
b£º×ö±íÁ¬½Ó(sql92ÒÔǰ)
c£ºÑ¡ÔñË÷Òý
5£ºwhare ºÍ havingµÄÇø±ð
whereÓï¾ä°Ñ¹ýÂ˺õÄÊý¾Ý²åÈëµ½work tableÖÐ
havingÓï¾ä´Ówork tableÖжÔÊý¾Ý½øÐÐÔÚ¹ýÂËÒԵõ½×îºóµÄ½á¹û¡£
6£ºÒ»¸öselectÓï¾äµÄÖ´ÐÐ˳Ðò
a£ºfrom clause
b£ºwhere clause
c£ºgroup by clause
d£ºselect clause
e£ºhaving clause
f£ºorder by clause
7£ºUnion VS Union All
a£ºUnion »á°ÑÁ½¸ö½á¹û¼¯ÅÅÐò£¬²¢ÇÒ³ýÈ¥ÖØ¸´µÄÔªËØ£¨Ð§ÂʲÇáÒײ»ÒªÓã©
b£ºUnion All½ö½öÊǰÑÁ½¸ö½á¹û¼¯ºÏ²¢£¬Ã»ÓÐÅÅÐò£¬Ò²²»È¥³ýÖØ¸´ÔªËØ£¨Ð§Âʺã©
¶þ£ºË÷ÒýºÍ²éѯ²ÎÊý
1£ºASEÖÐÓÐÈýÖÖaccessÊý¾Ý·½Ê½
a£ºclustered Index
b£ºnonclustered Index
c£ºtable scan
......
CASE ¿ÉÄÜÊÇ SQL Öб»ÎóÓÃ×î¶àµÄ¹Ø¼ü×ÖÖ®Ò»¡£ËäÈ»Äã¿ÉÄÜÒÔǰÓùýÕâ¸ö¹Ø¼ü×ÖÀ´´´½¨×ֶΣ¬µ«ÊÇËü»¹¾ßÓиü¶àÓ÷¨¡£ÀýÈ磬Äã¿ÉÒÔÔÚ WHERE
×Ó¾äÖÐʹÓà CASE¡£
Ê×ÏÈÈÃÎÒÃÇ¿´Ò»Ï CASE µÄÓï·¨¡£ÔÚÒ»°ãµÄ SELECT ÖУ¬ÆäÓï·¨ÈçÏ£º
SELECT =
CASE
WHEN THEN
WHEN THEN
ELSE
END
ÔÚÉÏÃæµÄ´úÂëÖÐÐèÒªÓþßÌåµÄ²ÎÊý´úÌæ¼âÀ¨ºÅÖеÄÄÚÈÝ¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£º
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
from titles
ORDER BY price
GO
¶ÔÓÚinformix²»ÄÜÓÃÒÔÉÏÐÎʽ£¬¿ÉÒÔÈçÏ£º
USE pubs
GO
SELECT
Title,
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'  ......
ÎÒ¾³£ÎʵÄÒ»¸öÎÊÌâÊÇ£ºÄãÊÇÈçºÎÀ´À©Õ¹SQL DatabaseµÄ£¿ÓкܶàµÄ·½·¨¿ÉÒÔ×öµ½£¬±ÈÈçʹÓûº´æ£¬¹²Ïí»òÕßÓÃÆäËûµÄ¼¼Êõ½«Ñ¹Á¦´ÓÊý¾Ý¿âÊÍ·Å£¬µ«Êµ¼ÊÉÏÎÒÃÇûÓС£SQL Database´Ó¸ù±¾ÉÏÀ´ËµÊDz»¾ßÓÐÀ©Õ¹ÐԵģ¬ÎÒÃÇҲûÓÐħ·¨Ê¹ËüºöÈ»¾ßÓÐÀ©Õ¹ÐÔ¡£
ʲôÊÇÀ©Õ¹ÐÔ£¿
±ØÐë¾ßÓм¸Ï¼¸µã£º
ºáÏòÀ©Õ¹£º¸ü¶àµÄserver¿ÉÒÔ´øÀ´¸ü¸ßµÄÐÔÄÜ¡£
¶ÔÓ¦ÓóÌÐòµÄ͸Ã÷ÐÔ£ºÀ©Õ¹µÄʵÏÖ¶ÔÓÚÒµÎñÂß¼À´ËµÊÇ͸Ã÷µÄ£¬Âß¼ÉÏÖ»ÓÐÒ»¸öserver·þÎñÓÚÒµÎñ¡£
µ¥µãʧ°Ü²»»áµ¼Ö¹ÊÕÏ£ºµ¥¸öserver»òÕß½ÚµãµÄå´»ú²»»áµ¼ÖÂϵͳµÄʧ°Ü¡£
½ÓÏÂÀ´£¬ÈÃÎÒÃÇ¿´Ò»Ð©¼¼ÊõÈçºÎ“À©Õ¹”SQL DatabaseÒÔ¼°ËûÃÇΪʲôûÓдﵽÒÔÉϼ¸µã¡£
×ÝÏòÀ©Õ¹
Ò»ÖÖ·½·¨È¥À©Õ¹SQL DatabaseÊÇÂò¸ü´óµÄserver»òÕß´æ´¢¡£Õâ´øÀ´µÄÎÊÌâÊÇ£º
ÔËÊä±äµÄ¸´ÔÓ
ÔÀ´µÄ»úÆ÷Âäºó£¬Éý¼¶±äµÄÀË·Ñ×ÊÔ´
Äã²»ÖªµÀµ½µ×ÀàËÆÈÝÁ¿ÕâÑùµÄÎÊÌâ»á±äµÄÓжà´ó
Õâ¸ö²»·ûºÏÀ©Õ¹ÐԵĵÚÒ»Ìõ¡£
·ÖÇø£¬¹²Ïí
¸ù¾ÝÂß¼¶ÔÊý¾Ý½øÐзÖÇø¡£ÕâÖÖ·½·¨Ò²ÊÇ×ÝÏòÀ©Õ¹µÄÒ»ÖÖ·½·¨£¬Ëü½ôÃÜÒÀÀµÓÚÓ¦Óò¢ÇÒÄãÐèÒª×ÐϸµÄÈ¥¼Æ»®ÄãµÄschema¡£
ÕâÖÖ·½·¨¶ÔÓÚ³ÌÐòÀ´ËµÊDz»Í¸Ã÷µÄ£¬±ØÐëºÍÒµÎñ½áºÏÔÚÒ»Æð£¬²»·ûºÏÀ©Õ¹ÐԵĵڶþÌõ¡£¸üÑÏÖØµÄÎÊÌâÊÇ£¬Êý¾Ý¿âÊǹØÏµÊý¾Ý¿â£¬´æ´¢µÄÊý¾ÝÒ²ÊÇ ......
Ò»¡¢×Ö·ûת»»º¯Êý
1¡¢ASCII()
·µ»Ø×Ö·û±í´ïʽ×î×ó¶Ë×Ö·ûµÄASCII ÂëÖµ¡£ÔÚASCII£¨£©º¯ÊýÖУ¬´¿Êý×ÖµÄ×Ö·û´®¿É²»ÓÑ’À¨ÆðÀ´£¬µ«º¬ÆäËü×Ö·ûµÄ×Ö·û´®±ØÐëÓÑ’À¨ÆðÀ´Ê¹Ó㬷ñÔò»á³ö´í¡£
2¡¢CHAR()
½«ASCII Âëת»»Îª×Ö·û¡£Èç¹ûûÓÐÊäÈë0 ~ 255 Ö®¼äµÄASCII ÂëÖµ£¬CHAR£¨£© ·µ»ØNULL ¡£
3¡¢LOWER()ºÍUPPER()
LOWER()½«×Ö·û´®È«²¿×ªÎªÐ¡Ð´£»UPPER()½«×Ö·û´®È«²¿×ªÎª´óд¡£
4¡¢STR()
°ÑÊýÖµÐÍÊý¾Ýת»»Îª×Ö·ûÐÍÊý¾Ý¡£
STR (<float_expression>[£¬length[£¬ <decimal>]])
length Ö¸¶¨·µ»ØµÄ×Ö·û´®µÄ³¤¶È£¬decimal Ö¸¶¨·µ»ØµÄСÊýλÊý¡£Èç¹ûûÓÐÖ¸¶¨³¤¶È£¬È±Ê¡µÄlength ֵΪ10£¬ decimal ȱʡֵΪ0¡£
µ±length »òÕßdecimal Ϊ¸ºÖµÊ±£¬·µ»ØNULL£»
µ±length СÓÚСÊýµã×ó±ß£¨°üÀ¨·ûºÅ룩µÄλÊýʱ£¬·µ»Ølength ¸ö*£»
ÏÈ·þ´Ólength £¬ÔÙÈ¡decimal £»
µ±·µ»ØµÄ×Ö·û´®Î»ÊýСÓÚlength £¬×ó±ß²¹×ã¿Õ¸ñ¡£
¶þ¡¢È¥¿Õ¸ñº¯Êý
1¡¢LTRIM() °Ñ×Ö·û´®Í·²¿µÄ¿Õ¸ñÈ¥µô¡£
2¡¢RTRIM() °Ñ×Ö·û´®Î²²¿µÄ¿Õ¸ñÈ¥µô¡£
Èý¡¢È¡×Ó´®º¯Êý
1¡¢left()
LEFT (<character_expression>£¬ <integer_expression>)
·µ»Øcharacter_exp ......
p.s. ²»ÓÃÊÔͼÔÚsql2000·þÎñ¹ÜÀíÆ÷ÉÏÃæ×¢²ásql2005µÄÔ¶³ÌÊý¾Ý¿â·þÎñÆ÷£¬Ö»ÄÜÏÈ´Ósql2005ÉÏÃæµ¼³öÊʺÏsql2000µÄ½¨±í½Å±¾£¬ÔÚsql2000ÉϽ¨¿â½¨±í£¬È»ºóÀûÓÃsql2000µÄµ¼ÈëºÍµ¼³öÏòµ¼£¬½«Êý¾Ý´Ó2005µ¼Èëµ½2000µ±ÖС£
2005תµ½2000µÄ²½Öè²½Öè
1. Éú³Éfor 2000°æ±¾µÄÊý¾Ý¿â½Å±¾
2005 µÄmanger studio
-- ´ò¿ª"¶ÔÏó×ÊÔ´¹ÜÀíÆ÷"(ûÓеϰ°´F8), Á¬½Óµ½ÄãµÄʵÀý
-- ÓÒ¼üҪתµ½2000µÄ¿â
-- ÈÎÎñ
-- Éú³É½Å±¾
-- ÔÚ"½Å±¾Ïòµ¼"µÄ"Ñ¡ÔñÊý¾Ý¿â"ÖÐ, È·¶¨Ñ¡ÔñµÄÊÇҪתµ½2000µÄ¿â
-- ¹´Ñ¡"ΪËùÑ¡Êý¾Ý¿âÖеÄËùÓжÔÏó±àд½Å±¾"
-- ÔÚ½ÓÏÂÀ´µÄ"Ñ¡Ôñ½Å±¾Ñ¡Ïî"ÖÐ, ÕÒµ½"Ϊ·þÎñÆ÷°æ±¾±àд½Å±¾"Ïî, Ñ¡Ôñ"SQL Server 2000"
-- ÆäËûÑ¡Ïî¸ù¾ÝÐèÒªÉèÖÃ
-- ×îºó°Ñ½Å±¾±£´æµ½Ò»¸ö .sql ½Å±¾Îļþ
2. ÔÚ2000Öд´½¨Ä¿±êÊý¾Ý¿â
ÔÚ²éѯ·ÖÎöÆ÷(»ò2005µÄmanger studioÔÚ´ò¿ª½Å±¾Îļþ), Á¬½Óµ½SQL Server 2000,Ö´ÐÐÉÏÃæÉú³ÉµÄ½Å±¾.ÒÔ´´½¨Ò»¸öеÄÊý¾Ý¿â
3. ½«Êý¾Ý´Ó2005µ¼µ½2000 £¨¾ÍÊÇÀûÓÃsql2000µÄµ¼ÈëºÍµ¼³öÏòµ¼£¬½«Êý¾Ý´Ó2005µ¼Èëµ½2000£©
2005 µÄmanger studio
-- ´ò¿ª"¶ÔÏó×ÊÔ´¹ÜÀíÆ÷"(ûÓеϰ°´F8), Á¬½Óµ½ÄãµÄʵÀý
-- ÓÒ¼üҪתµ½2000µÄ¿â
-- ÈÎÎñ
-- µ¼³öÊý¾Ý
-- Ô ......
ÔÎĵØÖ·£ºhttp://www.dingos.cn/index.php?topic=1688.0
OracleÓÐrownumÓÃÓÚ·ÃÎʱíÖÐÐкš£ÄÇôÔÚSQL ServerÖÐÊÇ·ñÓеÈЧµÄÄØ£¿»òÕßÔÚSQL ServerÖÐÈçºÎÊä³öÐкţ¿
-----------------------------------
ÔÚSQL ServerÖÐûÓÐÖ±½ÓµÈЧÓÚOracleµÄrownum
-----------------------------------
Ñϸñ˵À´£¬ÔÚ¹ØÏµÊý¾Ý¿âÖУ¬±íÖеÄÐÐÊÇûÓÐÐòµÄ²¢ÇÒÐкÅûÓÐÕýÕæµÄÒâÒå¡£Èç¹ûÐèÒªÕâ¸ö¹¦ÄÜ£¬¿ÉÒÔÓÐÈçÏÂÈýÖÖ¿¼ÂÇ£º
ÔÚ±íÖÐÌí¼ÓÒ»¸ö×Ô¶¯Ôö³¤ÁС£
ʹÓÃÏÂÁвéѯΪÿһÐвúÉúÒ»¸öÐкš£ÏÂÁвéѯΪpubsÊý¾Ý¿âÿһÐвúÉúÒ»¸öÐкš£ÎªÕâ¸ö²éѯ¹¤×÷£¬Õâ¸ö±í±ØÐëÓ´Î¨Ò»Ô¼Êø¡£
-----------------------------------------------
SELECT (SELECT COUNT(i.au_id)
from pubs..authors i
WHERE i.au_id >= o.au_id ) AS RowID,
au_fname + ' ' + au_lname AS 'Author name'
from pubs..authors o
ORDER BY RowID
-----------------------------------------
ʹÓÃÁÙʱ±íʵÏÖ£¬½«Õû¸ö½á¹û¼¯´æ´¢ÔÚÒ»¸öÁÙʱ±íÖУ¬¸úÓÐÒ»¸öÓÉIDENTITY()º¯Êý²ÎÊýµÄÐкš£´´½¨ÁÙʱ±í´ú¼ÛÊDZȽϰº¹óµÄ£¬ÓÈÆäÊǶԱȽϴóµÄ±í½øÐвÙ×÷¡£
......