我的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学习心 ...
随机推荐
- 使用GDAL图书馆RPC校正问题
很快就会GDAL库更新1.11版本号之后,在发现之前写RPC像方误差修正模型校准结果特别大(在更新结果之前的版本号和PCI结果一致).所以初步推断是GDAL库的bug,经过各个參数改动发现原来是指定的 ...
- RSA算法加密解密
该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1. jar 注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块 ...
- [LeetCode203]Remove Linked List Elements
题目: Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 ...
- 解决linux看温度是报错No sensors found问题
今日因为同事的linuxserver频繁死机,其型号和配置与我的一致,故此与其对照了一下server的内存使用率.CPU使用率.温度等信息. 在对照温度信息的时候发现无法使用sensors进行温度查看 ...
- 怎样配置git ssh连接,怎样在GitHub上加入协作开发人员,怎样配置gitignore和怎样在GitHub上删除资源库.
**********1.在运行git push origin master指令时报例如以下错误: iluckysi@ILUCKYSI-PC /d/ilucky/message/code (master ...
- 开源Math.NET基础数学类库使用(09)相关数论函数使用
原文:[原创]开源Math.NET基础数学类库使用(09)相关数论函数使用 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4 ...
- Android Tween Animation
View Animation, 它显示在view向上Tween Animation Tween动画.本质上没有变化View对象本身.只要改变它绘制 实施方式有两种.一个xml定义,直接在代码中的定义 ...
- 两次fclose引发的血案
代码本来在Windows上开发的,功能基本完毕迁移到Linux上,结果一跑,乱象重重.这里只列出两个. 一崩溃: /mnt/diskc/db/app/bin/mysqld: double free ...
- Android+NDK+CDT+eclipse+OPenGL ES编制和native调试
周围环境: NDK版本号r8,eclipse和Android运用adt-bundle-windows-x86打包版本是更方便, 一.NDK汇集 1.源代码 NDK的examples文件夹中有Hello ...
- 如何嗅闻交换网络和ARP骗子-ARP解释的原则
在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(sniff)不为网络安全是好事,虽然网络管理员能够跟踪数据包,发现 互联网问题,但前提是,如果破坏者使用.在整个网络带来了严重的安全威胁. 至于 ...