×î½üÓöµ½Ò»¸öÏîÄ¿£¬¿Í»§ÔÚ×ܲ¿Â¼ÈëÐÅÏ¢ºó£¬Êý¾ÝÐèҪͬ²½µ½ÏÂÊôµÄÈô¸É¸ö×ÓϵͳÖС£ÏÖÔÚ×ܲ¿µ¥¶ÀʹÓÃÒ»¸öÊý¾Ý¿â£¬ÏÂÊôµ¥Î»¸÷×ÔʹÓÃ×Ô¼ºµÄÊý¾Ý¿â¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬Ïëµ½Á˼¸¸ö½â¾ö·½°¸£º
1¡¢×Ô¼ºÐ´´úÂë½â¾ö¡£¶¨ÒåºÃ·ÃÎÊÿ¸öÊý¾ÝµÄÁ¬½Ó×Ö·û´®£¬×ܲ¿Ìí¼ÓÊý¾Ýʱ£¬Í¬Ê±Ð´ÈëÆäËûËùÓÐÊý¾Ý£¬Ð޸ģ¬É¾³ýµÄҲͬʱ½øÐС£Õâ¸ö·½·¨ÓÐÒ»¸öÓŵãÁ½¸öȱµã£º
Óŵ㣺˼·¼òµ¥£¬×öÆðÀ´Ò²²»ÄÑ£»
ȱµã£ºa¡¢Êý¾ÝÍêÕûÐÔºÍÓÐЧÐÔ²»ºÃ±£ÕÏ£»
b¡¢´úÂë·±Ëö£¬¹¤×÷Á¿´ó£»
2¡¢Ê¹ÓÃÊý¾Ý¿â±¾ÉíµÄ¸´Öƹ¦ÄÜ¡£ÒÔǰûÓÐÓùýÕâ¸ö¹¦ÄÜ£¬ÔÚÍøÉϲéÁ˲é×ÊÁÏ£¬ÓÃÁËÁ½Ììʱ¼ä£¬¶ÔÕâ¸ö¶«Î÷ÓÐÁ˳õ²½µÄÁ˽⡣ÒÔÏÂ×ªÔØ×Þ´ó¸ç£¬ÒԱ㽫À´²éÔÄ£º
¸´ÖÆÊǽ«Ò»×éÊý¾Ý´ÓÒ»¸öÊý¾ÝÔ´¿½±´µ½¶à¸öÊý¾ÝÔ´µÄ¼¼Êõ£¬Êǽ«Ò»·ÝÊý¾Ý·¢²¼µ½¶à¸ö´æ´¢Õ¾µãÉϵÄÓÐЧ·½Ê½¡£Ê¹Óø´ÖƼ¼Êõ£¬Óû§¿ÉÒÔ½«Ò»·ÝÊý¾Ý·¢²¼µ½¶à ......
SQL code
´´½¨½ÇÉ«£¬Óû§£¬È¨ÏÞ
/*--ʾÀý˵Ã÷
ʾÀýÔÚÊý¾Ý¿âpubsÖд´½¨Ò»¸öÓµÓбíjobsµÄËùÓÐȨÏÞ¡¢ÓµÓбítitlesµÄSELECTȨÏ޵ĽÇÉ«r_test
Ëæºó´´½¨ÁËÒ»¸öµÇ¼l_test£¬È»ºóÔÚÊý¾Ý¿âpubsÖÐΪµÇ¼l_test´´½¨ÁËÓû§ÕË»§u_test
ͬʱ½«Óû§ÕË»§u_testÌí¼Óµ½½ÇÉ«r_testÖУ¬Ê¹Æäͨ¹ýȨÏ޼̳лñÈ¡ÁËÓë½ÇÉ«r_testÒ»ÑùµÄȨÏÞ
×îºóʹÓÃDENYÓï¾ä¾Ü¾øÁËÓû§ÕË»§u_test¶Ô±ítitlesµÄSELECTȨÏÞ¡£
¾¹ýÕâÑùµÄ´¦Àí£¬Ê¹ÓÃl_testµÇ¼SQL ServerʵÀýºó£¬ËüÖ»¾ßÓбíjobsµÄËùÓÐȨÏÞ¡£
--*/
USE pubs
--´´½¨½ÇÉ« r_test
EXEC sp_addrole 'r_test'
--ÊÚÓè r_test ¶Ô jobs ±íµÄËùÓÐȨÏÞ
GRANT ALL ON jobs TO r_test
--ÊÚÓè½ÇÉ« r_test ¶Ô titles ±íµÄ SELECT ȨÏÞ
GRANT SELECT ON titles TO r_test
--Ìí¼ÓµÇ¼ l_test,ÉèÖÃÃÜÂëΪpwd,ĬÈÏÊý¾Ý¿âΪpubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--ΪµÇ¼ l_test ÔÚÊý¾Ý¿â pubs ÖÐÌí¼Ó°²È«ÕË»§ u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--Ìí¼Ó u_test Ϊ½ÇÉ« r_test µÄ³ÉÔ±
EXEC sp_addrolemember 'r_test','u_test'
--¾Ü¾ø°²È«ÕË»§ u_test ¶Ô titles ±íµÄ SELECT ȨÏÞ
DENY SELECT ON titles ......
ÈçºÎÓÅ»¯SQL Server
1¡¢ ÓóÌÐòÖУ¬±£Ö¤ÔÚʵÏÖ¹¦ÄܵĻù´¡ÉÏ£¬¾¡Á¿¼õÉÙ¶ÔÊý¾Ý¿âµÄ·ÃÎÊ´ÎÊý£»Í¨¹ýËÑË÷²ÎÊý£¬¾¡Á¿¼õÉÙ¶Ô±íµÄ·ÃÎÊÐÐÊý,×îС»¯½á¹û¼¯£¬´Ó¶ø¼õÇáÍøÂ縺µ££»Äܹ»·Ö¿ªµÄ ²Ù×÷¾¡Á¿·Ö¿ª´¦Àí£¬Ìá¸ßÿ´ÎµÄÏìÓ¦ËÙ¶È£»ÔÚÊý¾Ý´°¿ÚʹÓÃSQLʱ£¬¾¡Á¿°ÑʹÓõÄË÷Òý·ÅÔÚÑ¡ÔñµÄÊ×ÁУ»Ëã·¨µÄ½á¹¹¾¡Á¿¼òµ¥£»ÔÚ²éѯʱ£¬²»Òª¹ý¶àµØÊ¹ÓÃͨÅä·û ÈçSELECT * from T1Óï¾ä£¬ÒªÓõ½¼¸ÁоÍÑ¡Ôñ¼¸ÁÐÈ磺SELECT COL1,COL2 from T1£»ÔÚ¿ÉÄܵÄÇé¿öϾ¡Á¿ÏÞÖÆ¾¡Á¿½á¹û¼¯ÐÐÊýÈ磺SELECT TOP 300 COL1,COL2,COL3 from T1,ÒòΪijЩÇé¿öÏÂÓû§ÊDz»ÐèÒªÄÇô¶àµÄÊý¾ÝµÄ¡£²»ÒªÔÚÓ¦ÓÃÖÐʹÓÃÊý¾Ý¿âÓα꣬ÓαêÊǷdz£ÓÐÓõŤ¾ß£¬µ«±ÈʹÓ󣹿µÄ¡¢ÃæÏò¼¯µÄSQLÓï¾äÐèÒª¸ü´óµÄ¿ª Ïú£»°´ÕÕÌØ¶¨Ë³ÐòÌáÈ¡Êý¾ÝµÄ²éÕÒ¡£
2¡¢ ±ÜÃâʹÓò»¼æÈݵÄÊý¾ÝÀàÐÍ¡£ÀýÈçfloatºÍint¡¢charºÍvarchar¡¢binaryºÍvarbinaryÊDz»¼æÈݵġ£Êý¾ÝÀàÐ͵IJ»¼æÈÝ¿ÉÄÜʹÓÅ»¯Æ÷ÎÞ·¨Ö´ÐÐһЩ±¾À´¿ÉÒÔ½øÐеÄÓÅ»¯²Ù×÷¡£ÀýÈç:
SELECT name from employee WHERE salary £¾ 60000
ÔÚÕâÌõÓï¾äÖÐ,Èçsalary×Ö¶ÎÊÇmoneyÐ͵Ä,ÔòÓÅ»¯Æ÷ºÜÄÑ¶ÔÆä½øÐÐÓÅ»¯,ÒòΪ60000ÊǸöÕûÐÍÊý¡£ÎÒÃÇÓ¦µ±ÔÚ±à³Ìʱ½«ÕûÐÍת»¯³ÉΪǮ±ÒÐÍ,¶ø²»ÒªµÈµ½ÔËÐÐʱת»¯ ......
1.Ó¦¾¡Á¿±ÜÃâÔÚ where ×Ó¾äÖжÔ×ֶνøÐÐ null ÖµÅжϣ¬·ñÔò½«µ¼ÖÂÒýÇæ·ÅÆúʹÓÃË÷Òý¶ø½øÐÐÈ«±íɨÃ裬È磺
select id from t where num is null
¿ÉÒÔÔÚnumÉÏÉèÖÃĬÈÏÖµ0£¬È·±£±íÖÐnumÁÐûÓÐnullÖµ£¬È»ºóÕâÑù²éѯ£º
select id from t where num=0
2.Ó¦¾¡Á¿±ÜÃâÔÚ where ×Ó¾äÖÐʹÓÃ!=»ò<>²Ù×÷·û£¬·ñÔò½«ÒýÇæ·ÅÆúʹÓÃË÷Òý¶ø½øÐÐÈ«±íɨÃè¡£ÓÅ»¯Æ÷½«ÎÞ·¨Í¨¹ýË÷ÒýÀ´È·¶¨½«ÒªÃüÖеÄÐÐÊý,Òò´ËÐèÒªËÑË÷¸Ã±íµÄËùÓÐÐС£
3.Ó¦¾¡Á¿±ÜÃâÔÚ where ×Ó¾äÖÐʹÓà or À´Á¬½ÓÌõ¼þ£¬·ñÔò½«µ¼ÖÂÒýÇæ·ÅÆúʹÓÃË÷Òý¶ø½øÐÐÈ«±íɨÃ裬È磺
select id from t where num=10 or num=20
¿ÉÒÔÕâÑù²éѯ£º
select id from t where num=10
union all
select id from t where num=20
4.in ºÍ not in Ò²ÒªÉ÷Óã¬ÒòΪIN»áʹϵͳÎÞ·¨Ê¹ÓÃË÷Òý,¶øÖ»ÄÜÖ±½ÓËÑË÷±íÖеÄÊý¾Ý¡£È磺
select id from t where num in(1,2,3)
¶ÔÓÚÁ¬ÐøµÄÊýÖµ£¬ÄÜÓà between ¾Í²»ÒªÓà in ÁË£º
select id from t where num between 1 and 3
5.¾¡Á¿±ÜÃâÔÚË÷Òý¹ýµÄ×Ö·ûÊý¾ÝÖУ¬Ê¹Ó÷ǴòÍ·×ÖĸËÑË÷¡£ÕâҲʹµÃÒýÇæÎÞ·¨ÀûÓÃË÷Òý¡£
¼ûÈçÏÂÀý×Ó£º
SELECT * from T1 WHERE NAME LIKE ‘%L%’
SELECT * f ......
SQLÓÅ»¯²éѯ
ÊÕ²Ø
Êý¾Ý¿âµÄ²éѯÓÅ»¯¼¼Êõ
Êý¾Ý¿âϵͳÊǹÜÀíÐÅϢϵͳµÄºËÐÄ£¬»ùÓÚÊý¾Ý¿âµÄÁª»úÊÂÎñ´¦Àí£¨OLTP£©ÒÔ¼°Áª»ú·ÖÎö´¦Àí(OLAP)ÊÇÒøÐС¢ÆóÒµ¡¢Õþ¸®µÈ²¿ÃÅ×îÎªÖØÒªµÄ¼ÆËã»úÓ¦
ÓÃÖ®Ò»¡£´Ó´ó¶àÊýϵͳµÄÓ¦ÓÃʵÀýÀ´¿´£¬²éѯ²Ù×÷ÔÚ¸÷ÖÖÊý¾Ý¿â²Ù×÷ÖÐËùÕ¼¾ÝµÄ±ÈÖØ×î´ó£¬¶ø²éѯ²Ù×÷Ëù»ùÓÚµÄSELECTÓï¾äÔÚSQLÓï¾äÖÐÓÖÊÇ´ú¼Û×î´óµÄÓï
¾ä¡£¾ÙÀýÀ´Ëµ£¬Èç¹ûÊý¾ÝµÄÁ¿»ýÀÛµ½Ò»¶¨µÄ³Ì¶È£¬±ÈÈçÒ»¸öÒøÐеÄÕË»§Êý¾Ý¿â±íÐÅÏ¢»ýÀÛµ½ÉϰÙÍòÉõÖÁÉÏǧÍòÌõ¼Ç¼£¬È«±íɨÃèÒ»´ÎÍùÍùÐèÒªÊýÊ®·ÖÖÓ£¬ÉõÖÁÊýС
ʱ¡£Èç¹û²ÉÓñÈÈ«±íɨÃè¸üºÃµÄ²éѯ²ßÂÔ£¬ÍùÍù¿ÉÒÔʹ²éѯʱ¼ä½µÎª¼¸·ÖÖÓ£¬Óɴ˿ɼû²éѯÓÅ»¯¼¼ÊõµÄÖØÒªÐÔ¡£
±ÊÕßÔÚÓ¦ÓÃÏîÄ¿µÄʵʩÖз¢ÏÖ£¬Ðí¶à³ÌÐò
Ô±ÔÚÀûÓÃһЩǰ¶ËÊý¾Ý¿â¿ª·¢¹¤¾ß£¨ÈçPowerBuilder¡¢DelphiµÈ£©¿ª·¢Êý¾Ý¿âÓ¦ÓóÌÐòʱ£¬Ö»×¢ÖØÓû§½çÃæµÄ»ªÀö£¬²¢²»ÖØÊÓ²éѯÓï¾äµÄЧÂÊÎÊ
Ì⣬µ¼ÖÂËù¿ª·¢³öÀ´µÄÓ¦ÓÃϵͳЧÂʵÍÏ£¬×ÊÔ´ÀË·ÑÑÏÖØ¡£Òò´Ë£¬ÈçºÎÉè¼Æ¸ßЧºÏÀíµÄ²éѯÓï¾ä¾ÍÏԵ÷dz£ÖØÒª¡£±¾ÎÄÒÔÓ¦ÓÃʵÀýΪ»ù´¡£¬½áºÏÊý¾Ý¿âÀíÂÛ£¬½éÉܲé
ѯÓÅ»¯¼¼ÊõÔÚÏÖʵϵͳ ......
#ÐÂÔöÒ»¸ö×ֶΣ¬Ä¬ÈÏֵΪ0£¬·Ç¿Õ£¬×Ô¶¯Ôö³¤£¬Ö÷¼ü
alter table tabelname add new_field_name field_type default 0 not null auto_increment ,add primary key (new_field_name);
#Ôö¼ÓÒ»¸öÐÂ×Ö¶Î
alter table tableName add new_field_name field_type;
alter table tableName add new_field_name field_type not null default '0';
#ɾ³ý×Ö¶Î
alter table tableName drop column field_name;
#ÖØÃüÃû×Ö¶Î
alter table tableName change old_field_name new_field_name new_field_type;
#¸Ä±ä×ֶεÄÀàÐÍ
alter table tableName change field_name field_name field_type;
#ÖØÃüÃû±í
alter table table_old_name rename table_new_name;
#¼ÓË÷Òý
alter table tablename add index Ë÷ÒýÃû (×Ö¶ÎÃû1[£¬×Ö¶ÎÃû2 …]);
alter table tablename add index index_name(name);
#ÉèÖÃÖ÷¼ü
alter table tablename add primary key(field_name);
#Ìí¼ÓΨһË÷Òý
alter table tablename add unique index_name(field_name);
#ɾ³ýË÷Ò ......
#ÐÂÔöÒ»¸ö×ֶΣ¬Ä¬ÈÏֵΪ0£¬·Ç¿Õ£¬×Ô¶¯Ôö³¤£¬Ö÷¼ü
alter table tabelname add new_field_name field_type default 0 not null auto_increment ,add primary key (new_field_name);
#Ôö¼ÓÒ»¸öÐÂ×Ö¶Î
alter table tableName add new_field_name field_type;
alter table tableName add new_field_name field_type not null default '0';
#ɾ³ý×Ö¶Î
alter table tableName drop column field_name;
#ÖØÃüÃû×Ö¶Î
alter table tableName change old_field_name new_field_name new_field_type;
#¸Ä±ä×ֶεÄÀàÐÍ
alter table tableName change field_name field_name field_type;
#ÖØÃüÃû±í
alter table table_old_name rename table_new_name;
#¼ÓË÷Òý
alter table tablename add index Ë÷ÒýÃû (×Ö¶ÎÃû1[£¬×Ö¶ÎÃû2 …]);
alter table tablename add index index_name(name);
#ÉèÖÃÖ÷¼ü
alter table tablename add primary key(field_name);
#Ìí¼ÓΨһË÷Òý
alter table tablename add unique index_name(field_name);
#ɾ³ýË÷Ò ......