爱飞 发表于 2015-1-16 20:08:23

MYSQL教程之我的MYSQL进修心得(一)

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


第一期次要是进修MYSQL的基础语法,连续另有第2、第3、第四期,人人敬请等候o(∩_∩)o
语法的差别
我这里次要说语法的分歧
1、默许束缚
区分:mysql内里DEFAULT关头字前面是不必加括号的

--sqlserverCREATETABLEemp(idINTDEFAULT(12))--mysqlCREATETABLEemp(idINTDEFAULT12)


2、设置自增列
区分很年夜,不外仿佛mysql的自增列不克不及设置步长的
MYSQL的自增列必定也如果主键列,不是主键列会报错,设置种子值要在表的前面设置

--设置自增列--sqlserverCREATETABLEemp(idINTIDENTITY(1,1))--mysql--设置自增ID从N入手下手CREATETABLEemp(IDINTPRIMARYKEYAUTO_INCREMENT)AUTO_INCREMENT=100;--(设置自增ID从100入手下手)





3、检察表界说
SQLSERVER
EXECsp_helpemp


MYSQL
DESCemp


4、修正表名
修正表名也有差别,将表emp改成emp2

--sqlserverEXECsys.[sp_rename]@objname=Nemp,--nvarchar(1035)@newname=emp2--sysname--mysqlALTERTABLEempRENAMEemp2


5、修正字段的数据范例
将id字段的int范例改成bigint
--sqlserverALTERTABLE[dbo].[emp2]ALTERCOLUMN[ID]BIGINT--mysqlALTERTABLEemp2MODIFYidBIGINT


6、修正字段名
MYSQL里修正字段名的时分必要加上字段的数据范例不然会报错,而CHANGE也能够只修正数据范例,完成和MODIFY一样的效果
办法是将SQL语句中的“新字段名”和“旧字段名”设置为不异的称号,只改动“数据范例”
改动数据范例,比方方才谁人例子,将id列改成bigint数据范例
ALTERTABLEemp2CHANGEididBIGINT

修正字段名

--sqlserverEXECsys.[sp_rename]@objname=Nemp2.id,--nvarchar(1035)@newname=iid,--sysname@objtype=column--varchar(13)--mysqlALTERTABLEemp2CHANGEidiidBIGINT


7、增加字段
增加字段的语法差未几,可是MYSQL里可使用FIRST和AFTER关头字指定增加的字段的地位

--sqlserverALTERTABLE[dbo].[emp2]ADDNAMENVARCHAR(200)NULL--mysqlALTERTABLEemp2ADDNAMENVARCHAR(200)NULL



8、删除字段
MYSQL删除字段不必要增加COLUMN关头字的
--sqlserverALTERTABLE[dbo].[emp2]DROPCOLUMNNAME--mysqlALTERTABLEemp2DROPNAME


9、删除外键束缚
MYSQL跟SQLSERVER删除束缚的办法也有很年夜的区分
在SQLSERVER内里,不管是独一束缚,check束缚仍是外键束缚都可使用上面的SQL语句来删撤除
ALTERTABLE表名DROPCONSTRAINT束缚名
可是MYSQL内里,假如是外键束缚,必要利用DROPFOREIGNKEY,假如是主键束缚必要利用DROPPRIMARYKEY,有点贫苦

--sqlserverALTERTABLEdbo.emp2DROPCONSTRAINTfk_emp_dept--mysql--删除外键束缚ALTERTABLEemp2DROPFOREIGNKEYfk_emp_dept--删除主键束缚ALTERTABLEemp2DROPPRIMARYKEYpk_emp_dept



10、删除表
删除表的语法两个都是一样的

--sqlserverDROPTABLE[dbo].[emp2]--mysqlDROPTABLEemp2

可是假如要同时删除多个表大概删除之前要先判别一下,MYSQL就便利多了

--sqlserverIF(OBJECT_ID(dbo.emp2)ISNOTNULL)DROPTABLE[dbo].[emp2]--mysqlDROPTABLEIFEXISTSemp1,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。

只想知道 发表于 2015-2-7 12:17:25

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

飘飘悠悠 发表于 2015-2-21 22:22:58

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

灵魂腐蚀 发表于 2015-3-13 22:09:55

一个是把SQL语句写到客户端,可以使用DataSet进行加工;
页: [1]
查看完整版本: MYSQL教程之我的MYSQL进修心得(一)