继上篇 MySQL 基本操作语句 后,个人测试和补充了 SqlServer 与 MySQL 的 基本操作语句对比,主要是对比SQL命令的一些差异,不作更多说明。
(由于mysql 没有系统学习过,欢迎大侠们拍砖~~O(∩_∩)O~)
SqlServer版本:SqlServer 2008
MySQL版本: MySQL 5.5
执行符号:
MySQL :分号';'
SqlServer :字符'GO'
自增列:MySQL必须要索引,不能设置增量;
默认值:MySQL默认值不用加括号;SqlServer可加或不加;
--MySQL
CREATE TABLE tabName(
ID INTPRIMARY KEY AUTO_INCREMENT,
Value INTDEFAULT 12
) AUTO_INCREMENT= 100 ENGINE=MyISAM DEFAULT CHARSET=utf8;
--SqlServer
CREATE TABLE tabName(
ID INTIDENTITY(100,1)PRIMARY KEY,
Value INTDEFAULT(12)
)
查看表结构定义:
--SqlServer
EXEC sp_help'tabName'
--MySQL
DESC tabName
更改表名:
--SqlServer
EXEC sys.sp_rename@objname= N'tabName',@newname = 'newTabName'
--MySQL
ALTER TABLE tabName RENAME newTabName
更改字段类型:
--SqlServer
ALTER TABLE[dbo].[tabName]ALTER COLUMN [ID] BIGINT
--MySQL
ALTER TABLE tabName MODIFY IDBIGINT
更改字段名:
--SqlServer
EXEC sys.sp_rename@objname= N'tabName.ID',@newname= 'IewID',@objtype= 'column'
--MySQL
ALTER TABLE tabName CHANGE IDIewID BIGINT
添加字段:(一样)
--SqlServer
ALTER TABLE[dbo].[tabName]ADD NAME NVARCHAR(200)NULL
--MySQL
ALTER TABLE tabName ADD NAMENVARCHAR(200)NULL
删除字段:
--SqlServer
ALTER TABLE[dbo].[tabName]DROP COLUMN NAME
--MySQL
ALTER TABLE tabName DROP NAME
添加主键/外键或约束:
--SqlServer
ALTER TABLE[dbo].[tabName]ADD CONSTRAINT pk_tabNamePRIMARY KEY (id);
--MySQL
ALTER TABLEtabName ADD CONSTRAINT pk_tabNamePRIMARYKEY tabName(id);
ALTER TABLEsubTabName ADD CONSTRAINT fk_subTabName_tabNameFOREIGNKEY subTabName(fid)REFERENCES tabName(id);
删除主键/外键或约束:
--SqlServer(统一语法)
ALTER TABLE[dbo].[tabName]DROP CONSTRAINT pk_tabName
--MySQL
ALTER TABLEtabName DROP CONSTRAINT constaintName
ALTER TABLEtabName DROP PRIMARY KEY pk_tabName
ALTER TABLE subTabName DROP FOREIGNKEY fk_subTabName_tabName
删除表:
--SqlServer
DROP TABLEtabName,TabName2;
--MySQL
DROP TABLE IF EXISTS tabName,TabName2;
#######################################################################################
创建视图:
--MySQL
CREATE ORREPLACE VIEW VtabName
AS
SELECT *FROM tabName
WITH CHECK OPTION;
--SqlServer
CREATE VIEWVtabName
AS
SELECT *FROM tabName
WITH CHECK OPTION;
视图结构和定义:
--MySQL
DESC VtabName;
SHOW CREATEVIEW VtabName;
SHOW TABLE STATUS LIKE 'VtabName';
--SqlServer
sp_help VtabName
sp_helptext VtabName
删除视图:
--MySQL
DROP VIEWtabName;
DROP VIEW IF EXISTS tabName;
--SqlServer
DROP VIEWtabName;
#######################################################################################
创建索引:
--MySQL
CREATE TABLEtabName( id INT NOTNULL,KEY indName(id));
ALTER TABLEtabName ADD INDEX indName(Value);
CREATE UNIQUE INDEX indName ONtabName(Value);
--SqlServer
CREATE TABLE tabName(IDINT IDENTITY(100,1)CONSTRAINT PK_tabNamePRIMARYKEY)
CREATE UNIQUE INDEX indName ONtabName(Value);
重建索引:
--MySQL
REPAIR TABLE tabName QUICK;
--SqlServer
DBCC DBREINDEX('dbo.tabName','',100)
ALTER INDEXindName ON tabName REBUILD;
ALTER INDEX ALL ON tabNameREORGANIZE;
删除索引:
--MySQL
ALTER TABLEtabName DROP INDEX indName;
ALTER TABLEtabName DROP PRIMARY KEY pk_tabName;
ALTER TABLEsubTabName DROP FOREIGN KEY fk_subTabName_tabName;
DROP INDEX indName ON tabName;
--SqlServer
DROP INDEX indName ON tabName;
ALTER TABLE tabName DROP CONSTRAINTPK_tabName
查看索引:
--MySQL
SHOW INDEX FROM tabName;
--SqlServer
SELECT