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企业版的支持和维护成本就更低了。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 一个是把SQL语句写到客户端,可以使用DataSet进行加工;
页:
[1]