我的MYSQL学习心得(一)
我的MYSQL学习心得(一)
使用MYSQL有一段时间了,由于公司使用SQLSERVER和MYSQL,而且服务器数量和数据库数量都比较多
管理起来比较吃力,在学习MYSQL期间我一直跟SQLSERVER进行对比

第一期主要是学习MYSQL的基本语法,陆续还有第二、第三、第四期,大家敬请期待o(∩_∩)o
语法的差异
我这里主要说语法的不同
1、默认约束
区别:mysql里面DEFAULT关键字后面是不用加括号的
--sqlserver
CREATE TABLE emp
(
id INT DEFAULT(12)
) --mysql
CREATE TABLE emp
(
id INT DEFAULT 12
)
2、设置自增列
区别很大,不过好像mysql的自增列不能设置步长的
MYSQL的自增列一定也要是主键列,不是主键列会报错,设置种子值要在表的后面设置
--设置自增列
--sqlserver
CREATE TABLE emp
(
id INT IDENTITY(1, 1)
) --mysql
-- 设置自增ID从N开始
CREATE TABLE emp (
ID INT PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
3、查看表定义
SQLSERVER
EXEC sp_help 'emp'

MYSQL
DESC emp

4、修改表名
修改表名也有差异,将表emp改为emp2
--sqlserver
EXEC sys.[sp_rename] @objname = N'emp', -- nvarchar(1035)
@newname = 'emp2' -- sysname --mysql
ALTER TABLE emp RENAME emp2
5、修改字段的数据类型
将id字段的int类型改为bigint
--sqlserver
ALTER TABLE [dbo].[emp2] ALTER COLUMN [ID] BIGINT --mysql
ALTER TABLE emp2 MODIFY id BIGINT
6、修改字段名
MYSQL里修改字段名的时候需要加上字段的数据类型否则会报错,而CHANGE也可以只修改数据类型,实现和MODIFY同样的效果
方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”
改变数据类型,例如刚才那个例子,将id列改为bigint数据类型
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
ALTER TABLE emp2 CHANGE id iid BIGINT
7、添加字段
添加字段的语法差不多,但是MYSQL里可以使用FIRST和AFTER关键字指定添加的字段的位置
--sqlserver
ALTER TABLE [dbo].[emp2] ADD NAME NVARCHAR(200) NULL --mysql
ALTER TABLE emp2 ADD NAME NVARCHAR(200) NULL
8、删除字段
MYSQL删除字段不需要添加COLUMN关键字的
--sqlserver
ALTER TABLE [dbo].[emp2] DROP COLUMN NAME --mysql
ALTER TABLE emp2 DROP NAME
9、删除外键约束
MYSQL跟SQLSERVER删除约束的方法也有很大的区别
在SQLSERVER里面,无论是唯一约束,check约束还是外键约束都可以使用下面的SQL语句来删除掉
ALTER TABLE 表名 DROP CONSTRAINT 约束名
但是MYSQL里面,如果是外键约束,需要使用 DROP FOREIGN KEY,如果是主键约束需要使用DROP PRIMARY KEY,有点麻烦
--sqlserver
ALTER 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
10、删除表
删除表的语法两个都是一样的
--sqlserver
DROP TABLE [dbo].[emp2] --mysql
DROP TABLE emp2
但是如果要同时删除多个表或者删除之前要先判断一下,MYSQL就方便多了
--sqlserver
IF (OBJECT_ID('dbo.emp2') IS NOT NULL )
DROP TABLE [dbo].[emp2] --mysql
DROP TABLE IF EXISTS emp1 ,emp2
SQLSERVER需要一张一张表判断,然后一张一张表drop
MYSQL就不一样,语法非常简洁: DROP TABLE IF EXISTS emp1 ,emp2
总结
这篇文章只是简单介绍了一下MYSQL跟SQLSERVER的语法方面的差异
以后会写更多关于MYSQL跟SQLERVER差异的文章,和我这段时间使用MYSQL期间的一些心得,大家敬请期待o(∩_∩)o
如有不对的地方,欢迎大家拍砖o(∩_∩)o
我的MYSQL学习心得(一)的更多相关文章
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(七) 查询
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
- 我的MYSQL学习心得(九) 索引
我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(十) 自定义存储过程和函数
我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...
随机推荐
- centos7关闭防火墙(转)
直接命令:service firewalld stop 1. Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# s ...
- 实验数据结构——KMP算法Test.ming
翻译计划 小明初学者C++,它确定了四个算术.关系运算符.逻辑运算.颂值操作.输入输出.使用简单的选择和循环结构.但他的英语不是很好,记住太多的保留字,他利用汉语拼音的保留字,小屋C++,发明 ...
- ./startup.sh: Permission denied
今天在Linux上部署项目,之前报过这个错误,通过下面方式攻克了.如今发出来备份一下: LINUX权限-bash: ./startup.sh: Permission denied 运行./startu ...
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...
- YT新人之巅峰大决战03
题目链接 Problem Description Now give you two integers n m, you just tell me the m-th number after radix ...
- 再谈Hibernate级联删除——JPA下的Hibernate实现一对多级联删除CascadeType.DELETE_ORPHAN
声明: 1.本文系原创,非抄袭或转载过来的. 2.本文论点都亲手做过实验论证. 3.本文所讲的Hibernate配置都基于注解的方式,hbm语法未提供. 非常多人对持久层概念搞不清JPA.Hibern ...
- iOS 9 新特性
这篇文章介绍了iOS9开发相关的简介,现在发布的设备都会搭载iOS9.这篇文章也列出了详细描述新特性的文章. iPad多线程增强 iOS9使用Slider Over, Split View, Pict ...
- ArcMap合并之路 -- 该段路合并成一个完整的路
#1: 用 Arctoolbox\Data Management Tools\Generalization\dissolve 工具 #2: Options:dissolve field 项选" ...
- B/S VS C/S
从软件project的学习到如今的机房合作,我们一直在学习C/S,进入牛腩才正式进入了对B/S的了解,确切点牛腩则是对此的一个过渡,起到了承上启下的作用!看牛腩,事实上最大的感受就是他不止要设计到页面 ...
- Oracle Net Listener Parameters (listener.ora)(转)
12/20 7 Oracle Net Listener Parameters (listener.ora) This chapter provides a complete listing of th ...