GVKun编程网logo

Oracle/MSSQL/Mysql 常用数据库的字段类型(mysql对应oracle字段类型)

2

本文将分享Oracle/MSSQL/Mysql 常用数据库的字段类型的详细内容,并且还将对mysql对应oracle字段类型进行详尽解释,此外,我们还将为大家带来关于(转)C#数据类型映射(SQLit

本文将分享Oracle/MSSQL/Mysql 常用数据库的字段类型的详细内容,并且还将对mysql对应oracle字段类型进行详尽解释,此外,我们还将为大家带来关于(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、.Net Core 开源小工具 mssql2mysql,从 mssql 生成 mysql 脚本、access 和 MySQL mssql、C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架的相关知识,希望对你有所帮助。

本文目录一览:

Oracle/MSSQL/Mysql 常用数据库的字段类型(mysql对应oracle字段类型)

Oracle/MSSQL/Mysql 常用数据库的字段类型(mysql对应oracle字段类型)

这里写图片描述

这里写图片描述 
这里写图片描述

这里写图片描述 
这里写图片描述

这里写图片描述

ORACLE的数据类型 
常用的数据库字段类型如下: 
字段类型 中文说明 限制条件 其它说明 
CHAR 固定长度字符串 最大长度2000 bytes ` 
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 
NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes 
NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes 
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题 
LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作 
RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等 
LONG RAW 可变长度的二进制数据 最大长度2G 同上 
BLOB 二进制数据 最大长度4G CLOB 字符数据 最大长度4G 
NCLOB 根据字符集而定的字符数据 最大长度4G 
BFILE 存放在数据库外的二进制数据 最大长度4G 
ROWID 数据表中记录的唯一行号 10 bytes **.*.*格式,*为0或1 
NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes 
NUMBER(P,S) 数字类型 P为整数位,S为小数位 
DECIMAL(P,S) 数字类型 P为整数位,S为小数位 
INTEGER 整数类型 小的整数 FLOAT 浮点数类型 
NUMBER(38),双精度 
REAL 实数类型

NUMBER(63),精度更高

Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 
字符数据类型 
CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 
VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 
因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 
Oracle推荐使用VARCHAR2 
NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。 
在Oracle9i中,可以以字符而不是字节为单位来表示NCHAR和NVARCHAR2列的长度。 
LONG LONG数据类型可以存放2GB的字符数据,它是从早期版本中继承来的。现在如果想存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。在表和SQL语句中使用LONG类型有许多限制。 
CLOB和NCLOB CLOB和NCLOB数据类型可以存储多达4GB的字符数据。NCLOB数据类型可存储NLS数据。 
数字数据类型 
Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。 
NUMBER数据类型可以有两个限定符,如: 
column NUMBER ( precision, scale) 
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。 
scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。 
日期数据类型 
Oracle标准日期格式为:DD-MON-YY HH:MI:SS 
通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式。在一个会话期间,可以通过ALTER SESSION SQL命令来修改日期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。 
其它的数据类型 
RAW和LONG RAW RAW和LONG RAW数据类型主要用于对数据库进行解释。指定这两种类型时,Oracle以位的形式来存储数据。RAW数据类型一般用于存储有特定格式的对象,如位图。 RAW数据类型可占用2KB的空间,而LONG RAW数据类型则可以占用2GB大小。 
ROWID ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。Oracle数据库中每行都有一个伪列。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。 
ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务 中使用ROWID伪列的值。例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID.不能通过任何SQL语句来设置标准的ROWID伪列的值。 
列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID. 
LOB 
LOB(大型对象)数据类型,可以保存4GB的信息。LOB有以下3种类型: 
。CLOB,只能存储字符数据 
。NCLOB,保存本地语言字符集数据 
。BLOB,以二进制信息保存数据 
可以指定将一个LOB数据保存在Oracle数据库内,还是指向一个包含次数据的外部文件。 
LOB可以参与事务。管理LOB中的数据必须通过DBMS_LOB PL/SQL内置软件包或者OCI接口。 
为了便于将LONG数据类型转换成LOB,Oracle9i包含许多同时支持LOB和LONG的函数,还包括一个ALTER TABLE语句的的新选择,它允许将LONG数据类型自动转换成LOB. 
BFILE 
BFILE数据类型用做指向存储在Oracle数据库以外的文件的指针。 
XMLType 
作为对XML支持的一部分,Oracle9i包含了一个新的数据类型XMLType.定义为XMLType的列将存储一个在字符LOB列中的XML文档。有许多内置的功能可以使你从文当中抽取单个节点,还可以在XMLType文档中对任何节点创建索引。 
用户自定义数据 
从Oracle8以后,用户可以定义自己的复杂数据类型,它们由Oracle基本数据类型组合而成。 
AnyType、AnyData和AnyDataSet 
Oracle包括3个新的数据类型,用于定义在现有数据类型之外的数据结构。其中每种数据类型必须用程序单元来定义,以便让Oracle9i知道如何处理这些类型的特定实现。 
类型转换 
Oracle会自动将某些数据类型转换成其他的数据类型,转换取决于包括该值的SQL语句。 
数据转换还可以通过Oracle的类型转换函数显示地进行。 
连接与比较 
在大多数平台上Oracle SQL中的连接操作符用两条竖线(||)表示。连接是将两个字符值连接。Oracle的自动类型转换功能使得两个数字值也可以进行连接。 
NULL 
NULL值是关系数据库的重要特征之一。实际上,NULL不代表任何值,它表示没有值。如果要创建表的一个列,而这个列必须有值,那么应将它指定为NOT NULL,这表示该列不能包含NULL值。 
任何数据类型都可以赋予NULL值。NULL值引入了SQL运算的三态逻辑。如果比较的一方是NULL值,那么会出现3种状态:TURE、FALSE以及两者都不是。 
因为NULL值不等于0或其他任何值,所以测试某个数据是否为NULL值只能通过关系运算符IS NULL来进行。 
NULL值特别适合以下情况:当一个列还未赋值时。如果选择不使用NULL值,那么必须对行的所有列都要赋值。这实际上也取消了某列不需要值的可能性,同时对它赋的值也很容易产生误解。这种情况则可能误导终端用户,并且导致累计操作的错误结果。

SQL SERVER 数据类型详解 
数据类型类型描述 
1)二进制数据类型 
  二进制数据包括 Binary、Varbinary 和 Image 
  Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。 
  Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。 
  Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。 
  在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。 
(2)字符数据类型 
  字符数据的类型包括 Char,Varchar 和 Text 
  字符数据是由任何字母、符号和数字任意组合而成的数据。 
  Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。 
(3)Unicode 数据类型 
  Unicode 数据类型包括 Nchar,Nvarchar 和Ntext 
  在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。 
  在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。 
(4)日期和时间数据类型 
  日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型 
  日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。 
  日期的格式可以设定。设置日期格式的命令如下: 
  Set DateFormat {format | @format _var| 
  其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。 
  例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式 
(5)数字数据类型 
  数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数 
  整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是 
Int,Smallint和 Tinyint。 
Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据狗昔存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。 
  精确小娄数据在 SQL Server 中的数据类型是Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。 
  在SQL Server 中,近似小数数据的数据类型是Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。 
(6)货币数据表示正的或者负的货币数量 。 
  在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney  Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。 
(7)特殊数据类型 
  特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即   Timestamp、Bit 和 Uniqueidentifier。 
  Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。 
  Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。 
  Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。 2.用户定义的数据类型 
  用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为   postal_code 的数据类型,它基于 Char 数据类型。 
  当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。 
(1)创建用户定义的数据类型 
  创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下: 
  sp_addtype {type},[,system_data_bype][,’null_type’] 
  其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char   等等。 null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如’NULL’、’NOT NULL’或者’NONULL’。 
  例子: 
  Use cust 
  Exec sp_addtype ssn,’Varchar(11)’,”Not Null’ 
  创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。 
  例子: 
  Use cust 
  Exec sp_addtype birthday,datetime,’Null’ 
  创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。 
  例子: 
  Use master 
  Exec sp_addtype telephone,’varchar(24),’Not Null’ 
  Eexc sp_addtype fax,’varchar(24)’,’Null’ 
  创建两个数据类型,即 telephone 和 fax 
(2)删除用户定义的数据类型 
  当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {‘type’}。 
  例子: 
  Use master 
  Exec sp_droptype ‘ssn’ 
  注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。 
SQL SERVER的字段类型说明 
  以下为SQL SERVER7.0以上版本的字段类型说明。SQL SERVER6.5的字段类型说明请参考SQL SERVER提供的说明。 
字段类型描述 
bit 0或1的整型数字 
int 从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字 
smallint 从-2^15(-32,768)到2^15(32,767)的整型数字 
tinyint 从0到255的整型数字 
decimal 从-10^38到10^38-1的定精度与有效位数的数字 
numeric decimal的同义词 
money 从-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十 
smallmoney 从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十 
float 从-1.79E+308到1.79E+308可变精度的数字 
real 从-3.04E+38到3.04E+38可变精度的数字 
datetime 从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒 
smalldatetime 从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟 
timestamp 时间戳,一个数据库宽度的唯一数字 
uniqueidentifier 全球唯一标识符GUID 
char 定长非Unicode的字符型数据,最大长度为8000 
varchar 变长非Unicode的字符型数据,最大长度为8000 
text 变长非Unicode的字符型数据,最大长度为2^31-1(2G) 
nchar 定长Unicode的字符型数据,最大长度为8000 
nvarchar 变长Unicode的字符型数据,最大长度为8000 
ntext 变长Unicode的字符型数据,最大长度为2^31-1(2G) 
binary 定长二进制数据,最大长度为8000 
varbinary 变长二进制数据,最大长度为8000 
image 变长二进制数据,最大长度为2^31-1(2G) 
段类型说明请参考SQL SERVER提供的说明。

这里写图片描述 
这里写图片描述 
SYBASE的字段类型如下: 
字段类型描述字段长度及其缺省值 
Char(Size) 
用于保存定长(Size)字节的字符串数据。

每行定长(不足部分补为空格);最大长度为255字节,缺省值为每行1字节。 
Varchar(Size) 
用于保存变长的字符串数据。其中最大字节长度由(Size)指定。 
每行长度可变,最大长度为255字节。数据长度缺省为1 
Nchar(Size) 
多字节字符串。 
  
每行定长(不足部分补为空格)。 长度(Size)是指字符的个数,最大字节数为Size*A@@Nchar Size。 
Nvarchar(Size) 
可变长,多字节字符串。 
每行变长。长度(Size)是指字符的个数,最大字节数为Size*A@@Nchar Size。 
Binary(Size) 
固定长度的二进制字符串。 
每行定长(不足部分补为空格);最大长度为255字节,缺省值为每行1字节。 
Varbinary(Size) 
可变长度的长度的二进制字符串。 
每行长度可变,最大长度为255字节。数据长度缺省为1 
Timestamp 
用于改变管理的二进制值。 
字节数为16 
Datetime 
保存定长的日期时间数据,范围为1753年1月1日到公元9999年12月21日,精度为3微秒间隔。 
每行固定为8字节长度。 
Smalldatetime 
保存定长的日期时间数据,范围为1990年1月1日到公元2079年6月6日,精度为分钟间隔。 
每行固定为4字节长度。 
Int 
保存整型数据,范围为-2147483647到+2147483647。 
最大长度为4字节32 - 1字节或4G。 
Smallint 
保存整型数据,范围为-32767到+32767 
最大长度为2字节32 - 1字节或4G。 
Tinyint 
保存整型数据,范围为0到255。 
最大长度为1字节。 
Float 
保存浮点数据类型,范围为-2.23E-308到+2.23E-308。 
最大长度为8字节。 
Real 
保存浮点数据类型,范围为-1.18E-38到+1.18E-38。 
最大长度为4字节。 
Numeric(P,S) 
保存精确数值数据类型,范围为-10E-38到+10E-38,P是精度,总小数位数(1~38),S是小数位(小数位小于等于P) 
最大长度为2~17字节。 
Decimal(P,S) 
保存精确数值数据类型,范围为-10E-38到+10E-38,P是精度,总小数位数(1~38),S是小数位(小数位小于等于P) 
最大长度为2~17字节。 
Money 
保存货币值数据类型,范围为-922337203685477.5808到+922337203685477.5808 
最大长度为8字节。 
Smallmoney 
保存货币值数据类型,范围为-214748.3647到+214748.3647 
最大长度为4字节。 
Text 
保存大于255字节的栏或大于2KB页长度的文本数据。 
最大长度为2G。 
Image 
保存大于255字节的栏或大于2KB页长度的二进制数据。 
最大长度为2G。

char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

一、C# vs SQLite: C#SQLite 字段名类型库类型GetFieldType(#)转换备注 F_BOOLboolBIT NOT NULLBoolean F_BOOL_NULLbool?BITBoolean F_SBYTEsbyteINT8 NOT NULLSBytesbyte_ F_SBYTE_NULLsbyte?INT8SBytesbyte_ F_BYTEbyteUINT8 NOT NULLByte F_BYTE_NULLbyte

一、c# vs sqlite:

C# SQLite

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool BIT NOT NULL Boolean    

F_BOOL_NULL bool? BIT Boolean    

F_SBYTE sbyte INT8 NOT NULL SByte sbyte_  

F_SBYTE_NULL sbyte? INT8 SByte sbyte_  

F_BYTE byte UINT8 NOT NULL Byte    

F_BYTE_NULL byte? UINT8 Byte    

F_SHORT short INT16 NOT NULL Int16    

F_SHORT_NULL short? INT16 Int16    

F_USHORT ushort UINT16 NOT NULL UInt16 ushort_  

F_USHORT_NULL ushort? UINT16 UInt16 ushort_  

F_INT int INT32 NOT NULL Int32    

F_INT_NULL int? INT32 Int32    

F_UINT uint UINT32 NOT NULL UInt32 uint_  

F_UINT_NULL uint? UINT32 UInt32 uint_  

F_LONG long INT64 NOT NULL Int64    

F_LONG_NULL long? INT64 Int64    

F_ULONG ulong UINT64 NOT NULL UInt64 ulong_  

F_ULONG_NULL ulong? UINT64 UInt64 ulong_  

F_FLOAT float FLOAT NOT NULL Double   不转兼容

F_FLOAT_NULL float? FLOAT Double   不转兼容

F_DOUBLE double DOUBLE NOT NULL Double    

F_DOUBLE_NULL double? DOUBLE Double    

F_DECIMAL decimal DECIMAL NOT NULL Decimal   存取不一:: [-79228162514264300000000000000] != [-79228162514264337593543950335]

F_DECIMAL_NULL decimal? DECIMAL Decimal   存取不一:: [-79228162514264300000000000000] != [-79228162514264337593543950335]

F_CHAR char TEXT NOT NULL String    

F_CHAR_NULL char? TEXT String    

F_STRING string TEXT NOT NULL String    

F_STRING_NULL string TEXT String    

F_DATETIME DateTime TEXT NOT NULL String    

F_DATETIME_NULL DateTime? TEXT String    

           

二、 C# vs MySQL:

C# MySQL

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool BOOL NOT NULL Boolean    

F_BOOL_NULL bool? BOOL NULL Boolean    

F_SBYTE sbyte TINYINT NOT NULL SByte sbyte_  

F_SBYTE_NULL sbyte? TINYINT NULL SByte sbyte_  

F_BYTE byte TINYINT UNSIGNED NOT NULL Byte    

F_BYTE_NULL byte? TINYINT UNSIGNED NULL Byte    

F_SHORT short SMALLINT NOT NULL Int16    

F_SHORT_NULL short? SMALLINT NULL Int16    

F_USHORT ushort SMALLINT UNSIGNED NOT NULL UInt16 ushort_  

F_USHORT_NULL ushort? SMALLINT UNSIGNED NULL UInt16 ushort_  

F_INT int INT NOT NULL Int32    

F_INT_NULL int? INT NULL Int32    

F_UINT uint INT UNSIGNED NOT NULL UInt32 uint_  

F_UINT_NULL uint? INT UNSIGNED NULL UInt32 uint_  

F_LONG long BIGINT NOT NULL Int64    

F_LONG_NULL long? BIGINT NULL Int64    

F_ULONG ulong BIGINT UNSIGNED NOT NULL UInt64 ulong_  

F_ULONG_NULL ulong? BIGINT UNSIGNED NULL UInt64 ulong_  

F_FLOAT float FLOAT NOT NULL Single   极值溢出

F_FLOAT_NULL float? FLOAT NULL Single   极值溢出

F_DOUBLE double DOUBLE NOT NULL Double    

F_DOUBLE_NULL double? DOUBLE NULL Double    

F_DECIMAL decimal DECIMAL NOT NULL Decimal   极值溢出

F_DECIMAL_NULL decimal? DECIMAL NULL Decimal   极值溢出

F_CHAR char CHARACTER NOT NULL String   中文报错

F_CHAR_NULL char? CHARACTER NULL String   中文报错

F_STRING string VARCHAR(50) NOT NULL String    

F_STRING_NULL string VARCHAR(50) NULL String    

F_DATETIME DateTime DATETIME NOT NULL DateTime    

F_DATETIME_NULL DateTime? DATETIME NULL DateTime    

           

三、 C# vs MSSQL:

C# MSSQL

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool bit NOT NULL Boolean    

F_BOOL_NULL bool? bit NULL Boolean    

F_SBYTE sbyte smallint NOT NULL Int16 sbyte_short  

F_SBYTE_NULL sbyte? smallint NULL Int16 sbyte_short  

F_BYTE byte tinyint NOT NUL; Byte    

F_BYTE_NULL byte? tinyint NULL Byte    

F_SHORT short smallint NOT NULL Int16    

F_SHORT_NULL short? smallint NULL Int16    

F_USHORT ushort int NOT NULL Int32 ushort_int  

F_USHORT_NULL ushort? int NULL Int32 ushort_int  

F_INT int int NOT NULL Int32    

F_INT_NULL int? int NULL Int32    

F_UINT uint bigint NOT NULL Int64 uint_long  

F_UINT_NULL uint? bigint NULL Int64 uint_long  

F_LONG long bigint NOT NULL Int64    

F_LONG_NULL long? bigint NULL Int64    

F_ULONG ulong real NOT NULL Single ulong_float  

F_ULONG_NULL ulong? real NULL Single ulong_float  

F_FLOAT float real NOT NULL Single    

F_FLOAT_NULL float? real NULL Single    

F_DOUBLE double float NOT NULL Double    

F_DOUBLE_NULL double? float NULL Double    

F_DECIMAL decimal decimal NOT NULL Decimal   极值溢出

F_DECIMAL_NULL decimal? decimal NULL Decimal   极值溢出

F_CHAR char char(1) NOT NULL String    

F_CHAR_NULL char? char(1) NULL String    

F_STRING string varchar(50) NOT NULL F_STRING:    

F_STRING_NULL string varchar(50) NULL String    

F_DATETIME DateTime datetime NOT NULL DateTime  

F_DATETIME_NULL DateTime? datetime NULL DateTime    

           

四、C# vs Oracle:

C# Oracle

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool CHAR(1) NOT NULL String bool_string  

F_BOOL_NULL bool? CHAR(1) String bool_string  

F_SBYTE sbyte NUMBER(3) NOT NULL Int16 sbyte_short  

F_SBYTE_NULL sbyte? NUMBER(3) Int16 sbyte_short  

F_BYTE byte NUMBER(3) NOT NULL Int16 byte_short  

F_BYTE_NULL byte? NUMBER(3) Int16 byte_short  

F_SHORT short NUMBER(5) NOT NULL Int32 short_int  

F_SHORT_NULL short? NUMBER(5) Int32 short_int  

F_USHORT ushort NUMBER(5) NOT NULL Int32 ushort_int  

F_USHORT_NULL ushort? NUMBER(5) Int32 ushort_int  

F_INT int NUMBER(10) NOT NULL Int64 int_long  

F_INT_NULL int? NUMBER(10) Int64 int_long  

F_UINT uint NUMBER(10) NOT NULL Int64 uint_long  

F_UINT_NULL uint? NUMBER(10) Int64 uint_long  

F_LONG long NUMBER(19) NOT NULL Decimal long_decimal  

F_LONG_NULL long? NUMBER(19) Decimal long_decimal  

F_ULONG ulong NUMBER(19) NOT NULL Decimal ulong_decimal  

F_ULONG_NULL ulong? NUMBER(19) Decimal ulong_decimal  

F_FLOAT float BINARY_FLOAT NOT NULL Single    

F_FLOAT_NULL float? BINARY_FLOAT Single    

F_DOUBLE double BINARY_DOUBLE NOT NULL Double   极值溢出

F_DOUBLE_NULL double? BINARY_DOUBLE Double   极值溢出

F_DECIMAL decimal DECIMAL(33,3) NOT NULL Decimal    

F_DECIMAL_NULL decimal? DECIMAL(33,3) Decimal    

F_CHAR char CHAR(1) NOT NULL String    

F_CHAR_NULL char? CHAR(1) String    

F_STRING string VARCHAR(50) NOT NULL String   不允许空字符

F_STRING_NULL string VARCHAR(50) String   不允许空字符

F_DATETIME DateTime TIMESTAMP NOT NULL DateTime   大值读取报错

F_DATETIME_NULL DateTime? TIMESTAMP DateTime   大值读取报

 

.Net Core 开源小工具 mssql2mysql,从 mssql 生成 mysql 脚本

.Net Core 开源小工具 mssql2mysql,从 mssql 生成 mysql 脚本

Microsoft SQL Server to MySQL

这个工具用于从 MSSQL 生成 MySQL 脚本,生成的脚本包含表结构和数据

安装

这是一个.Net Core 的具具,所以需要先安装.net core SDK https://dotnet.microsoft.com/download

然后可以使用下面的命令安装:

dotnet tool install --global mssql2mysql

  

生成 MySQL 脚本

使用 MSSQL 的连接字符串进行生成,默认的生成文件是 dump.sql

mssql2mysql -c "Server=(local);Database=ZKEACMS;User Id=sa;Password=sa;MultipleActiveResultSets=true;"

  

使用 -f 来指定生成的文件名:

mssql2mysql -f dump.sql -c "Server=(local);Database=ZKEACMS;User Id=sa;Password=sa;"

  

如果你想在生成的脚本中包含创建数据库的语句,可以使用 -s 参数指定数据库名称

mssql2mysql -s ZKEACMS -c "Server=(local);Database=ZKEACMS;User Id=sa;Password=sa;"

  

GitHub

https://github.com/SeriaWei/mssql2mysql

access 和 MySQL mssql

access 和 MySQL mssql

Access、MSSQL、MYSQL 数据库之间有什么区别?     Access 数据库、MSSQL 数据库、MYSQL 数据库之间有什么区别?
    
    不少企业和个人站长在网站制作时,会对数据库的概念产生迷惑或误解。究竟使用什么样的数据库才好呢?其实,选择合适您的才是最好的。下面是一些关于数据库的详细资料。建议打算建立网站的企业和个人站长,新手网站管理员阅读一下。听听 “找源码” www.zhaoym.net 专业技术人员对于数据库的解释,让大家更好的了解数据库,从而确定适合自己的建站方案。
    
    大家知道,常用的数据库一般是分为三种:Access、SQL Server、MySQL,那么,用户想做一个网站,到底哪一种数据库才是适合自己的呢?以下给大家介绍一下常用的数据库有什么区别及功能方面的说明。
    
    Access:是一种桌面数据库,适合数据量较少的应用,存储数据库 (.mdb) 文件大小不超过 2G 字节,数据库中的对象个数不超过 32,768。不过,由于数据库可以包括其他文件中的链接表,所以它的大小实际上只受可用存储空间大小的限制。处理非超大量数据库是很好的选择,效率也很高。但是,当您的网站访问时遇到下面的情况之一,您就应该考虑使用 SQL 数据库了: 
    
    1. 数据库大小超过 300M; 
    
    2. 在线人数经常超过 100 人;
    
    3. 网站经常出现服务失效(英文提示:Service Unavailable);
    
    4. 服务器经常出现 CPU 资源被 100% 占用。
    
    
    SQL Server:是基于服务器端的中型数据库,可以适合大容量数据的应用,在功能上管理上也要比 Access 强。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果是标准 SQL 语言,两者基本上都可以通用的。SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。
    
    SQL Server 特点:
    
    1. 真正的客户机 / 服务器体系结构。
    
    2. 图形化用户界面,使系统管理和数据库管理更加直观、简单。
    
    3. 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
    
    4.SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 microsoft BackOffice 产品集成。
    
    5. 具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 2000 的大型多处理器等多种平台使用。
    
    6. 对 Web 技术的支持,使用户能够很容易地将数据库中的数据发布到 Web 页面上。
    
    7.SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。
    
    
    MySQL:是一个开放源码的小型关系型数据库管理系统,目前被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
    
    MySQL 特点:
    
    1. 核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。
    
    2. 可运行在不同的操作系统下。如可支持 Windows95/98/NT/2000、2003 以及 UNIX、Linux 和 SUN OS 等多种操作系统平台。
    
    3. 有一个非常灵活而且安全的权限和口令系统。当客户与 MySql 服务器连接时,他们之间所有的口令传送被加密,而且 MySql 支持主机认证。
    
    4. 支持 ODBC for Windows。MySql 支持所有的 ODBC 2.5 函数和其他许多函数,这样就可以用 Access 连接 MySql 服务器,从而使得 MySql 的应用被大大扩展。
    
    5. 支持大型的数据库。虽然对于用 Php 编写的网页来说只要能够存放上百条以上的记录数据就足够了,但 MySql 可以方便地支持上千万条记录的数据库。
    
    6. 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。
    
    7. 强大的查询功能。MySql 支持查询的 SELECT 和 WHERE 语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。
    
    8.PHP 为 MySql 提供了强力支持,PHP 中提供了一整套的 MySql 函数,对 MySql 进行了全方位的支持。

 

 

MySQL / SQL Server / Oracle / MS Access 的 sql 语句联系区别总结

各数据库的 sql 语句差别

1. 取前几条数据
MySQL 语法
SELECT * FROM Persons LIMIT 5
Oracle 语法
SELECT * FROM Persons WHERE ROWNUM <= 5
SQL Server 的语法
SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons


2.MySQL 建表约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)

SQL Server / Oracle / MS Access 建表约束
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)


3. 撤销 UNIQUE 约束
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID


4.SQL PRIMARY KEY 约束
MySQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName)
)

SQL PRIMARY KEY Constraint on ALTER TABLE
如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)


5. 撤销 PRIMARY KEY 约束
如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID


6.SQL FOREIGN KEY Constraint on CREATE TABLE
下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:
MySQL:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

7. 如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

8.SQL FOREIGN KEY Constraint on ALTER TABLE
如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销 FOREIGN KEY 约束
如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

 

SQL/MYSQL/MSSQL/Access 的区别,比较

  SQL 是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。而 MySQL 是数据库管理系统 (DBMS)。

MSSQL 和 ACCESS 都是 Microsoft 公司开发的可以用于 ASP 程序中的网站数据库,不过 MSSQL 比 ACCESS 功能强大,大型网站建议采用 MSSQL 数据库.

什么是 My SQL 数据库?
        My SQL 是一个多用户、多线程的 SQL 数据库,是一个客户机 / 服务器结构的应用,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。

        数据库与用户端之间的接口程序可以使用 CGI 进行通信。(CGI 全称是 “公共网关接口”(Common Gateway Interface),HTTP 服务器与你的或其它机器上的程序进行 “交谈” 的一种工具,其程序须运行在网络服务器上。) 在物理上,CGI 是一段程序,运行在 Server 上,提供同客户端 Html 页面的接口.

msSQL 数据库和 myqsl 数据库有什么不同?
        MySql 短小精悍,象 access 一样的文件型数据库,但比 access 强百倍,是真正多用户多任务的数据库系统,从 Linux 上移植过来的,安全性非常好,完全可以作为大型数据库使用,不过大部分操作是在 dos 下进行,虽然也有第三方开发的图形界面但并不好用.

        MsSql 是微软的产品一贯傻大笨粗,性能也强大,图形界面使用很方便,象个傻瓜相机一样,不过,也太大了,很多不实用的东西 
        win98 下不能装 MSSQL,只能装个客户端工具,如果是为了学 DELPHI (Delphi 是 Borland 公司研制的新一代可视化开发工具) 开发,装个小巧的 access 或 mysql 就可以,反正都是通过 ODBC<(开放数据库互连) 是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API(应用程序编程接口)。这些 API 利用 SQL 来完成其大部分任务。ODBC 本身也提供了对 SQL 语言的支持,用户可以直接将 SQL 语句送给 ODBC)> 来做.

 

SQL/MYSQL/MSSQL/Access 区别比较

 

Access 是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于 4 个。access 数据库有一定的极限,如果数据达到 100M 左右,很容易造成服务器 iis 假死,或者消耗掉服务器的内存导致服务器崩溃。 

SQL Server 是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比 Access 要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果是标准 SQL 语言,两者基本上都可以通用的。92HeZu 网全部双线合租空间均可使用 Access 数据库,同时也支持 SQL Server。SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。 

SQL Server 特点: 

1. 真正的客户机 / 服务器体系结构。 

2. 图形化用户界面,使系统管理和数据库管理更加直观、简单。 

3. 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 

4.SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 microsoft BackOffice 产品集成。 

5. 具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 2000 的大型多处理器等多种平台使用。 

6. 对 Web 技术的支持,使用户能够很容易地将数据库中的数据发布到 Web 页面上。 

7.SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。 

MySQL 是一个开放源码的小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司,92HeZu 网免费赠送 MySQL。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。提供由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库 

MySQL 特点: 

1.MySql 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。 

2.MySql 可运行在不同的操作系统下。简单地说,MySql 可以支持 Windows95/98/NT/2000 以及 UNIX、Linux 和 SUN OS 等多种操作系统平台。 

3.MySql 有一个非常灵活而且安全的权限和口令系统。当客户与 MySql 服务器连接时,他们之间所有的口令传送被加密,而且 MySql 支持主机认证。 

4.MySql 支持 ODBC for Windows。MySql 支持所有的 ODBC 2.5 函数和其他许多函数,这样就可以用 Access 连接 MySql 服务器,从而使得 MySql 的应用被大大扩展。 

5.MySql 支持大型的数据库。虽然对于用 Php 编写的网页来说只要能够存放上百条以上的记录数据就足够了,但 MySql 可以方便地支持上千万条记录的数据库。 

6.MySql 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。 

7. 强大的查询功能。MySql 支持查询的 SELECT 和 WHERE 语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。 

8.PHP 为 MySql 提供了强力支持,PHP 中提供了一整套的 MySql 函数,对 MySql 进行了全方位的支持。

 

C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架

C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架

  C# 多数据库组件包支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 框架网

C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网
 
 

我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如 Microsoft SQL Server,超大型系统有的使用 Oracle,部分 Web 系统采用开源的 MySQL 等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。

 
C/S 框架网为广大用户定制开发一套基于 C# 语言的多数据库组件包,以及用户操作手册。
 

C# 语言多数据库组件包 (支持 MSSQL+Oracle+MySQL)
 
CSFramework.DB.realease.rar
 
下载链接: https://pan.baidu.com/s/1bmzNVwQ4-F2svTLByIPaQA 密码:fy9s
 
贴图图片
 

 
《CSFramework.DB 用户操作手册》.pdf
 
下载链接: https://pan.baidu.com/s/1rauYthmGjHQ5T8IeLuG0Ww 密码:1fsu
 

基于C#语言多数据库组件包及用户操作手册
 
 


C# Code:

/// <summary>
/// IDatabase 数据库接口
/// </summary>
public interface IDatabase : IAdoFactory
{
   int DefaultPort { get; }
   
   int CommandTimeout { get; }
   
   int ConnectionTimeout { get; }
   
   Type DateTimeType { get; }
   
   DateTime GetServerTime();
   
   String ConnectionString { get; set; }
   
   DbTransaction TransBegin();
   
   void TransCommit(DbTransaction trans, bool closeConnection = false);
   
   void TransRollback(DbTransaction trans, bool closeConnection = false);
   
   DataSet GetDataSet(string SQL);
   
   DataSet GetDataSet(DbCommand cmd);
   
   DataSet GetDataSet(string text, CommandType type, IDataParameter[] paras);
   
   DataTable GetTable(string SQL, string tableName = "");
   
   DataTable GetTable(DbCommand cmd, string tableName = "");
   
   DataRow GetDataRow(string SQL);
   
   int ExecuteSQL(string SQL);
   
   int ExecuteCommand(DbCommand cmd);
   
   object ExecuteScalar(string SQL);
   
   object ExecuteScalar(DbCommand cmd);
   
   DbDataReader ExecuteReader(string SQL);
   
   DbDataReader ExecuteReader(DbCommand cmd);
   
   List<T> ExecuteReader<T>(string SQL, Func<DbDataReader, T> action) where T : new();
   
   List<T> ExecuteReader<T>(DbCommand cmd, Func<DbDataReader, T> action) where T : new();
   
   T ExecuteReader<T>(DbCommand cmd) where T : new();
   
   T ExecuteReader<T>(string SQL) where T : new();
   
   int ExecuteTrans(DbTransaction trans, string SQL);
   
   void Close(DbConnection connection);
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761



C# Code:

/// <summary>
/// ADO (ActiveX Data Object) ADO.NET 活动数据对象工厂
/// </summary>
public interface IAdoFactory
{
   string BuildConnectionString(string server, int port, string dbName, string uid, string pwd, int timeout = 10);
   
   CommandHelper CreateSqlProc(string spName);
   
   CommandHelper CreateCommand(string commandText);
   
   /// <summary>
   /// DbCommand 的参数符号,@,?
   /// </summary>
   string ParamSymboName { get; }
   
   DbParameter CreateTimestampParameter(string parameterName, string fieldName);
   
   DbConnection CreateConnection();
   
   DbConnection CreateConnection(string connectionString);
   
   DbCommand CreateCommand(string commandText, CommandType commandType);
   
   DbParameter CreateParameter(string parameterName, object parameterValue);
   
   DbCommandBuilder CreateCommandBuilder();
   
   DbDataAdapter CreateDataAdapter();
   
   DbDataAdapter CreateDataAdapter(AdapterRowUpdatingEvent eventHandler);
   
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761

 
 

C# Code:


/// <summary>
/// 数据库对象工厂
/// </summary>
public static class DatabaseFactory
{
   /// <summary>
   /// 创建数据库(使用 DataProviderFactory 创建数据存取基础组件,通用版)
   /// </summary>
   /// <param name="providerType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateMDB(DatabaseType providerType, string connectionString)
   {
      return new DatabaseMDB(providerType, connectionString);
   }
   
   /// <summary>
   /// 创建 SQL Server 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateSqlDatabase(string connectionString)
   {
      return new DatabaseMSSQL(connectionString);
   }
   
   /// <summary>
   /// 创建 MySQL 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateMySqlDatabase(string connectionString)
   {
      return new DatabaseMySQL(connectionString);
   }
   
   /// <summary>
   /// 创建 Oracle 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateOracleDatabase(string connectionString)
   {
      return new DatabaseOracle(connectionString);
   }
   
   /// <summary>
   /// 创建数据库
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateDatabase(DatabaseType dbType, string connectionString)
   {
      if (dbType == DatabaseType.SqlServer)
      return new DatabaseMSSQL(connectionString);
      if (dbType == DatabaseType.MySQL)
      return new DatabaseMySQL(connectionString);
      if (dbType == DatabaseType.Oracle)
      return new DatabaseOracle(connectionString);
      throw new Exception ("未支持的数据库类型!");
   }
   
   /// <summary>
   /// 创建数据库
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateDatabase(string dbType, string connectionString)
   {
      DatabaseType databaseType;
      if (!Enum.TryParse<DatabaseType>(dbType, true, out databaseType))
      throw new Exception ("不支持的数据库类型!");
      
      if (databaseType == DatabaseType.SqlServer)
      return new DatabaseMSSQL(connectionString);
      if (databaseType == DatabaseType.MySQL)
      return new DatabaseMySQL(connectionString);
      if (databaseType == DatabaseType.Oracle)
      return new DatabaseOracle(connectionString);
      throw new Exception ("未支持的数据库类型!");
   }
   
   /// <summary>
   /// ADO 组件工厂
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据连接字符串 </param>
   /// <returns></returns>
   public static IAdoFactory GetADOFactory(DatabaseType dbType, string connectionString)
   {
      return CreateDatabase(dbType, connectionString);
   }
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761

 
相关文章:
 
如何使用多数据库 IDatabase 接口以及数据访问层应用
 
http://www.csframework.com/archive/1/arc-1-20181217-2511.htm
 
 

 
本文转自: http://www.csframework.com/archive/1/arc-1-20181217-2510.htm
 

今天关于Oracle/MSSQL/Mysql 常用数据库的字段类型mysql对应oracle字段类型的介绍到此结束,谢谢您的阅读,有关(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、.Net Core 开源小工具 mssql2mysql,从 mssql 生成 mysql 脚本、access 和 MySQL mssql、C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架等更多相关知识的信息可以在本站进行查询。

本文标签: