Heim > Datenbank > MySQL-Tutorial > 我的MYSQL学习心得(一)_MySQL

我的MYSQL学习心得(一)_MySQL

WBOY
Freigeben: 2016-06-01 13:16:59
Original
1660 Leute haben es durchsucht

我的MYSQL学习心得(一)

使用MYSQL有一段时间了,由于公司使用SQLSERVER和MYSQL,而且服务器数量和数据库数量都比较多

管理起来比较吃力,在学习MYSQL期间我一直跟SQLSERVER进行对比

 

第一期主要是学习MYSQL的基本语法,陆续还有第二、第三、第四期,大家敬请期待o(∩_∩)o 


语法的差异

我这里主要说语法的不同

1、默认约束

区别:mysql里面DEFAULT关键字后面是不用加括号的

--sqlserverCREATE TABLE emp(id INT DEFAULT(12))--mysqlCREATE TABLE emp(id INT DEFAULT 12)
Nach dem Login kopieren

 

2、设置自增列

区别很大,不过好像mysql的自增列不能设置步长的

MYSQL的自增列一定也要是主键列,不是主键列会报错,设置种子值要在表的后面设置

--设置自增列--sqlserverCREATE TABLE emp    (      id INT IDENTITY(1, 1)    )--mysql-- 设置自增ID从N开始CREATE TABLE emp (ID INT  PRIMARY KEY AUTO_INCREMENT) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
Nach dem Login kopieren

 

 

 

 

 3、查看表定义

SQLSERVER

EXEC sp_help 'emp'
Nach dem Login kopieren

 

MYSQL

DESC emp
Nach dem Login kopieren

 

4、修改表名

修改表名也有差异,将表emp改为emp2

--sqlserverEXEC sys.[sp_rename] @objname = N'emp', -- nvarchar(1035)    @newname = 'emp2' -- sysname--mysqlALTER TABLE emp RENAME emp2
Nach dem Login kopieren

 

5、修改字段的数据类型

将id字段的int类型改为bigint

--sqlserverALTER TABLE [dbo].[emp2] ALTER COLUMN [ID] BIGINT--mysqlALTER TABLE emp2 MODIFY id BIGINT
Nach dem Login kopieren

 

 

6、修改字段名

MYSQL里修改字段名的时候需要加上字段的数据类型否则会报错,而CHANGE也可以只修改数据类型,实现和MODIFY同样的效果

方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”

改变数据类型,例如刚才那个例子,将id列改为bigint数据类型

ALTER TABLE emp2 CHANGE id id BIGINT
Nach dem Login kopieren

 

修改字段名

--sqlserverEXEC sys.[sp_rename] @objname = N'emp2.id', -- nvarchar(1035)    @newname = 'iid', -- sysname    @objtype = 'column' -- varchar(13)--mysqlALTER TABLE emp2 CHANGE id iid BIGINT
Nach dem Login kopieren

 

7、添加字段

 添加字段的语法差不多,但是MYSQL里可以使用FIRSTAFTER关键字指定添加的字段的位置

--sqlserverALTER TABLE [dbo].[emp2] ADD NAME NVARCHAR(200) NULL --mysqlALTER TABLE emp2 ADD NAME NVARCHAR(200)  NULL
Nach dem Login kopieren

 

 

8、删除字段

MYSQL删除字段不需要添加COLUMN关键字的

--sqlserverALTER TABLE [dbo].[emp2] DROP COLUMN NAME --mysqlALTER TABLE emp2 DROP NAME
Nach dem Login kopieren

 

 

9、删除外键约束

MYSQL跟SQLSERVER删除约束的方法也有很大的区别

在SQLSERVER里面,无论是唯一约束,check约束还是外键约束都可以使用下面的SQL语句来删除掉

ALTER TABLE 表名 DROP CONSTRAINT 约束名
Nach dem Login kopieren

但是MYSQL里面,如果是外键约束,需要使用 DROP FOREIGN KEY,如果是主键约束需要使用DROP PRIMARY KEY,有点麻烦

--sqlserverALTER TABLE dbo.emp2 DROP CONSTRAINT fk_emp_dept--mysql--删除外键约束ALTER TABLE emp2 DROP FOREIGN KEY fk_emp_dept--删除主键约束ALTER TABLE emp2 DROP PRIMARY KEY pk_emp_dept
Nach dem Login kopieren

 

 

 10、删除表

删除表的语法两个都是一样的

--sqlserverDROP TABLE [dbo].[emp2]--mysqlDROP TABLE emp2
Nach dem Login kopieren

但是如果要同时删除多个表或者删除之前要先判断一下,MYSQL就方便多了

--sqlserverIF (OBJECT_ID('dbo.emp2') IS NOT NULL )DROP TABLE [dbo].[emp2]--mysqlDROP TABLE IF EXISTS emp1 ,emp2
Nach dem Login kopieren

SQLSERVER需要一张一张表判断,然后一张一张表drop

MYSQL就不一样,语法非常简洁: DROP TABLE IF EXISTS emp1 ,emp2 

 


总结

这篇文章只是简单介绍了一下MYSQL跟SQLSERVER的语法方面的差异

以后会写更多关于MYSQL跟SQLERVER差异的文章,和我这段时间使用MYSQL期间的一些心得,大家敬请期待o(∩_∩)o 

 

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage