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

SQL及Oracle和MySQL的数据类型详解

2013-04-20 13:43 585 查看
SQL(Structured Query Language) 又称结构化查询语言,是一种在关系型数据库中定义和查询及操纵数据的标准语言,是用户和数据库之间进行交流的接口,正在像Oracle、MySQL、SQL Server等几乎所有的数据库实现了该接口,都支持SQL的查询。SQL语言结构简洁,功能强大,简单易学,所以自从推出以来,SQL语言得到了广泛的应用。

SQL 语言由下面5个子语言组成:

数据定义语言(DDL-Data Definition Language);

数据查询语言(SELETE-Query Statements);

数据操纵语言(DML-Datat Manipulation Language);

事务控制语言(TC-Transaction Control Statements);

数据控制语言(DCL-Datat Control Language);

数据类型

Oracle和MySQL都是两种重要的数据为,下面从它们各自的基本数据类型开始讲起。

数据类型

数据类型

说明

Oracle

MySQL

数值类型

NUMBER(p,s)

存储数值数据类型,如浮点型、整数型、分数、双精度等。其中p为精度,表示数字的总位数(1 <= p <=38) ; s为范围,表示小数点右边的位数,它在-84至127之间。默认38位

TINYINT

微整型,1字节

SMALLINT

小整型,2字节

MEDIUMINT

中整型,3字节

INT或INTEGER

整数数据类型

整型,4字节

BIGINT

大整型,8字节

FLOAT

浮点数数据类型

单精度浮点数值,4字节

DOUBLE

双精度浮点数值,8字节

DECIMAL

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

字符串类型

CHAR(n)

n=1to2000字节,定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

定长字符串,0-255字节

NCHAR(n)

NLS(national language support , 国际语言支持)的数据类型仅可以存储由数据库 NLS 字符集定义的 Unicode 字符集。Oracle最多可以存储2000Byte

VARCHAR(n)

最多可以以可变长度来存储4000B,因此不需要空格来作补充。

变长字符串,0-255字节

NVARCHAR(n)

n=1to4000字节,最多可以以可变长度来存储4000B,因此不需要空格来作补充。

NLS(national language support , 国际语言支持)的数据类型仅可以存储由数据库 NLS 字符集定义的 Unicode 字符集。

VARCHAR2(n)

VARCHAR2 比 VARCHAR 更适合使用,由于兼容性的原因,所以仍然在 Oracle 数据库中保留着 VARCHAR 。

NVARCHAR2

NLS 的数据类型与 VARCHAR2 数据类型等价。这个数据类型最多可存储4000B 。

CLOB

存储大量的单字节字符数据和多字节字符数据。存储的最大容量为4G

NCLOB

存储可变长度的Unicode字符集字符数据,存储的最大容量为4G

BLOB

存储较大的二进制对象。例:图形,视频,音频等

BFILE

bfile:文件定位器;指向位于服务器文件系统是二进制文件(存储一个文件路径)

LONG

存储可变长度的字符数据,最多存储2GB 。

RAW

存储基于字节的数据。最多存储2000个字节,使用需指定大小。raw数据类型可以建立索引。

LONG RAW

存储可变长度的二进制数据。最多能存储2GB。不能索引。

TINYBLOB

不超过 255 个字符的二进制字符串,0-255字节

TINYTEXT

短文本字符串,0-255字节

BLOB

二进制形式的长文本数据,0-65 535字节

TEXT

长文本数据,0-65 535字节

MEDIUMBLOB

二进制形式的中等长度文本数据

MEDIUMTEXT

中等长度文本数据,0-16 777 215字节

LOGNGBLOB

二进制形式的极大文本数据,0-4 294 967 295字节

LONGTEXT

极大文本数据,0-4 294 967 295字节

日期和时间

DATE

存储表的日期和时间数据,使用7个字节固定长度,每个字节分别存储世纪,年,月,日,小时,分和秒;值从公元前4712年1月1日到公元9999年12月31日。 Oracle中的sysdate函数功能是返回当前的日期和时间。

日期值,YYYY-MM-DD

TIMESTAMP

存储日期的年,月,日以及时间的小时,分和秒值。其中秒值精确到小数点后6位,同时包含时区信息。 Oracle中的systimestamp函数功能是返回当前日期,时间和时区。

TIME

时间值或持续时间,HH:MM:SS

YEAR

年份值,YYYY

DATETIME

混合日期和时间,YYYY-MM-DD HH:MM:SS

TIMESTAMP

混合日期和时间值,时间戳,YYYYMMDD HHMMSS

复合类型

ENUM

一个 ENUM 类型最多可以包含 65536 个元素,其中一个元素被 MySQL 保留,用来存储错误信息,这个错误值用索引 0 或者一个空字符串表示。

SET

容器类型,一个 SET 类型最多可以包含 64 项元素,且不可能包含两个相同的元素

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: