仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1129|回复: 6
打印 上一主题 下一主题

[学习教程] MYSQL教程之我的MYSQL进修心得(一)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:08:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为维持生产环境和非生产环境需要不断地投入管理支持费用MySQL学习教程,最终导致客户为数据库资源投入巨额成本。利用MySQL有一段工夫了,因为公司利用SQLSERVER和MYSQL,并且服务器数目和数据库数目都对照多
办理起来对照费劲,在进修MYSQL时代我一向跟SQLSERVER举行对照


第一期次要是进修MYSQL的基础语法,连续另有第2、第3、第四期,人人敬请等候o(∩_∩)o
语法的差别
我这里次要说语法的分歧
1、默许束缚
区分:mysql内里DEFAULT关头字前面是不必加括号的
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#0000FF]DEFAULT[/color]([color=#800000][b]12[/b][/color][color=#000000]))[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#0000FF]DEFAULT[/color][color=#800000][b]12[/b][/color][color=#000000])[/color]
复制代码



2、设置自增列
区分很年夜,不外仿佛mysql的自增列不克不及设置步长的
MYSQL的自增列必定也如果主键列,不是主键列会报错,设置种子值要在表的前面设置
  1. [color=#008080]--[/color][color=#008080]设置自增列[/color][color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(id[/color][color=#0000FF]INT[/color][color=#FF00FF]IDENTITY[/color]([color=#800000][b]1[/b][/color],[color=#800000][b]1[/b][/color][color=#000000]))[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#008080]--[/color][color=#008080]设置自增ID从N入手下手[/color][color=#0000FF]CREATE[/color][color=#0000FF]TABLE[/color][color=#000000]emp(ID[/color][color=#0000FF]INT[/color][color=#0000FF][url=http://pr.knowsky.com/]PR[/url]IMARY[/color][color=#0000FF]KEY[/color][color=#000000]AUTO_INCREMENT)AUTO_INCREMENT[/color][color=#808080]=[/color][color=#800000][b]100[/b][/color];[color=#008080]--[/color][color=#008080](设置自增ID从100入手下手)[/color]
复制代码






3、检察表界说
SQLSERVER
  1. [color=#0000FF]EXEC[/color]sp_help[color=#FF0000][/color][color=#FF0000]emp[/color][color=#FF0000][/color]
复制代码


MYSQL
  1. [color=#0000FF]DESC[/color]emp
复制代码


4、修正表名
修正表名也有差别,将表emp改成emp2
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]EXEC[/color]sys.[color=#FF0000][[/color][color=#FF0000]sp_rename[/color][color=#FF0000]][/color][color=#008000]@objname[/color][color=#808080]=[/color]N[color=#FF0000][/color][color=#FF0000]emp[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]nvarchar(1035)[/color][color=#008000]@newname[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]emp2[/color][color=#FF0000][/color][color=#008080]--[/color][color=#008080]sysname[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]empRENAMEemp2
复制代码



5、修正字段的数据范例
将id字段的int范例改成bigint
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]ALTER[/color][color=#0000FF]COLUMN[/color][color=#FF0000][[/color][color=#FF0000]ID[/color][color=#FF0000]][/color][color=#0000FF]BIGINT[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2MODIFYid[color=#0000FF]BIGINT[/color]
复制代码


6、修正字段名
MYSQL里修正字段名的时分必要加上字段的数据范例不然会报错,而CHANGE也能够只修正数据范例,完成和MODIFY一样的效果
办法是将SQL语句中的“新字段名”和“旧字段名”设置为不异的称号,只改动“数据范例”
改动数据范例,比方方才谁人例子,将id列改成bigint数据范例
  1. [color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2CHANGEidid[color=#0000FF]BIGINT[/color]
复制代码

修正字段名
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]EXEC[/color]sys.[color=#FF0000][[/color][color=#FF0000]sp_rename[/color][color=#FF0000]][/color][color=#008000]@objname[/color][color=#808080]=[/color]N[color=#FF0000][/color][color=#FF0000]emp2.id[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]nvarchar(1035)[/color][color=#008000]@newname[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]iid[/color][color=#FF0000][/color],[color=#008080]--[/color][color=#008080]sysname[/color][color=#008000]@objtype[/color][color=#808080]=[/color][color=#FF0000][/color][color=#FF0000]column[/color][color=#FF0000][/color][color=#008080]--[/color][color=#008080]varchar(13)[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2CHANGEidiid[color=#0000FF]BIGINT[/color]
复制代码



7、增加字段
增加字段的语法差未几,可是MYSQL里可使用FIRSTAFTER关头字指定增加的字段的地位
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]ADD[/color]NAME[color=#0000FF]NVARCHAR[/color]([color=#800000][b]200[/b][/color])[color=#0000FF]NULL[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]ADD[/color]NAME[color=#0000FF]NVARCHAR[/color]([color=#800000][b]200[/b][/color])[color=#0000FF]NULL[/color]
复制代码




8、删除字段
MYSQL删除字段不必要增加COLUMN关头字的
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#0000FF]DROP[/color][color=#0000FF]COLUMN[/color][color=#000000]NAME[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color]NAME
复制代码


9、删除外键束缚
MYSQL跟SQLSERVER删除束缚的办法也有很年夜的区分
在SQLSERVER内里,不管是独一束缚,check束缚仍是外键束缚都可使用上面的SQL语句来删撤除
  1. [color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]表名[color=#0000FF]DROP[/color][color=#0000FF]CONSTRAINT[/color]束缚名
复制代码
可是MYSQL内里,假如是外键束缚,必要利用DROPFOREIGNKEY,假如是主键束缚必要利用DROPPRIMARYKEY,有点贫苦
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]dbo.emp2[color=#0000FF]DROP[/color][color=#0000FF]CONSTRAINT[/color][color=#000000]fk_emp_dept[/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#008080]--[/color][color=#008080]删除外键束缚[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color][color=#0000FF]FOREIGN[/color][color=#0000FF]KEY[/color][color=#000000]fk_emp_dept[/color][color=#008080]--[/color][color=#008080]删除主键束缚[/color][color=#0000FF]ALTER[/color][color=#0000FF]TABLE[/color]emp2[color=#0000FF]DROP[/color][color=#0000FF]PRIMARY[/color][color=#0000FF]KEY[/color]pk_emp_dept
复制代码




10、删除表
删除表的语法两个都是一样的
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color]emp2
复制代码


可是假如要同时删除多个表大概删除之前要先判别一下,MYSQL就便利多了
  1. [color=#008080]--[/color][color=#008080]sqlserver[/color][color=#0000FF]IF[/color]([color=#FF00FF]OBJECT_ID[/color]([color=#FF0000][/color][color=#FF0000]dbo.emp2[/color][color=#FF0000][/color])[color=#0000FF]IS[/color][color=#808080]NOT[/color][color=#0000FF]NULL[/color][color=#000000])[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#FF0000][[/color][color=#FF0000]dbo[/color][color=#FF0000]][/color].[color=#FF0000][[/color][color=#FF0000]emp2[/color][color=#FF0000]][/color][color=#008080]--[/color][color=#008080]mysql[/color][color=#0000FF]DROP[/color][color=#0000FF]TABLE[/color][color=#0000FF]IF[/color][color=#808080]EXISTS[/color]emp1,emp2
复制代码


SQLSERVER必要一张一张表判别,然后一张一张表drop
MYSQL就纷歧样,语法十分简便:DROPTABLEIFEXISTSemp1,emp2

总结
这篇文章只是复杂先容了一下MYSQL跟SQLSERVER的语法方面的差别
今后会写更多关于MYSQL跟SQLERVER差别的文章,和我这段工夫利用MYSQL时代的一些心得,人人敬请等候o(∩_∩)o
你会发现实际上MySQL可以更少地占用资金,前者的每CPU许可费用一般从4000美元到25000美元不等,而MySQL企业版的支持和维护成本就更低了。
再现理想 该用户已被删除
沙发
发表于 2015-1-18 18:04:41 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-24 14:39:29 来自手机 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
蒙在股里 该用户已被删除
地板
发表于 2015-2-1 17:12:05 | 只看该作者
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
只想知道 该用户已被删除
5#
发表于 2015-2-7 12:17:25 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-21 22:22:58 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-13 22:09:55 | 只看该作者
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表