...
)
Óõ½µÄ¹¦ÄÜÓÐ:
1.Èç¹ûÎÒ¸ü¸ÄÁËѧÉúµÄѧºÅ,ÎÒÏ£ÍûËûµÄ½èÊé¼Ç¼ÈÔÈ»ÓëÕâ¸öѧÉúÏà¹Ø(Ò²¾ÍÊÇͬʱ¸ü¸Ä½èÊé¼Ç¼±íµÄѧºÅ);
2.Èç¹û¸ÃѧÉúÒѾ±ÏÒµ£¬ÎÒÏ£Íûɾ³ýËûµÄѧºÅµÄͬʱ£¬Ò²É¾³ýËüµÄ½èÊé¼Ç¼¡£
µÈµÈ¡£
Õâʱºò¿ÉÒÔÓõ½´¥·¢Æ÷¡£¶ÔÓÚ1£¬´´½¨Ò»¸öUpdate´¥·¢Æ÷£º
Create Trigger truStudent
On Student --ÔÚStudent±íÖд´½¨´¥·¢Æ÷
for Update --Ϊʲôʼþ´¥·¢
As --ʼþ´¥·¢ºóËùÒª× ......
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST²Ù×÷ʱ£¬Òª¸ù¾ÝÖ÷×Ó±íÊý¾ÝÁ¿´óСÀ´¾ßÌ忼ÂÇ¡£
²»ÓÓ<>”»òÕß“!=”²Ù×÷·û¡£¶Ô²»µÈÓÚ²Ù×÷·ûµÄ´¦Àí»áÔì³ÉÈ«±íɨÃ裬¿ÉÒÔÓÓ<” or
“>”´úÌæ¡£
Where×Ó¾äÖгöÏÖIS NULL»òÕßIS NOT NULLʱ£¬Oracle»áֹͣʹÓÃË÷Òý¶øÖ´ÐÐÈ«±íɨ
Ãè¡£¿ÉÒÔ¿¼ÂÇÔÚÉè¼Æ±íʱ£¬¶ÔË÷ÒýÁÐÉèÖÃΪNOT NULL¡£ÕâÑù¾Í¿ÉÒÔÓÃÆäËû²Ù×÷À´È¡´úÅжÏNULLµÄ²Ù×÷¡£
µ±Í¨Åä·û“%”»òÕß“_”×÷Ϊ²éѯ×Ö·û´®µÄµÚÒ»¸ö×Ö·ûʱ£¬Ë÷Òý²»»á±»Ê¹Óá£
¶ÔÓÚÓÐÁ¬½ÓµÄÁГ||”£¬×îºóÒ»¸öÁ¬½ÓÁÐË÷Òý»áÎÞЧ¡£¾¡Á¿±ÜÃâÁ¬½Ó£¬¿ÉÒÔ·Ö¿ªÁ¬½Ó»ò
ÕßʹÓò»×÷ÓÃÔÚÁÐÉϵĺ¯ÊýÌæ´ú¡£
Èç¹ûË÷Òý²»ÊÇ»ùÓÚº¯ÊýµÄ£¬ÄÇôµ±ÔÚWhere×Ó¾äÖжÔË÷ÒýÁÐʹÓú¯Êýʱ£¬Ë÷Òý²»ÔÙÆð×÷

Where×Ó¾äÖбÜÃâÔÚË÷ÒýÁÐÉÏʹÓüÆË㣬·ñÔò½«µ¼ÖÂË÷ÒýʧР......
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST²Ù×÷ʱ£¬Òª¸ù¾ÝÖ÷×Ó±íÊý¾ÝÁ¿´óСÀ´¾ßÌ忼ÂÇ¡£
²»ÓÓ<>”»òÕß“!=”²Ù×÷·û¡£¶Ô²»µÈÓÚ²Ù×÷·ûµÄ´¦Àí»áÔì³ÉÈ«±íɨÃ裬¿ÉÒÔÓÓ<” or
“>”´úÌæ¡£
Where×Ó¾äÖгöÏÖIS NULL»òÕßIS NOT NULLʱ£¬Oracle»áֹͣʹÓÃË÷Òý¶øÖ´ÐÐÈ«±íɨ
Ãè¡£¿ÉÒÔ¿¼ÂÇÔÚÉè¼Æ±íʱ£¬¶ÔË÷ÒýÁÐÉèÖÃΪNOT NULL¡£ÕâÑù¾Í¿ÉÒÔÓÃÆäËû²Ù×÷À´È¡´úÅжÏNULLµÄ²Ù×÷¡£
µ±Í¨Åä·û“%”»òÕß“_”×÷Ϊ²éѯ×Ö·û´®µÄµÚÒ»¸ö×Ö·ûʱ£¬Ë÷Òý²»»á±»Ê¹Óá£
¶ÔÓÚÓÐÁ¬½ÓµÄÁГ||”£¬×îºóÒ»¸öÁ¬½ÓÁÐË÷Òý»áÎÞЧ¡£¾¡Á¿±ÜÃâÁ¬½Ó£¬¿ÉÒÔ·Ö¿ªÁ¬½Ó»ò
ÕßʹÓò»×÷ÓÃÔÚÁÐÉϵĺ¯ÊýÌæ´ú¡£
Èç¹ûË÷Òý²»ÊÇ»ùÓÚº¯ÊýµÄ£¬ÄÇôµ±ÔÚWhere×Ó¾äÖжÔË÷ÒýÁÐʹÓú¯Êýʱ£¬Ë÷Òý²»ÔÙÆð×÷

