½ñÌì¸ãµÄ£¬°ïͬʲéѯÊý¾Ý£¬ÏÈд¸ö´¥·¢Æ÷£¬½ØÈ¡http://www.chinaroyalgroup.cn/aspnet_client/system_web/2_0_50727/dispbbs.asp?boardid=1&id=836ÀïµÄÓòÃû
IF EXISTS (SELECT name from sysobjects
WHERE name = 'gs_MySub' AND type = 'P')
DROP PROCEDURE gs_MySub
GO
create proc gs_MySub
@www varchar(100),
@result varchar(100) output,
@end int = 0
as
set @www = REPLACE(@www, 'http://', '') --Ìæ»»µôhttp://
set @end = PATINDEX('%/%', @www) --µÃµ½µÚÒ»´Î³öÏÖ'/'µÄλÖÃ
set @result = SUBSTRING(@www, 0, @end) --½ØÈ¡
GO
SQL²éѯ·ÖÎöÆ÷À
declare cur_domain1 cursor
for
select domain from test1
open cur_domain1
declare @result varchar(100)
declare @domain varchar(100)
Fetch next from cur_domain1
while (@@fetch_status<>-1)
begin fetch next from cur_domain1
INTO:@domain
exec gs_MySub @domain, @result output
print @result
end
close cur_domain1 ......
SQL SERVER 2005 ¼ò½é
Ò»Ö±ÒÔÀ´£¬T-SQL¶¼ÊÇÈÝÒ×ÉÏÊֵĽṹ»¯²éѯÓïÑÔ£¬Ëæ×ÅSQL ServerµÄ°æ±¾Ñݽø£¬³ýÁËÄÚ²¿¹¦ÄÜÔö¼Ó£¬
T-SQLÒ²´ó·ùÀ©ÔöÁËеIJéѯָÁî¡£ÀýÈ磺XQuery¡¢È¡µÃÅÅÃû˳ÐòµÄº¯Êý¡¢¼¯ºÏÔËËã´îÅäOVERÔËËã·û¡¢TOPÔËËã·û¿ÉÒÔ´îÅä±äÁ¿»ò×Ó²éѯ£¬ÒÔ¼°Í¸¹ýÐÂÔöµÄCTE£¨Common Table Expression£©Óï·¨Íê³ÉÒÔǰÄÑÒÔ×öµ½µÄÑ»·²éѯ… …µÈµÈ¡£ÇÒSQL Server2005ͳһÁËÐí¶àÓï·¨µÄ±ê×¼£¬½«ÔÀ´ÐèҪ͸¹ýϵͳ´æ´¢¹ý³Ì¡¢DBCCÃüÁî²ÅÄܽ¨Öá¢É趨»òά»¤µÄ¹¦ÄÜ£¬¶¼»Ø¹éµ½±ê×¼µÄT-SQLÓï·¨¡£
Transact-SQLÒÀÆä¹¦ÄÜ¿ÉÒÔ·ÖΪÈý²¿·Ö£º
1¡¢Êý¾Ý²Ù×÷ÓïÑÔ£¨Data Manipulation Language, DML£©£ºÆäÖ÷ÒªÓï·¨ÓÐSelect¡¢Insert¡¢DeleteºÍUpdate¡£½åÒÔ²éѯ¡¢ÐÂÔö¡¢Ð޸ĺ͸üÐÂÊý¾Ý¡£
2¡¢Êý¾Ý¶¨ÒåÓïÑÔ£¨Data Definition Language, DDL£©£ºÆäÖ÷ÒªÓï·¨ÓÐCreate¡¢AlterºÍDrop¡£½åÒÔ½¨Á¢¡¢Ð޸ĺÍɾ³ýSQL Server·þÎñÆ÷¶ËÎï¼þ¡£
3¡¢Êý¾Ý¿ØÖÆÓïÑ ......
SQL×¢Èëʽ¹¥»÷ÊÇÀûÓÃÊÇÖ¸ÀûÓÃÉè¼ÆÉϵÄ©¶´£¬ÔÚÄ¿±ê·þÎñÆ÷ÉÏÔËÐÐSqlÃüÁîÒÔ¼°½øÐÐÆäËû·½Ê½µÄ¹¥»÷¶¯Ì¬Éú³ÉSqlÃüÁîʱûÓжÔÓû§ÊäÈëµÄÊý¾Ý½øÐÐÑéÖ¤ÊÇSql×¢Èë¹¥»÷µÃ³ÑµÄÖ÷ÒªÔÒò¡£
±ÈÈ磺
Èç¹ûÄãµÄ²éѯÓï¾äÊÇselect * from admin where username="&user&" and password="&pwd&""
ÄÇô£¬Èç¹ûÎÒµÄÓû§ÃûÊÇ£º1 or 1=1
ÄÇô£¬ÄãµÄ²éѯÓï¾ä½«»á±ä³É£º
select * from admin where username=1 or 1=1 and password="&pwd&""
ÕâÑùÄãµÄ²éѯÓï¾ä¾Íͨ¹ýÁË£¬´Ó¶ø¾Í¿ÉÒÔ½øÈëÄãµÄ¹ÜÀí½çÃæ¡£
ËùÒÔ·À·¶µÄʱºòÐèÒª¶ÔÓû§µÄÊäÈë½øÐмì²é¡£ÌرðÊ½Ò»Ð©ÌØÊâ×Ö·û£¬±ÈÈçµ¥ÒýºÅ£¬Ë«ÒýºÅ£¬·ÖºÅ£¬¶ººÅ£¬Ã°ºÅ£¬Á¬½ÓºÅµÈ½øÐÐת»»»òÕß¹ýÂË¡£
£¨³ýÁËÉÏÃæµÄ·½Ê½Í⻹¿ÉÒÔͨ¹ý´æ´¢¹ý³ÌÀ´·À·¶SQL×¢Èë¹¥»÷£©
ÐèÒª¹ýÂ˵ÄÌØÊâ×Ö·û¼°×Ö·û´®ÓУº
¡¡¡¡ net user
¡¡¡¡ xp_cmdshell
¡¡¡¡ /add
¡¡¡¡ exec master.dbo.xp_cmdshell
¡¡¡¡ net localgroup administrators
¡¡¡¡ select
¡¡¡¡ count
¡¡¡¡ Asc
¡¡¡¡ char
¡¡¡¡ mid
¡¡¡¡
¡¡¡¡ :
¡¡¡¡ "
¡¡¡¡ insert
¡¡¡¡ delete from
¡¡¡¡ drop table
¡¡¡¡ update
¡¡¡¡ truncate
¡¡¡¡ from
¡¡¡¡ %
ÏÂÃæ¹ ......
MySQL
ÊÇÒ»¸öÕæÕýµÄ¶àÓû§¡¢¶àÏß³ÌSQLÊý¾Ý¿â·þÎñÆ÷¡£SQL£¨½á¹¹»¯²éѯÓïÑÔ£©ÊÇÊÀ½çÉÏ×îÁ÷Ðеĺͱê×¼»¯µÄÊý¾Ý¿âÓïÑÔ¡£MySQL
ÊÇÒÔÒ»¸ö¿Í»§»ú/·þÎñÆ÷½á¹¹µÄʵÏÖ£¬ËüÓÉÒ»¸ö·þÎñÆ÷ÊØ»¤³ÌÐòmysqld
ºÍºÜ¶à²»Í¬µÄ¿Í»§³ÌÐòºÍ¿â×é³É¡£
SQLÊÇÒ»ÖÖ±ê×¼»¯µÄÓïÑÔ£¬ËüʹµÃ´æ´¢¡¢¸üкʹæÈ¡ÐÅÏ¢¸üÈÝÒס£ÀýÈ磬ÄãÄÜÓÃSQLÓïÑÔΪһ¸öÍøÕ¾¼ìË÷²úÆ·ÐÅÏ¢¼°´æ´¢¹Ë¿ÍÐÅÏ¢£¬Í¬Ê±MySQL
Ò²×ã¹»¿ìºÍÁé»îÒÔÔÊÐíÄã´æ´¢¼Ç¼ÎļþºÍͼÏñ¡£
MySQL
Ö÷ҪĿ±êÊÇ¿ìËÙ¡¢½¡×³ºÍÒ×Óá£×î³õÊÇÒòΪÎÒÃÇÐèÒªÕâÑùÒ»¸öSQL·þÎñÆ÷£¬ËüÄÜ´¦ÀíÓëÈκοɲ»°º¹óÓ²¼þƽ̨ÉÏÌṩÊý¾Ý¿âµÄ³§¼ÒÔÚÒ»¸öÊýÁ¿¼¶ÉϵĴóÐÍÊý¾Ý¿â£¬µ«Ëٶȸü¿ì£¬MySQL¾Í¿ª·¢³öÀ´¡£×Ô1996ÄêÒÔÀ´£¬ÎÒÃÇÒ»Ö±¶¼ÔÚʹÓÃMySQL
£¬Æä»·¾³Óг¬¹ý 40 ¸öÊý¾Ý¿â£¬°üº¬ 10,000¸ö±í£¬ÆäÖÐ500¶à¸ö±í³¬¹ý7°ÙÍòÐУ¬Õâ´óÔ¼ÓÐ100 ¸ö¼ª×Ö½Ú(GB)µÄ¹Ø¼üÓ¦ÓÃÊý¾Ý¡£
MySQL
½¨Á¢µÄ»ù´¡ÊÇÒµÒÑÓÃÔÚ¸ßÒªÇóµÄÉú²ú»·¾³¶àÄêµÄÒ»Ì×ʵÓÃÀý³Ì¡£¾¡¹ÜMySQL
ÈÔÔÚ¿ª·¢ÖУ¬µ«ËüÒѾÌṩһ¸ö·á¸»ºÍ¼«ÆäÓÐÓõŦÄܼ¯¡£
MySQL
µÄ¹Ù·½·¢ÒôÊÇ“My Ess Que
Ell”(²»ÊÇ MY-SEQUEL )¡£
---ÏÔʾÊý¾Ý¿â
show database;
--¸Ä±äÊý¾Ý¿â
use databasena ......
Èç¹û½á¹ûµÄ³¤¶È´óÓÚ·þÎñÆ÷²ÎÊýmax_allowed_packet£¬×Ö·û´®Öµº¯Êý·µ»ØNULL¡£¼û10.2.3 µ÷½Ú·þÎñÆ÷²ÎÊý¡£
¶ÔÓÚÕë¶Ô×Ö·û´®Î»ÖõIJÙ×÷£¬µÚÒ»¸öλÖñ»±ê¼ÇΪ1¡£
ASCII(str)
·µ»Ø×Ö·û´®strµÄ×î×óÃæ×Ö·ûµÄASCII´úÂëÖµ¡£Èç¹ûstrÊÇ¿Õ×Ö·û´®£¬·µ»Ø0¡£Èç¹ûstrÊÇNULL£¬·µ»ØNULL¡£
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII('dx');
-> 100
Ò²¿É²Î¼ûORD()º¯Êý¡£
ORD(str)
Èç¹û×Ö·û´®str×î×óÃæ×Ö·ûÊÇÒ»¸ö¶à×Ö½Ú×Ö·û£¬Í¨¹ýÒÔ¸ñʽ((first byte ASCII code)*256+(second byte
ASCII code))[*256+third byte ASCII
code...]·µ»Ø×Ö·ûµÄASCII´úÂëÖµÀ´·µ»Ø¶à×Ö½Ú×Ö·û´úÂë¡£Èç¹û×î×óÃæµÄ×Ö·û²»ÊÇÒ»¸ö¶à×Ö½Ú×Ö·û¡£·µ»ØÓëASCII()º¯Êý·µ»ØµÄÏàֵͬ¡£
mysql> select ORD('2');
-> 50
CONV(N,from_base,to_base)
ÔÚ²»Í¬µÄÊý×Ö»ùÖ®¼ä±ä»»Êý×Ö¡£·µ»ØÊý×ÖNµÄ×Ö·û´®Êý×Ö£¬´Ófrom_base»ù±ä»»Îªto_base»ù£¬Èç¹ûÈκβÎÊýÊÇNULL£¬·µ»ØNULL¡£²ÎÊýN½âÊÍΪһ¸öÕûÊý£¬µ«ÊÇ¿ÉÒÔÖ¸¶¨ÎªÒ»¸öÕûÊý»òÒ»¸ö×Ö·û´®¡£×îС»ùÊÇ2ÇÒ×î´óµÄ»ùÊÇ36¡£Èç¹ûto_baseÊÇÒ»¸ö¸ºÊý£¬N±»ÈÏΪÊÇÒ»¸öÓзûºÅÊý£ ......
MySQLÖÐÎIJο¼ÊÖ²á- 7 MySQL ÓïÑԲο¼
<!--
body { font-size: 9pt; }
a:hover{color:red;}
a.t1:visited{color:red;}
-->
¶ÔÓÚÿ¸öÀàÐÍÓµÓеÄÖµ·¶Î§ÒÔ¼°²¢ÇÒÖ¸¶¨ÈÕÆÚºÎʱ¼äÖµµÄÓÐЧ¸ñʽµÄÃèÊö¼û7.3.6 ÈÕÆÚºÍʱ¼äÀàÐÍ
¡£
ÕâÀïÊÇÒ»¸öʹÓÃÈÕÆÚº¯ÊýµÄÀý×Ó¡£ÏÂÃæµÄ²éѯѡÔñÁËËùÓмǼ£¬Æädate_col
µÄÖµÊÇÔÚ×îºó30ÌìÒÔÄÚ£º
mysql> SELECT something from table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
·µ»ØÈÕÆÚdate
µÄÐÇÆÚË÷Òý(1
=ÐÇÆÚÌ죬2
=ÐÇÆÚÒ»,
……7
=ÐÇÆÚÁù)¡£ÕâЩË÷ÒýÖµ¶ÔÓ¦ÓÚODBC±ê×¼¡£
mysql> select DAYOFWEEK('1998-02-03');
-> 3
WEEKDAY(date)
·µ»Ødate
µÄÐÇÆÚË÷Òý(0
=ÐÇÆÚÒ»£¬1
=ÐÇÆÚ¶þ,
……6
= ÐÇÆÚÌì)¡£
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> select WEEKDAY('1997-11-05');
-> 2
DAYOFMONTH(date)
·µ»Ødate
µÄÔ·ÝÖÐÈÕÆÚ£¬ÔÚ1
µ½31
·¶Î§ÄÚ¡£
mysql> select DAYOFMONTH('1998-02-03');
-> 3
DAYOFYEAR(date)
·µ»Ødate
ÔÚÒ»ÄêÖеÄÈ ......