随笔分类 - emanual_数据库_主流数据库的SQL语法差异以及解决方案
摘要:由于不同数据库系统的语法有差异,所以如果想要开发的系统能够运行于多数据库系统下就必须通过一定的方法来消除这些差异性。消除差异性的主要方法有: 为每种数据库编写不同的SQL语句;使用语法交集;使用抽象SQL;使用ORM工具;使用SQL翻译器。 下面对这几种方案进行分析。 为每种数据库编写不同的SQL语
阅读全文
摘要:MYSQL中取得指定表的字段定义(假设表名为mytable): MYSQLServer中取得指定表的字段定义(假设表名为mytable): Oracle中的all_tab_columns表是系统中所有表的字段定义,其中TABLE_NAME字段为表名,因此取得指定表的字段定义(假设表名为mytable
阅读全文
摘要:MYSQL中取得指定Schema下所有表定义的SQL语句如下(假设Schema名为demoschema): MSSQLServer中的系统表sysobjects中记录了当前系统中定义的对象,其中xtype字段等于U的记录为表定义,因此取得当前数据库中所有表定义的SQL语句如下(假设Schema名为d
阅读全文
摘要:MYSQL中取得当前数据库中所有表定义的SQL语句如下: MSSQLServer中的系统表sysobjects中记录了当前系统中定义的对象,其中xtype字段等于U的记录为表定义,因此取得当前数据库中所有表定义的SQL语句如下: Oracle中的系统表all_objects中记录了当前系统中定义的对
阅读全文
摘要:MYSQL中可以通过函数来取得数据库的信息,包括当前数据库名、版本、当前登录用户等信息:DATABASE()函数返回当前数据库名;VERSION()函数以一个字符串形式返回MySQL 服务器的版本;USER()函数(这个函数还有SYSTEM_USER、SESSION_USER两个别名)返回当前MyS
阅读全文
摘要:索引的定义在各个数据库系统中基本相同,但是删除索引的语法则各有不同,比如删除T_Person表中定义的名称为idx1的索引在不同数据库系统下的SQL语句如下:
阅读全文
摘要:不同数据库系统对函数的差异是非常大的,不仅同样功能的函数在不同数据库系统中的名称不同,而且一些高级的函数也并不是在所有数据库系统中都有提供支持。比如将一个字符串转换为小写的函数在MYSQL,MSSQLServer 和Oracle 中为LOWER,而在DB2 中则为LCASE;MYSQL 中支持IF
阅读全文
摘要:在实现分页检索、排行榜等功能的时候,需要限制检索的结果集行数,不同的数据库系统对此的支持是不同的。 MYSQL中提供了LIMIT关键字用来限制返回的结果集,比如: MSSQLServer:MSSQLServer中提供了TOP关键字用来返回结果集中的前N条记录,比如: 在MSSQLServer2005
阅读全文
摘要:整数类型:在MYSQL中整数相关的类型有tinyint、smallint、mediumint、int、integer和bigint;在MSSQLServer中整数相关的类型有bit、int、smallint、tinyint 和bigint;在Oracle中整数相关的类型有number;在DB2中整数
阅读全文
摘要:在不同的数据库系统中字符串拼接的方式是不同的,下面的主流数据库系统对字符串拼接的支持: MYSQL:在MYSQL 中进行字符串的拼接要使用CONCAT 函数,CONCAT 函数支持一个或者多个参数,比如CONCAT("Hello",1,"World");MYSQL 中还提供了另外一个进行字符串拼接的
阅读全文
摘要:现在市场上存在很多厂商推出的数据库管理系统,商业化的有Oracle、MSSQLServer、DB2、SybaseSQLServer、Informix,开源的有MYSQL、SQLite、SimpleSQL、Berkely DB、Minosse、Firebird、HSQLDB等,这些数据库产品的出现给了
阅读全文