Where×Ó¾äÖбÜÃâÔÚË÷ÒýÁÐÉÏʹÓüÆË㣬·ñÔò½«µ¼ÖÂË÷ÒýʧР......
1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ,Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ, ÄǾÍÐèҪѡÔñ½»²æ±í(intersection table)×÷Ϊ»ù´¡±í, ½»²æ±íÊÇÖ¸ÄǸö±»ÆäËû±íËùÒýÓõıí.
£¨2£© WHERE×Ó¾äÖеÄÁ¬½Ó˳Ðò£®£º
ORACLE²ÉÓÃ×Ô϶øÉϵÄ˳Ðò½âÎöWHERE×Ó¾ä,¸ù¾ÝÕâ¸öÔÀí,±íÖ®¼äµÄÁ¬½Ó±ØÐëдÔÚÆäËûWHEREÌõ¼þ֮ǰ, ÄÇЩ¿ÉÒÔ¹ýÂ˵ô×î´óÊýÁ¿¼Ç¼µÄÌõ¼þ±ØÐëдÔÚWHERE×Ó¾äµÄĩβ.
£¨3£© SELECT×Ó¾äÖбÜÃâʹÓà ‘ * ‘£º
ORACLEÔÚ½âÎöµÄ¹ý³ÌÖÐ, »á½«'*' ÒÀ´Îת»»³ÉËùÓеÄÁÐÃû, Õâ¸ö¹¤×÷ÊÇͨ¹ý²éѯÊý¾Ý×ÖµäÍê³ÉµÄ, ÕâÒâζ׎«ºÄ·Ñ¸ü¶àµÄʱ¼ä
£¨4£© ¼õÉÙ·ÃÎÊÊý¾Ý¿âµÄ´ÎÊý£º
ORACLEÔÚÄÚ²¿Ö´ÐÐÁËÐí¶à¹¤×÷: ½âÎöSQLÓï¾ä, ¹ÀËãË÷ÒýµÄÀûÓÃÂÊ, °ó¶¨±äÁ¿ , ¶ÁÊý¾Ý¿éµÈ£»
£¨5£© ÔÚSQL*Plus , SQL*FormsºÍPro*CÖÐÖØÐÂÉèÖÃARRAYSIZE²ÎÊý, ¿ÉÒÔÔö¼Óÿ´ÎÊý¾Ý¿â·ÃÎʵļìË÷Êý¾ÝÁ¿ ,½¨ÒéֵΪ200
£¨6£© Ê¹Ó ......
1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ,Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ, ÄǾÍÐèҪѡÔñ½»²æ±í(intersection table)×÷Ϊ»ù´¡±í, ½»²æ±íÊÇÖ¸ÄǸö±»ÆäËû±íËùÒýÓõıí.
£¨2£© WHERE×Ó¾äÖеÄÁ¬½Ó˳Ðò£®£º
ORACLE²ÉÓÃ×Ô϶øÉϵÄ˳Ðò½âÎöWHERE×Ó¾ä,¸ù¾ÝÕâ¸öÔÀí,±íÖ®¼äµÄÁ¬½Ó±ØÐëдÔÚÆäËûWHEREÌõ¼þ֮ǰ, ÄÇЩ¿ÉÒÔ¹ýÂ˵ô×î´óÊýÁ¿¼Ç¼µÄÌõ¼þ±ØÐëдÔÚWHERE×Ó¾äµÄĩβ.
£¨3£© SELECT×Ó¾äÖбÜÃâʹÓà ‘ * ‘£º
ORACLEÔÚ½âÎöµÄ¹ý³ÌÖÐ, »á½«'*' ÒÀ´Îת»»³ÉËùÓеÄÁÐÃû, Õâ¸ö¹¤×÷ÊÇͨ¹ý²éѯÊý¾Ý×ÖµäÍê³ÉµÄ, ÕâÒâζ׎«ºÄ·Ñ¸ü¶àµÄʱ¼ä
£¨4£© ¼õÉÙ·ÃÎÊÊý¾Ý¿âµÄ´ÎÊý£º
ORACLEÔÚÄÚ²¿Ö´ÐÐÁËÐí¶à¹¤×÷: ½âÎöSQLÓï¾ä, ¹ÀËãË÷ÒýµÄÀûÓÃÂÊ, °ó¶¨±äÁ¿ , ¶ÁÊý¾Ý¿éµÈ£»
£¨5£© ÔÚSQL*Plus , SQL*FormsºÍPro*CÖÐÖØÐÂÉèÖÃARRAYSIZE²ÎÊý, ¿ÉÒÔÔö¼Óÿ´ÎÊý¾Ý¿â·ÃÎʵļìË÷Êý¾ÝÁ¿ ,½¨ÒéֵΪ200
£¨6£© Ê¹Ó ......
Ò»¡¢ ¼òµ¥²éѯ
¼òµ¥µÄTransact-SQL²éѯֻ°üÀ¨Ñ¡ÔñÁÐ±í¡¢from×Ó¾äºÍWHERE×Ӿ䡣ËüÃÇ·Ö±ð˵Ã÷Ëù²éѯÁС¢²éѯµÄ
±í»òÊÓͼ¡¢ÒÔ¼°ËÑË÷Ìõ¼þµÈ¡£
ÀýÈ磬ÏÂÃæµÄÓï¾ä²éѯtesttable±íÖÐÐÕÃûΪ“ÕÅÈý”µÄnickname×ֶκÍemail×ֶΡ£
SELECT nickname,email
from testtable
WHERE name='ÕÅÈý'
(Ò») Ñ¡ÔñÁбí
Ñ¡ÔñÁбí(select_list)Ö¸³öËù²éѯÁУ¬Ëü¿ÉÒÔÊÇÒ»×éÁÐÃûÁÐ±í¡¢ÐǺš¢±í´ïʽ¡¢±äÁ¿(°üÀ¨¾Ö²¿±ä
Á¿ºÍÈ«¾Ö±äÁ¿)µÈ¹¹³É¡£
1¡¢Ñ¡ÔñËùÓÐÁÐ
ÀýÈ磬ÏÂÃæÓï¾äÏÔʾtesttable±íÖÐËùÓÐÁеÄÊý¾Ý£º
SELECT *
from testtable
2¡¢Ñ¡Ôñ²¿·ÖÁв¢Ö¸¶¨ËüÃǵÄÏÔʾ´ÎÐò
²éѯ½á¹û¼¯ºÏÖÐÊý¾ÝµÄÅÅÁÐ˳ÐòÓëÑ¡ÔñÁбíÖÐËùÖ¸¶¨µÄÁÐÃûÅÅÁÐ˳ÐòÏàͬ¡£
ÀýÈ磺
SELECT nickname,email
from testtable
3¡¢¸ü¸ÄÁбêÌâ
ÔÚÑ¡ÔñÁбíÖУ¬¿ÉÖØÐÂÖ¸¶¨ÁбêÌâ¡£¶¨Òå¸ñʽΪ£º
ÁбêÌâ=ÁÐÃû
ÁÐÃû ÁбêÌâ
Èç¹ûÖ¸¶¨µÄÁбêÌâ²»ÊDZê×¼µÄ±êʶ·û¸ñʽʱ£¬Ó¦Ê¹ÓÃÒýºÅ¶¨½ç·û£¬ÀýÈ磬ÏÂÁÐÓï¾äʹÓúº×ÖÏÔʾÁÐ
±êÌ⣺
SELECT êdzÆ=nickname,µç×ÓÓʼþ=email
from testtable
4.ɾ³ýÖØ¸´ÐÐ
SELECTÓï¾äÖÐʹÓÃALL»òDISTINCTÑ¡ÏîÀ´ÏÔʾ±íÖ ......
drop table father;
create table father(
id int identity(1,1) primary key,
name varchar(20) not null,
age int not null
)
drop table mother;
create table mother(
id int identity(1,1),
name varchar(20) not null,
age int not null,
husband int not null
)
alter table mother
add constraint FK_ID foreign key(husband) references father(id)
Èç¹û ÔÚfatherÖÐûÄܶ¨ÒåÖ÷¼ü£¬
drop table father;
create table father(
id int identity(1,1), (䶨Òå primary key)
name varchar(20) not null,
age int not null
)
Ôò»á±¨ÈçÏÂÒì³££º
ÔÚ±»ÒýÓñí 'father' ÖÐûÓÐÓëÍâ¼ü 'FK_ID' µÄÒýÓÃÁеÄÁÐ±íÆ¥ÅäµÄÖ÷¼ü»òºòÑ¡¼ü ......
¿ÉÒÔ¶¨ÒåÒ»¸öÎÞÂÛºÎʱÓÃINSERTÓï¾äÏò±íÖвåÈëÊý¾Ýʱ¶¼»áÖ´ÐеĴ¥·¢Æ÷¡£
¡¡¡¡µ±´¥·¢INSERT´¥·¢Æ÷ʱ£¬ÐµÄÊý¾ÝÐоͻᱻ²åÈëµ½´¥·¢Æ÷±íºÍinserted±íÖС£inserted±íÊÇÒ»¸öÂß¼±í£¬Ëü°üº¬ÁËÒѾ²åÈëµÄÊý¾ÝÐеÄÒ»¸ö¸±±¾¡£inserted±í°üº¬ÁËINSERTÓï¾äÖÐÒѼǼµÄ²åÈ붯×÷¡£inserted±í»¹ÔÊÐíÒýÓÃÓɳõʼ»¯INSERTÓï¾ä¶ø²úÉúµÄÈÕÖ¾Êý¾Ý¡£´¥·¢Æ÷ͨ¹ý¼ì²éinserted±íÀ´È·¶¨ÊÇ·ñÖ´Ðд¥·¢Æ÷¶¯×÷»òÈçºÎÖ´ÐÐËü¡£inserted±íÖеÄÐÐ×ÜÊÇ´¥·¢Æ÷±íÖÐÒ»Ðлò¶àÐеĸ±±¾¡£
¡¡¡¡ÈÕÖ¾¼Ç¼ÁËËùÓÐÐÞ¸ÄÊý¾ÝµÄ¶¯×÷(INSERT¡¢UPDATEºÍDELETEÓï¾ä)£¬µ«ÔÚÊÂÎñÈÕÖ¾ÖеÄÐÅÏ¢ÊDz»¿É¶ÁµÄ¡£È»¶ø£¬inserted±íÔÊÐíÄãÒýÓÃÓÉINSERTÓï¾äÒýÆðµÄÈÕÖ¾±ä»¯£¬ÕâÑù¾Í¿ÉÒÔ½«²åÈëÊý¾ÝÓë·¢ÉúµÄ±ä»¯½øÐбȽϣ¬À´ÑéÖ¤ËüÃÇ»ò²ÉÈ¡½øÒ»²½µÄ¶¯×÷¡£Ò²¿ÉÒÔÖ±½ÓÒýÓòåÈëµÄÊý¾Ý£¬¶ø²»±Ø½«ËüÃÇ´æ´¢µ½±äÁ¿ÖС£
¡¡¡¡Ê¾Àý
¡¡¡¡ÔÚ±¾ÀýÖУ¬½«´´½¨Ò»¸ö´¥·¢Æ÷¡£ÎÞÂÛºÎʱ¶©¹º²úÆ·£¨ÎÞÂÛºÎʱÏòOrder Details±íÖвåÈëÒ»Ìõ¼Ç¼£©£¬Õâ¸ö´¥·¢Æ÷¶¼½«¸üÐÂProducts±íÖеÄÒ»ÁÐ(UnitsInStock)¡£ÓÃÔÀ´µÄÖµ¼õÈ¥¶©¹ºµÄÊýÁ¿Öµ¼´ÎªÐÂÖµ¡£
USE Northwind
CREATE TRIGGER OrdDet_Insert
ON [Order Details]
FOR INSERT
AS
UPDATE&n ......