您的位置:首页 > 数据库 > MySQL

MySQL与MS Access对照

2007-04-25 14:52 127 查看
由于MySQL数据库的编码经常是存在问题,更重要的是,有时候我们要做一个应用程序只需要一个DB文件的,比如我设计了一个考试软件,而不需要另外去安装一个MySQL这样的数据库服务器,于是我就想到微软的Access数据库
以前使用Access,创建表格都是通过表格设计器来做的,感觉特别的初级,很早以前就想,能不能通过命令行的方式创建表格,操作呢? 微软的特点就是尽量让用户看不到文本命令行,更多的是体现图形界面,所以我用了一段时间,根本没有发现能查看一个表的结构,网上说用WinSQL软件,不过确实好用!原先用MySQL的时候感觉不方便,于是用了SQLyog和MySQL-Front前台工具;Access就用WinSQL
现看看MySQL支持的数据类型:
数值类型:

[align=left]类型[/align]
[align=left]大小[/align]
[align=left]范围(有符号)[/align]
[align=left]范围(无符号)[/align]
[align=left]用途[/align]
[align=left]TINYINT[/align]
[align=left]1 字节[/align]
[align=left](-128,127)[/align]
[align=left](0,255)[/align]
[align=left]小整数值[/align]
[align=left]SMALLINT[/align]
[align=left]2 字节[/align]
[align=left](-32 768,32 767)[/align]
[align=left](0,65 535)[/align]
[align=left]大整数值[/align]
[align=left]MEDIUMINT[/align]
[align=left]3 字节[/align]
[align=left](-8 388 608,8 388 607)[/align]
[align=left](0,16 777 215)[/align]
[align=left]大整数值[/align]
[align=left]INT或INTEGER[/align]
[align=left]4 字节[/align]
[align=left](-2 147 483 648,2 147 483 647)[/align]
[align=left](0,4 294 967 295)[/align]
[align=left]大整数值[/align]
[align=left]BIGINT[/align]
[align=left]8 字节[/align]
[align=left](-9 233 372 036 854 775 808,9 223 372 036 854 775 807)[/align]
[align=left](0,18 446 744 073 709 551 615) [/align]
[align=left]极大整数值[/align]
[align=left]FLOAT[/align]
[align=left]4 字节[/align]
[align=left](-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)[/align]
[align=left]0,(1.175 494 351 E-38,3.402 823 466 E+38)[/align]
[align=left]单精度
浮点数值[/align]
[align=left]DOUBLE[/align]
[align=left]8 字节[/align]
[align=left](1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)[/align]
[align=left]0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)[/align]
[align=left]双精度
浮点数值[/align]
[align=left]DECIMAL[/align]
[align=left]对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2[/align]
[align=left]依赖于M和D的值[/align]
[align=left]依赖于M和D的值[/align]
[align=left]小数[/align]
字符类型:
[align=left]类型[/align]
[align=left]大小[/align]
[align=left]用途[/align]
[align=left]CHAR[/align]
[align=left]0-255字节[/align]
[align=left]定长字符串[/align]
[align=left]VARCHAR[/align]
[align=left]0-255字节[/align]
[align=left]变长字符串[/align]
[align=left]TINYBLOB[/align]
[align=left]0-255字节[/align]
[align=left]不超过 255 个字符的二进制字符串 [/align]
[align=left]TINYTEXT[/align]
[align=left]0-255字节[/align]
[align=left]短文本字符串[/align]
[align=left]BLOB[/align]
[align=left]0-65 535字节[/align]
[align=left]二进制形式的长文本数据[/align]
[align=left]TEXT[/align]
[align=left]0-65 535字节[/align]
[align=left]长文本数据[/align]
[align=left]MEDIUMBLOB[/align]
[align=left]0-16 777 215字节[/align]
[align=left]二进制形式的中等长度文本数据[/align]
[align=left]MEDIUMTEXT[/align]
[align=left]0-16 777 215字节[/align]
[align=left]中等长度文本数据[/align]
[align=left]LOGNGBLOB[/align]
[align=left]0-4 294 967 295字节[/align]
[align=left]二进制形式的极大文本数据[/align]
[align=left]LONGTEXT[/align]
[align=left]0-4 294 967 295字节[/align]
[align=left]极大文本数据[/align]

日期和时间类型:

  在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。
