我的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学习心 ...
随机推荐
- [cocos2dx笔记008]cocos2d 用luabridge手动绑定类
基于cocos2dx 2.2.2版本号.这几天使用了cocostudio实现了,动画.骨骼动画.UI编辑.粒子效果,尽管有些不足,但已经算是很好了.今天尝试用lua.这个很easy.创建的时候.设置语 ...
- python中使用traceback来追踪异常
test1.py中,当分母为0的时候,调用系统退出 #!/usr/bin/python import sys def division(a=1, b=1): if b==0: print 'b eq ...
- Android适应方案汇总(三)
在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...
- 关与 Visual.Assist.X.V10.7.1912的Crack破解补丁(vs 番茄插件的key破解方法)
在win7系统下, 我用的是vs2012版本号. Visual Assist沿用了快10年的界面,最终有了更新,变得更加适合Win8 以及 VS2012的主题风格了 ,这也是以后软件的发展趋势,仅仅是 ...
- 点击搜索取消UISearchDisplayController的搜索状态
一般,我们用到UISearchDisplayController的时候,都是须要对一个数据源进行刷选,在UISearchDisplayController自带的tableView中展示出来,然后点击退 ...
- mybaits使用存储过程
如何使用Mybaits调用数据库存储过程,按以下顺序Oracle案例库: 1.在数据库中创建以下存储过程: create or replace procedure pro_hello(p_result ...
- Zygote过程【3】——SystemServer诞生
欢迎转载.转载请注明:http://blog.csdn.net/zhgxhuaa 在ZygoteInit的main()方法中做了几件大事.当中一件便是启动Systemserver进程.代码例如以下: ...
- java编程接口(6) ------ 图标
本文提出了自己的学习笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 能够在JLable或者不论什么从AbstractButton继承的组件使用Ic ...
- ZooKeeper实践方案:(7) 分布式锁
1.基本介绍 分布式锁是控制分布式系统之间同步訪问共享资源的一种方式,须要相互排斥来防止彼此干扰来保证一致性. 利用Zookeeper的强一致性能够完毕锁服务.Zookeeper的官方文档是列举了两种 ...
- grep在一个特定的文件搜索文件夹keyword
grep -R --include="*.*"(文件名匹配) key(keyword) dir(夹) eg.在当前文件夹搜索xml关键文件172.19.32.22 grep -R ...