《MysqL必读与MSsql对比学习MysqL的心得(一)--基本语法》要点:
本文介绍了MysqL必读与MSsql对比学习MysqL的心得(一)--基本语法,希望对您有用。如果有疑问,可以联系我们。
MysqL入门这一期主要是学习MysqL的基本语法,陆续还会有续期的文章,敬请期待
MysqL入门语法的差异
MysqL入门我这里主要说语法的不同
MysqL入门1、默认约束
MysqL入门区别:MysqL里面DEFAulT关键字后面是不用加括号的
代码如下:--sqlserver
CREATE table emp
(
ID INT DEFAulT(12)
)
--MysqL
CREATE table emp
(
ID INT DEFAulT 12
)
MysqL入门2、设置自增列
MysqL入门区别很大,不过好像MysqL的自增列不能设置步长的
MysqL入门MysqL的自增列一定也要是主键列,不是主键列会报错,设置种子值要在表的后面设置
代码如下:--设置自增列
--sqlserver
CREATE table emp
(
ID INT IDENTITY(1,1)
)
MysqL入门--MysqL
-- 设置自增ID从N开始
CREATE table emp (
ID INT PRIMARY KEY auto_INCREMENT
) auto_INCREMENT = 100 ; --(设置自增ID从100开始)
MysqL入门顺便说一下MysqL获取当前表的自增值的四种方法
MysqL入门1、 SELECT MAX(ID) FROM person
MysqL入门2、 SELECT LAST_INSERT_ID() 函数
MysqL入门LAST_INSERT_ID 是与表无关的,不建议使用
MysqL入门3、 SELECT @@IDentity
MysqL入门@@IDentity 是表示的是最近一次向具有IDentity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量.
MysqL入门一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头.
MysqL入门使用@@IDentity的前提是在进行insert *** 作后,执行select @@IDentity的时候连接没有关闭,否则得到的将是NulL值.
MysqL入门4. SHOW table STATUS liKE 'person'
MysqL入门建议使用这一种方法
MysqL入门得出的结果里边对应表名记录中有个auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.
MysqL入门3、查看表定义
MysqL入门sqlSERVER
MysqL入门EXEC sp_help 'emp'
MysqL入门
MysqL入门MysqL
MysqL入门DESC emp
MysqL入门
MysqL入门4、修改表名
MysqL入门修改表名也有差异,将表emp改为emp2
代码如下:--sqlserver
EXEC sys.[sp_rename] @objname = N'emp',-- nvarchar(1035)
@newname = 'emp2' -- sysname
--MysqL
ALTER table emp REname emp2
MysqL入门5、修改字段的数据类型
MysqL入门将ID字段的int类型改为bigint
代码如下:--sqlserver
ALTER table [dbo].[emp2] ALTER ColUMN [ID] BIGINT
MysqL入门--MysqL
ALTER table emp2 MODIFY ID BIGINT
MysqL入门6、修改字段名
MysqL入门MysqL里修改字段名的时候需要加上字段的数据类型否则会报错,而CHANGE也可以只修改数据类型,实现和MODIFY同样的效果
MysqL入门方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”
MysqL入门改变数据类型,例如刚才那个例子,将ID列改为bigint数据类型
MysqL入门ALTER table emp2 CHANGE ID ID BIGINT
修改字段名
--sqlserver
EXEC sys.[sp_rename] @objname = N'emp2.ID',-- nvarchar(1035)
@newname = 'iID',-- sysname
@objtype = 'column' -- varchar(13)
MysqL入门--MysqL
ALTER table emp2 CHANGE ID iID BIGINT
MysqL入门7、添加字段
MysqL入门 添加字段的语法差不多,但是MysqL里可以使用FirsT和AFTER关键字指定添加的字段的位置
代码如下:--sqlserver
ALTER table [dbo].[emp2] ADD name NVARCHAR(200) NulL
MysqL入门--MysqL
ALTER table emp2 ADD name NVARCHAR(200) NulL
MysqL入门8、删除字段
MysqL入门MysqL删除字段不需要添加ColUMN关键字的
代码如下:--sqlserver
ALTER table [dbo].[emp2] DROP ColUMN name
MysqL入门--MysqL
ALTER table emp2 DROP name
MysqL入门9、删除外键约束
MysqL入门MysqL跟sqlSERVER删除约束的方法也有很大的区别
MysqL入门在sqlSERVER里面,无论是唯一约束,check约束还是外键约束都可以使用下面的SQL语句来删除掉
MysqL入门ALTER table 表名 DROP CONSTRAINT 约束名
但是MysqL里面,如果是外键约束,需要使用 DROP FOREIGN KEY,如果是主键约束需要使用DROP PRIMARY KEY,有点麻烦
--sqlserver
ALTER table dbo.emp2 DROP CONSTRAINT fk_emp_dept
MysqL入门--MysqL
--删除外键约束
ALTER table emp2 DROP FOREIGN KEY fk_emp_dept
--删除主键约束
ALTER table emp2 DROP PRIMARY KEY pk_emp_dept
MysqL入门10、删除表
MysqL入门删除表的语法两个都是一样的
代码如下:--sqlserver
DROP table [dbo].[emp2]
MysqL入门--MysqL
DROP table emp2
MysqL入门但是如果要同时删除多个表或者删除之前要先判断一下,MysqL就方便多了
代码如下:--sqlserver
IF (OBJECT_ID('dbo.emp2') IS NOT NulL )
DROP table [dbo].[emp2]
MysqL入门--MysqL
DROP table IF EXISTS emp1,emp2
MysqL入门sqlSERVER需要一张一张表判断,然后一张一张表drop
MysqL入门MysqL就不一样,语法非常简洁: DROP table IF EXISTS emp1,emp2
MysqL入门总结
MysqL入门这篇文章只是简单介绍了一下MysqL跟sqlSERVER的语法方面的差异
MysqL入门以后会写更多关于MysqL跟sqlERVER差异的文章,和我这段时间使用MysqL期间的一些心得,大家敬请期待o(∩_∩)o
总结以上是内存溢出为你收集整理的Mysql必读与MSSQL对比学习MYSQL的心得(一)--基本语法全部内容,希望文章能够帮你解决Mysql必读与MSSQL对比学习MYSQL的心得(一)--基本语法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)