[align=left]类型[/align]
[align=left]大小
(字节)
[/align]
[align=left]范围[/align]
[align=left]格式[/align]
[align=left]用途[/align]
[align=left]DATE[/align]
[align=left]3[/align]
[align=left]1000-01-01/9999-12-31[/align]
[align=left]YYYY-MM-DD[/align]
[align=left]日期值[/align]
[align=left]TIME[/align]
[align=left]3[/align]
[align=left]'-838:59:59'/'838:59:59'[/align]
[align=left]HH:MM:SS[/align]
[align=left]时间值或持续时间[/align]
[align=left]YEAR[/align]
[align=left]1[/align]
[align=left]1901/2155[/align]
[align=left]YYYY[/align]
[align=left]年份值[/align]
[align=left]DATETIME[/align]
[align=left]8[/align]
[align=left]1000-01-01 00:00:00/9999-12-31 23:59:59 [/align]
[align=left]YYYY-MM-DD HH:MM:SS [/align]
[align=left]混合日期和时间值[/align]
[align=left]TIMESTAMP[/align]
[align=left]8[/align]
[align=left]1970-01-01 00:00:00/2037 年某时 [/align]
[align=left]YYYYMMDD HHMMSS [/align]
[align=left]混合日期和时间值,时间戳[/align]

DATE、TIME 和 TEAR 类型

  MySQL 用 DATE 和 TEAR 类型存储简单的日期值,使用 TIME 类型存储时间值。这些类型可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DATE 类型的值应该使用连字号作为分隔符分开,而 TIME 类型的值应该使用冒号作为分隔符分开。
  需要注意的是,没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳。
  MySQL 还对日期的年份中的两个数字的值,或是 SQL 语句中为 TEAR 类型输入的两个数字进行最大限度的通译。因为所有 TEAR 类型的值必须用 4 个数字存储。MySQL 试图将 2 个数字的年份转换为 4 个数字的值。把在 00-69 范围内的值转换到 2000-2069 范围内。把 70-99 范围内的值转换到 1970-1979 之内。如果 MySQL 自动转换后的值并不符合我们的需要,请输入 4 个数字表示的年份。

DATEYIME 和 TIMESTAMP 类型

   除了日期和时间数据类型,MySQL 还支持 DATEYIME 和 TIMESTAMP 这两种混合类型。它们可以把日期和时间作为单个的值进行存储。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。
  如果我们对 TIMESTAMP 类型的字段没有明确赋值,或是被赋与了 null 值。MySQL 会自动使用系统当前的日期和时间来填充它。

复合类型:

  MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。

ENUM 类型

  ENUM 类型因为只允许在集合中取得一个值,有点类似于单选项。在处理相互排拆的数据时容易让人理解,比如人类的性别。ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外的输入将会使 MySQL 在这个字段中插入一个空字符串。另外如果插入值的大小写与集合中值的大小写不匹配,MySQL 会自动使用插入值的大小写转换成与集合中大小写一致的值。
   ENUM 类型在系统内部可以存储为数字,并且从 1 开始用数字做索引。一个 ENUM 类型最多可以包含 65536 个元素,其中一个元素被 MySQL 保留,用来存储错误信息,这个错误值用索引 0 或者一个空字符串表示。
  MySQL 认为 ENUM 类型集合中出现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为 0 的行就可以很容易地找到错误记录的位置。

SET 类型

  SET 类型与 ENUM 类型相似但不相同。SET 类型可以从预定义的集合中取得任意数量的值。并且与 ENUM 类型相同的是任何试图在 SET 类型字段中插入非预定义的值都会使 MySQL 插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL 将会保留合法的元素,除去非法的元素。
  一个 SET 类型最多可以包含 64 项元素。在 SET 元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以 SET 类型中不可能包含两个相同的元素。
  希望从 SET 类型字段中找出非法的记录只需查找包含空字符串或二进制值为 0 的行。
----------------------------------------------------------------------------------------------------------------
Access数据库的类型

支持类型:
CREATE TABLE `类型表` (
`自动编号` COUNTER NOT NULL,
`文本` VARCHAR(50), //默认为50
`备注` LONGCHAR,
`数字` INTEGER,
`日期_时间` DATETIME,
`货币` CURRENCY,
`是_否` BIT NOT NULL,
`OLE对象` LONGBINARY,
`超链接` LONGCHAR
)
比较两种数据库 :
1)MySQL的auto_increment[自动增长]类型 <==> Access数据库的 COUNTER
2).MySQL的text 长文本类型 <==> Access的 LONGCHAR
Access使用的Text类型长度为255

只需要区分以上两点,就可以从MySQL过渡到Access数据库的使用了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息