一、多數(shù)指令是相同的,包括創(chuàng)建和修正存儲(chǔ)過程的指令。
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)志丹免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
二、很多細(xì)微的指令有不同,具體如下(不僅):
1 mysql支持enum,和set類型,sql server不支持
2 mysql不支持nchar,nvarchar,ntext類型
3 mysql的遞增語句是AUTO_INCREMENT,而mssql是identity(1,1)
MYSQL:create table basic(id int key auto_increment,name varchar(20));
MSSQL: create table basic(id int identity(1,1) , name varchar(20))
4 msms默認(rèn)到處表創(chuàng)建語句的默認(rèn)值表示是((0)),而在mysql里面是不允許帶兩括號的
5 mysql需要為表指定存儲(chǔ)類型
6 mssql識別符是[],[type]表示他區(qū)別于關(guān)鍵字(可選用來包含表名、字段名),但是mysql卻是 `(重音符,也就是按鍵1左邊的那個(gè)符號)
7 mssql支持getdate()方法獲取當(dāng)前時(shí)間日期,但是mysql里面可以分日期類型和時(shí)間類型,獲取當(dāng)前日期是cur_date(),當(dāng)前完整時(shí)間是 now()函數(shù)
8 mssql不支持replace into 語句,但是在最新的sql20008里面,也支持merge語法
9 mysql支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是mssql不支持這樣寫
10 mysql插入多行支持這樣寫 insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1) MSSQL不支持
11 mssql不支持limit語句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數(shù)取代limit N,M
12 mysql在創(chuàng)建表時(shí)要為每個(gè)表指定一個(gè)存儲(chǔ)引擎類型,而mssql只支持一種存儲(chǔ)引擎
13 mysql不支持默認(rèn)值為當(dāng)前時(shí)間的datetime類型(mssql很容易做到),在mysql里面是用timestamp類型
14 mssql里面檢查是否有這個(gè)表再刪除,需要這樣:
if
exists (select * from dbo.sysobjects where id =
object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable')
= 1)
但是在mysql里面只需要 DROP TABLE IF EXISTS cdb_forums;
15 mysql支持無符號型的整數(shù),那么比不支持無符號型的mssql就能多出一倍的最大數(shù)存儲(chǔ)
16 mysql不支持在mssql里面使用非常方便的varchar(max)類型,這個(gè)類型在mssql里面既可做一般數(shù)據(jù)存儲(chǔ),也可以做blob數(shù)據(jù)存儲(chǔ)
17
mysql創(chuàng)建非聚集索引只需要在創(chuàng)建表的時(shí)候指定為key就行,比如:KEY displayorder (fid,displayorder)
在mssql里面必須要:create unique nonclustered index
index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers
(username asc,appid asc)
18 mysql text字段類型不允許有默認(rèn)值
19mysql的一個(gè)表的總共字段長度不超過65XXX。
20一個(gè)很表面的區(qū)別就是mysql的安裝特別簡單,而且文件大小才110M(非安裝版),相比微軟這個(gè)龐然大物,安裝進(jìn)度來說簡直就是.....
21mysql的管理工具有幾個(gè)比較好的,mysql_front,和官方那個(gè)套件,不過都沒有SSMS的使用方便,這是mysql很大的一個(gè)缺點(diǎn)。
22mysql的存儲(chǔ)過程只是出現(xiàn)在最新的版本中,穩(wěn)定性和性能可能不如mssql。
23 同樣的負(fù)載壓力,mysql要消耗更少的CPU和內(nèi)存,mssql的確是很耗資源。
24php連接mysql和mssql的方式都差不多,只需要將函數(shù)的mysql替換成mssql即可。
25mysql支持date,time,year類型,mssql到2008才支持date和time。
26變量賦值
MYsql:變量賦值SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop
MSsql:變量賦值SELECT @min_price=MIN(price),@max_price=MAX(price) FROM shop
三、總的來說,如果是簡單的存儲(chǔ)過程代碼,要修改,不會(huì)太難。如果是復(fù)雜的系統(tǒng),要移植會(huì)很難很難。
echo $result;沒用(沒影響)
select * from ip where ip!='$ipa'
思路不對 在ip表中肯定有不止一條數(shù)據(jù) 所以$result 肯定有值 所以count($array) 肯定成立;
如果你ip表中保持一條數(shù)據(jù)就會(huì)一直執(zhí)行else 因?yàn)槟阌玫氖且慌_電腦 ip一直沒變
1、等于運(yùn)算符:=
“=”是用來判斷數(shù)字、字符串和表達(dá)式是否相等,如果相等,返回值為,否則返回值為0。
如:select 5=6,'9'=9,668=668,'luo'='luo',(2*3)=(4*5),NULL=NULL,0=NULL;
結(jié)論】
1)若有一個(gè)兩個(gè)操作數(shù)為NULL,比較運(yùn)算的結(jié)果就是NULL;
2)同一個(gè)比較運(yùn)算符中兩個(gè)操作數(shù)都是字符串,則按照字符串進(jìn)行比較;
3)若同一個(gè)比較運(yùn)算符中兩個(gè)操作數(shù)都是數(shù)值,則按照數(shù)值進(jìn)行比較;
4)若是一個(gè)數(shù)值和一個(gè)字符串進(jìn)行比較,則MySQL自動(dòng)將字符串轉(zhuǎn)化為數(shù)值;
5)不管何種情況,“=”比較返回的確實(shí)只有1、0與NULL三類值。
2、安全等于運(yùn)算符:=
“=”運(yùn)算符在具備“=”所有功能的基礎(chǔ)上增加了判斷NULL值的功能。
【結(jié)論】
1)“=”運(yùn)算符確實(shí)具備“=”所有功能,返回值也是1、0與NULL;
2)當(dāng)兩個(gè)操作數(shù)均為NULL時(shí),“=”運(yùn)算符返回的結(jié)果為1,而不是NULL;
3)當(dāng)只有一個(gè)操作數(shù)為NULL時(shí),“=”運(yùn)算符返回的結(jié)果也不是NULL而是0。
3、不等于運(yùn)算符:或!=
1)“”或“!=”運(yùn)算符也是可以用于數(shù)字、字符串與表達(dá)式的判斷;
2)其比較邏輯與“=”相反,但返回值也是1、0與NULL。
4、小于或等于運(yùn)算符:=
1)“=”運(yùn)算符也是可以用于數(shù)字、字符串與表達(dá)式的判斷;
2)其邏輯:判斷左邊的操作數(shù)是否小于右邊的操作數(shù),如果是則返回1,否則返回0;
3)針對含有NULL的操作數(shù)則好不猶豫地返回NULL。
5、小于運(yùn)算符:
6、大于或等于運(yùn)算符:=
7、大于運(yùn)算符:
這三類運(yùn)算符與上面的“=”邏輯一致,大家可以自己去分析其過程并得到結(jié)論。
8、IS NULL(ISNULL)、IS NOT NULL運(yùn)算符
1)這類比較運(yùn)算符是用來判斷數(shù)字、字符、表達(dá)式結(jié)果是否為NULL;
2)返回的結(jié)果值有1、0,沒有NULL;
3)IS NULL(ISNULL)與IS NOT NULL返回的值相反。
9、BETWEEN AND運(yùn)算符
其語法格式為“expr BETWEEN min AND max”。
1)這類比較運(yùn)算符是用來判斷數(shù)字、字符、表達(dá)式結(jié)果是否為NULL;
2)返回的結(jié)果值有1、0與NULL;
3)等同于:min = expr =max,即包含上下限的值。
10、IN與NOT IN運(yùn)算符
1)這類比較運(yùn)算符是用來判斷數(shù)字、字符、表達(dá)式結(jié)果是否為NULL;
2)返回的結(jié)果值有1、0與NULL;
3)IN用來判斷操作數(shù)是否為IN列表中的一個(gè)值,如果是則返回1,否則返回0,對于NULL則返回NULL。NOT IN則于IN相反。
11、LIKE運(yùn)算符
其語法格式為“expr LIKE 匹配條件”。
1)LIKE運(yùn)算符用于匹配字符串;
2)返回的結(jié)果值有1、0與NULL;
3)包含兩種通配符?!?”匹配任何字符,甚至包括零字符;“_”只能匹配一個(gè)字符。
12、REGEXP運(yùn)算符
REGEXP是LIKE的逆運(yùn)算。語法格式類似:“expr REGEXP 匹配條件”。只是其包含的通配符更多。
1)^:匹配以該字符后面的字符開頭的字符串;
2)$:匹配以該字符后面的字符結(jié)尾的字符串;
3).:匹配任何一個(gè)單字符;
4)[···]:匹配方括號內(nèi)的任何字符;
5)*:匹配零個(gè)或多個(gè)在它前面的字符。
總結(jié):
1、MySQL支持的比較運(yùn)算符有12類;
2、一個(gè)比較運(yùn)算符的結(jié)果總是1、0或NULL;
3、只有“=”才支持NULL的比較,其他對有NULL操作數(shù)時(shí)返回的結(jié)果就是NULL。