|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
为维持生产环境和非生产环境需要不断地投入管理支持费用MySQL学习教程,最终导致客户为数据库资源投入巨额成本。利用MySQL有一段工夫了,因为公司利用SQLSERVER和MYSQL,并且服务器数目和数据库数目都对照多
办理起来对照费劲,在进修MYSQL时代我一向跟SQLSERVER举行对照
第一期次要是进修MYSQL的基础语法,连续另有第2、第3、第四期,人人敬请等候o(∩_∩)o
语法的差别
我这里次要说语法的分歧
1、默许束缚
区分:mysql内里DEFAULT关头字前面是不必加括号的
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#0000FF]DEFAULT[/color]([color=#800000][b]12[/b][/color][color=#000000]))[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#0000FF]DEFAULT[/color][color=#800000][b]12[/b][/color][color=#000000])[/color]
复制代码
2、设置自增列
区分很年夜,不外仿佛mysql的自增列不克不及设置步长的
MYSQL的自增列必定也如果主键列,不是主键列会报错,设置种子值要在表的前面设置
- [color=#008080]--[/color][color=#008080]设置自增列[/color][color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#FF00FF]IDENTITY[/color]([color=#800000][b]1[/b][/color],[color=#800000][b]1[/b][/color][color=#000000]))[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#008080]--[/color][color=#008080]设置自增ID从N入手下手[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(ID[/color][color=#0000FF]INT[/color][color=#0000FF][url=http://pr.knowsky.com/]PR[/url]IMARY[/color][color=#0000FF]KEY[/color][color=#000000]AUTO_INCREMENT)AUTO_INCREMENT[/color][color=#808080]=[/color][color=#800000][b]100[/b][/color];[color=#008080]--[/color][color=#008080](设置自增ID从100入手下手)[/color]
复制代码
3、检察表界说
SQLSERVER- [color=#0000FF]EXEC[/color]sp_help[color=#FF0000][/color][color=#FF0000]emp[/color][color=#FF0000][/color]
复制代码
MYSQL- [color=#0000FF]DESC[/color]emp
复制代码
4、修正表名
修正表名也有差别,将表emp改成emp2
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]EXEC[/color]sys.[color=#FF0000][[/color][color=#FF0000]sp_rename[/color][color=#FF0000]][/color][color=#008000]@objname[/color][color=#808080]=[/color]N[color=#FF0000][/color][color=#FF0000]emp[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]nvarchar(1035)[/color][color=#008000]@newname[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]emp2[/color][color=#FF0000][/color][color=#008080]--[/color][color=#008080]sysname[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]empRENAMEemp2
复制代码
5、修正字段的数据范例
将id字段的int范例改成bigint- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]ALTER[/color][color=#0000FF]COLUMN[/color][color=#FF0000][[/color][color=#FF0000]ID[/color][color=#FF0000]][/color][color=#0000FF]BIGINT[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2MODIFYid[color=#0000FF]BIGINT[/color]
复制代码
6、修正字段名
MYSQL里修正字段名的时分必要加上字段的数据范例不然会报错,而CHANGE也能够只修正数据范例,完成和MODIFY一样的效果
办法是将SQL语句中的“新字段名”和“旧字段名”设置为不异的称号,只改动“数据范例”
改动数据范例,比方方才谁人例子,将id列改成bigint数据范例- [color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2CHANGEidid[color=#0000FF]BIGINT[/color]
复制代码
修正字段名
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]EXEC[/color]sys.[color=#FF0000][[/color][color=#FF0000]sp_rename[/color][color=#FF0000]][/color][color=#008000]@objname[/color][color=#808080]=[/color]N[color=#FF0000][/color][color=#FF0000]emp2.id[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]nvarchar(1035)[/color][color=#008000]@newname[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]iid[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]sysname[/color][color=#008000]@objtype[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]column[/color][color=#FF0000][/color][color=#008080]--[/color][color=#008080]varchar(13)[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2CHANGEidiid[color=#0000FF]BIGINT[/color]
复制代码
7、增加字段
增加字段的语法差未几,可是MYSQL里可使用FIRST和AFTER关头字指定增加的字段的地位
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]ADD[/color]NAME[color=#0000FF]NVARCHAR[/color]([color=#800000][b]200[/b][/color])[color=#0000FF]NULL[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]ADD[/color]NAME[color=#0000FF]NVARCHAR[/color]([color=#800000][b]200[/b][/color])[color=#0000FF]NULL[/color]
复制代码
8、删除字段
MYSQL删除字段不必要增加COLUMN关头字的- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]DROP[/color][color=#0000FF]COLUMN[/color][color=#000000]NAME[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color]NAME
复制代码
9、删除外键束缚
MYSQL跟SQLSERVER删除束缚的办法也有很年夜的区分
在SQLSERVER内里,不管是独一束缚,check束缚仍是外键束缚都可使用上面的SQL语句来删撤除- [color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]表名[color=#0000FF]DROP[/color][color=#0000FF]CONSTRAINT[/color]束缚名
复制代码 可是MYSQL内里,假如是外键束缚,必要利用DROPFOREIGNKEY,假如是主键束缚必要利用DROPPRIMARYKEY,有点贫苦
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]dbo.emp2[color=#0000FF]DROP[/color][color=#0000FF]CONSTRAINT[/color][color=#000000]fk_emp_dept[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#008080]--[/color][color=#008080]删除外键束缚[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color][color=#0000FF]FOREIGN[/color][color=#0000FF]KEY[/color][color=#000000]fk_emp_dept[/color][color=#008080]--[/color][color=#008080]删除主键束缚[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color][color=#0000FF]PRIMARY[/color][color=#0000FF]KEY[/color]pk_emp_dept
复制代码
10、删除表
删除表的语法两个都是一样的
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color]emp2
复制代码
可是假如要同时删除多个表大概删除之前要先判别一下,MYSQL就便利多了
- [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]IF[/color]([color=#FF00FF]OBJECT_ID[/color]([color=#FF0000][/color][color=#FF0000]dbo.emp2[/color][color=#FF0000][/color])[color=#0000FF]IS[/color][color=#808080]NOT[/color][color=#0000FF]NULL[/color][color=#000000])[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#0000FF]IF[/color][color=#808080]EXISTS[/color]emp1,emp2
复制代码
SQLSERVER必要一张一张表判别,然后一张一张表drop
MYSQL就纷歧样,语法十分简便:DROPTABLEIFEXISTSemp1,emp2
总结
这篇文章只是复杂先容了一下MYSQL跟SQLSERVER的语法方面的差别
今后会写更多关于MYSQL跟SQLERVER差别的文章,和我这段工夫利用MYSQL时代的一些心得,人人敬请等候o(∩_∩)o
你会发现实际上MySQL可以更少地占用资金,前者的每CPU许可费用一般从4000美元到25000美元不等,而MySQL企业版的支持和维护成本就更低了。 |
|