oracle支持的数据类型

合集下载

oracle的varchar类型

oracle的varchar类型

oracle的varchar类型(实用版)目录1.Oracle 的 VARCHAR 类型的定义2.VARCHAR 类型的特点3.VARCHAR 类型的使用方式4.VARCHAR 类型的优缺点5.总结正文1.Oracle 的 VARCHAR 类型的定义在 Oracle 数据库中,VARCHAR 类型是一种用于存储字符数据的数据类型。

它可以存储任意长度的字符,包括中文、英文、数字和特殊符号等。

VARCHAR 类型是 Oracle 数据库中最常用的字符类型之一。

2.VARCHAR 类型的特点VARCHAR 类型的主要特点有以下几点:(1)存储灵活:VARCHAR 类型可以存储任意长度的字符数据,最大长度可以达到 4000 字节。

(2)使用方便:VARCHAR 类型的数据可以直接与其他字符类型进行运算和比较,也可以作为索引使用。

(3)存储效率高:VARCHAR 类型采用字符集存储数据,可以有效地节省存储空间,提高存储效率。

3.VARCHAR 类型的使用方式在 Oracle 数据库中,可以使用 VARCHAR 类型创建表、插入数据、进行查询等操作。

以下是 VARCHAR 类型的一些常见使用方式:(1)创建表:在创建表时,可以定义 VARCHAR 类型的列,用于存储字符数据。

例如:```CREATE TABLE EMPLOYEE (ID NUMBER PRIMARY KEY,NAME VARCHAR2(50),AGE NUMBER,SEX CHAR(1));```(2)插入数据:可以使用 INSERT 语句向 VARCHAR 类型的列中插入数据。

例如:```INSERT INTO EMPLOYEE (ID, NAME, AGE, SEX) VALUES (1, "张三", 30, "M");```(3)查询数据:可以使用 SELECT 语句查询 VARCHAR 类型的列中的数据。

oracle中varchar2 参数

oracle中varchar2 参数

oracle中varchar2 参数varchar2是Oracle数据库中常用的数据类型之一,用于存储可变长度的字符数据。

本文将着重介绍varchar2的特点、用法以及与其他数据类型的比较。

一、varchar2的特点1. 可变长度:varchar2可以存储任意长度的字符数据,最大长度为4000字节或4000字符,取决于数据库的字符集。

2. 节省存储空间:varchar2仅占用实际存储的字符长度,不会浪费空间。

3. 字符集适配性:varchar2支持多种字符集,可以适应不同语言和地区的字符需求。

4. 高性能:varchar2在存储和检索数据时速度较快,适用于对性能要求较高的场景。

二、varchar2的用法1. 创建表时使用varchar2:在创建表时,可以使用varchar2定义某一列的数据类型。

例如,创建一个存储员工姓名的表:CREATE TABLE emp (emp_name VARCHAR2(20));2. 插入数据时使用varchar2:插入数据时,可以使用varchar2定义数据的值。

例如,插入一条员工记录:INSERT INTO emp (emp_name) VALUES ('张三');3. 更新数据时使用varchar2:更新数据时,可以使用varchar2更新某一列的值。

例如,将员工姓名改为'李四':UPDATE emp SET emp_name = '李四' WHERE emp_id = 1;4. 查询数据时使用varchar2:查询数据时,可以使用varchar2作为条件进行筛选。

例如,查询姓'张'的员工:SELECT * FROM emp WHERE emp_name LIKE '张%';三、varchar2与其他数据类型的比较1. varchar2 vs char:varchar2和char都用于存储字符数据,但char是定长的,而varchar2是可变长的。

ORACLE常用数据库类型(转)

ORACLE常用数据库类型(转)

ORACLE常⽤数据库类型(转)oracle常⽤数据类型1、Char定长格式字符串,在数据库中存储时不⾜位数填补空格,它的声明⽅式如下CHAR(L),L为字符串长度,缺省为1,作为变量最⼤32767个字符,作为数据存储在ORACLE8中最⼤为2000。

不建议使⽤,会带来不必要的⿇烦a、字符串⽐较的时候,如果不注意(char不⾜位补空格)会带来错误b、字符串⽐较的时候,如果⽤trim函数,这样该字段上的索引就失效(有时候会带来严重性能问题)c、浪费存储空间(⽆法精准计算未来存储⼤⼩,只能留有⾜够的空间;字符串的长度就是其所占⽤空间的⼤⼩)2、Varchar2/varchar⽬前VARCHAR是VARCHAR2的同义词。

⼯业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。

Oracle⾃⼰开发了⼀个数据类型VARCHAR2,这个类型不是⼀个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。

如果你想有向后兼容的能⼒,Oracle建议使⽤VARCHAR2⽽不是VARCHAR。

不定长格式字符串,它的声明⽅式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最⼤32767个字节,作为数据存储在ORACLE8中最⼤为4000。

在多字节语⾔环境中,实际存储的字符个数可能⼩于L值,例如:当语⾔环境为中⽂(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,⼀个VARCHAR2(200)的数据列可以保存200个英⽂字符或者100个汉字字符;对于4000字节以内的字符串,建议都⽤该类型a。

VARCHAR2⽐CHAR节省空间,在效率上⽐CHAR会稍微差⼀些,即要想获得效率,就必须牺牲⼀定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。

b。

VARCHAR2虽然⽐CHAR节省空间,但是如果⼀个VARCHAR2列经常被修改,⽽且每次被修改的数据的长度不同,这会引起‘⾏迁移’(Row Migration)现象,⽽这造成多余的I/O,是数据库设计和调整中要尽⼒避免的,在这种情况下⽤CHAR代替VARCHAR2会更好⼀些。

Oracle中的数据类型

Oracle中的数据类型

Oracle中的数据类型Ø简介本⽂主要来讨论 Oracle 中的数据类型,包括以下内容:1.概念介绍2.数值类型3.字符类型4.⽇期类型5.⼤数据与⼆进制类型6.列举常⽤类型的数字代码1.概念介绍在我们的程序中有各种数据类型,⽽在 Oracle 中也有很多种类型,其实每⼀种语⾔的数据类型都会跟数据库中的数据类型⼤致的对应起来。

⽐如:在 Oracle 中主要分为四⼤数据类型,即:数字类型、字符类型、⽇期类型,以及⼤数据与⼆进制类型,下⾯就来讨论着⼏种常⽤的数据类型。

2.数值类型1)NUMBER(Type = 2)number 类型是 Oracle 中常⽤的数据类型,即可以⽤于存储整数整数,也可以存储⼩数⼩数,是⼀个⾮常有意思的数据类型。

number 是⼀个可变长度可变长度的数据类型,并且始终保持四舍五⼊四舍五⼊的原则。

number 可以指定两个参数 number(p,s):l p表⽰有效位,从左边第⼀个⾮0的数字开始数,到结尾的长度,取值范围:1 ~ 38;l s表⽰⼩数位,取值范围:-84 ~ 127。

注意:注意:通常情况下(需要整数位时),应该 p > s,例如:1.number(3,2) 只能存储:0.01 ~ 9.99 和 -0.01 ~ -9.992.number(3,3) 只能存储:0.001 ~ 0.999 和 -0.001 ~ -0.9993.number(2,3) 只能存储:0.001 ~ 0.099 和 -0.001 ~ -0.099n number 可以表⽰的数值范围:-1.0e-130 ~ 1.0e+126,占⽤空间为1 ~ 22 个字节。

下⾯看⼏个常见的例⼦:1.numbercreate table t_number(num number);insert into t_number values(56);insert into t_number values(56.78);select * from t_number;执⾏以上语句,实际存储为56和56.78。

oracle的varchar类型

oracle的varchar类型

oracle的varchar类型
摘要:
1.Oracle 的VARCHAR 类型的定义和特点
2.VARCHAR 类型的使用限制和注意事项
3.VARCHAR 类型的存储方式和性能影响
4.VARCHAR 类型的优缺点
正文:
Oracle 的VARCHAR 类型是Oracle 数据库中用于存储字符串数据的一种数据类型。

它允许用户在数据库中存储长度不一的字符串数据,并且支持对字符串数据进行各种操作,如字符串连接、子串提取等。

在使用VARCHAR 类型时,需要注意一些限制和注意事项。

首先,VARCHAR 类型的最大长度为4000 字节,超过这个长度需要使用其他数据类型,如CLOB 或BLOB。

其次,VARCHAR 类型的长度必须是2 的整数次幂,不能是任意整数。

此外,VARCHAR 类型的字符集必须与数据库的字符集匹配,否则可能会导致数据存储或查询错误。

VARCHAR 类型的存储方式是基于字符的,即每个字符占用一个字节。

如果字符串中包含中文字符,则需要使用更多的字节来存储。

因此,VARCHAR 类型的存储效率相对于其他字符串数据类型(如CLOB 或BLOB)较低。

但是,VARCHAR 类型的查询和索引效率较高,因为它可以直接在数据库中进行字符串操作。

总的来说,VARCHAR 类型是一种灵活且高效的字符串数据类型,适用于
存储长度较短的字符串数据。

但是,如果需要存储较长的字符串数据,可以考虑使用CLOB 或BLOB 类型,以提高存储效率。

oracle sql server number类型

oracle sql server number类型

oracle sql server number类型
Oracle和SQL Server中的NUMBER类型是用于存储数字的数据类型。

在Oracle中,NUMBER类型用于存储固定和浮点数值。

它可以存储从正无穷大到负无穷大的值,以及零和非数字(NaN)值。

NUMBER类型可以具有精度和标度,其中精度表示数字的总位数,而标度表示小数点右侧的位数。

例如,NUMBER(5,2)可以存储最大为9999.99的值。

在SQL Server中,没有与Oracle中的NUMBER类型完全匹配的数据类型。

但是,SQL Server提供了几种用于存储数字的数据类型,如INT、FLOAT、DECIMAL 和NUMERIC。

这些数据类型可以用来存储不同范围和精度的数字值。

例如,INT 类型用于存储整数,而DECIMAL或NUMERIC类型可以用来存储固定小数点或浮点数值,并指定精度和小数位数。

需要注意的是,虽然Oracle和SQL Server都支持数字类型的存储,但它们的具体实现和语法可能会有所不同。

因此,在编写数据库查询和应用程序时,应考虑到所使用的特定数据库管理系统的要求和限制。

oracle数据面试题

oracle数据面试题

oracle数据面试题Oracle是一种关系型数据库管理系统,广泛应用于企业级软件开发和数据管理中。

在进行Oracle数据面试时,面试官可能会提问一些与Oracle数据库相关的问题。

下面是一些常见的Oracle数据面试题:1. 什么是Oracle数据库?Oracle数据库是一种关系型数据库管理系统,由美国甲骨文公司开发。

它采用表结构存储数据,并使用结构化查询语言(SQL)进行数据管理。

Oracle数据库提供高性能、高可用性和可扩展性,并被广泛用于大型企业级应用程序和数据仓库。

2. Oracle数据库的体系结构是怎样的?Oracle数据库的体系结构由两个主要组件组成:实例(Instance)和数据库(Database)。

实例包括内存结构(例如SGA和PGA)和后台进程(例如后台写进程和后台读进程),而数据库则包含数据文件、控制文件和日志文件等。

3. 什么是SGA和PGA?SGA(System Global Area)是Oracle数据库实例的共享内存区域,包含缓冲区高速缓存、共享池和重做日志缓冲区等。

PGA(Program Global Area)是每个数据库连接的私有内存区域,包含了会话变量和排序区等。

4. Oracle数据库的常见数据类型有哪些?Oracle数据库支持多种数据类型,包括字符类型(如VARCHAR2和CHAR)、数值类型(如NUMBER和INTEGER)、日期类型(如DATE和TIMESTAMP)以及大对象类型(如CLOB和BLOB)等。

5. 什么是索引?索引是一种数据结构,用于加快数据库查询的速度。

在Oracle数据库中,可以为表的一个或多个列创建索引,这样在查询时可以直接通过索引而不是全表扫描来找到匹配的数据。

6. 如何创建一个表?在Oracle数据库中,可以使用CREATE TABLE语句来创建表,如下所示:```sqlCREATE TABLE table_name (column1 datatype constraint,column2 datatype constraint,...);```其中,table_name是表的名称,column1、column2等是列名,datatype是列的数据类型,constraint是列的约束(如主键、外键、唯一性约束等)。

oracle的clob类型

oracle的clob类型

oracle的clob类型一、CLOB类型的概述CLOB是Oracle数据库中的一种数据类型,全称为Character Large Object,即字符大对象。

它可以存储大量的文本数据,最大容量可以达到4GB。

CLOB类型的数据在存储和检索时与普通字符串不同,需要特殊的处理方式。

二、CLOB类型的创建在Oracle数据库中创建一个CLOB类型的字段需要使用CREATE TABLE语句,并指定字段名、数据类型和大小等信息。

例如:CREATE TABLE my_table (id NUMBER,clob_field CLOB);这样就创建了一个名为my_table的表,其中包含一个id字段和一个clob_field字段,clob_field字段的数据类型为CLOB。

三、CLOB类型的插入向CLOB类型字段中插入数据需要使用PL/SQL或Java等编程语言进行操作。

以下是PL/SQL插入示例:DECLAREmy_clob CLOB;BEGINSELECT clob_field INTO my_clob FROM my_table WHERE id = 1 FOR UPDATE;DBMS_LOB.WRITEAPPEND(my_clob, LENGTH('Hello world'),'Hello world');COMMIT;END;这段代码首先从my_table表中查询id为1的记录,并将其对应的clob_field字段赋值给变量my_clob。

然后使用DBMS_LOB.WRITEAPPEND函数将字符串“Hello world”写入到my_clob变量中,并提交事务。

四、CLOB类型的读取从CLOB类型字段中读取数据也需要使用PL/SQL或Java等编程语言进行操作。

以下是PL/SQL读取示例:DECLAREmy_clob CLOB;my_string VARCHAR2(32767);BEGINSELECT clob_field INTO my_clob FROM my_table WHERE id = 1; DBMS_LOB.READ(my_clob, LENGTH(my_clob), 1, my_string);DBMS_OUTPUT.PUT_LINE(my_string);END;这段代码首先从my_table表中查询id为1的记录,并将其对应的clob_field字段赋值给变量my_clob。

ORACLE数据库字段类型说明

ORACLE数据库字段类型说明

ORACLE数据库字段类型说明类型含义存储描述备注CHAR固定长度字符串最⼤长度2000bytesVARCHAR2可变长度的字符串,最⼤长度4000bytes可做索引的最⼤长度749 NCHAR根据字符集⽽定的固定长度字符串最⼤长度2000bytesNVARCHAR2根据字符集⽽定的可变长度字符串最⼤长度4000bytesDATE⽇期(⽇-⽉-年)DD-MM-YY(HH-MI-SS),经过严格测试,⽆千⾍问题TIMESTAMP⽇期(⽇-⽉-年)DD-MM-YY(HH-MI-SS:FF3),经过严格测试,⽆千⾍问题与DATE相⽐较,TIMESTAMP有⼩数位秒信息LONG超长字符串最⼤长度2G,⾜够存储⼤部头著作RAW固定长度的⼆进制数据最⼤长度2000bytes可存放多媒体图象声⾳等LONG RAW可变长度的⼆进制数据最⼤长度2G可存放多媒体图象声⾳等BLOB⼆进制数据最⼤长度4GCLOB字符数据最⼤长度4GNCLOB根据字符集⽽定的字符数据最⼤长度4GBFILE存放在数据库外的⼆进制数据最⼤长度4GROWID数据表中记录的唯⼀⾏号10bytes**.*.*格式,*为0或1NROWID⼆进制数据表中记录的唯⼀⾏号最⼤长度4000bytesNUMBER(P,S)数字类型P为整数位,S为⼩数位DECIMAL(P,S)数字类型P为整数位,S为⼩数位INTEGER整数类型⼩的整数FLOAT浮点数类型NUMBER(38),双精度REAL实数类型NUMBER(63),精度更⾼**⽬前Oracle数据库⼤概有26个字段类型,⼤体分为六类,分别是字符串类型、数字数据类型、⽇期时间数据类型、=⼤型对象(LOB)数据类型、RAW和LONG RAW数据类型、ROWID和UROWID数据类型。

**当然Oracle还提供⽤户⾃定义的数据类型,但在我这篇不做讨论。

字符串类型Charchar数据类型存储固定长度的字符值。

⼀个CHAR数据类型可以包括1到2000个字符。

oracle数据库常用关键字汇总!

oracle数据库常用关键字汇总!

oracle数据库常⽤关键字汇总!Oracle基础数据类型: 4类: 字符型:字符串 char(最⼤2000), nchar(最⼤1000, ⽀持Unicode)--->固定长度 varchar2(最⼤4000), nvarchar2(最⼤2000, ⽀持Unicode)--->可变长度 数字类型 包括整数和⼩数 number(有效数字, 总位数); float()--->存储⼆进制类型的数据, 1-126位0.30103 ⽇期类型:时间 date:取值范围:公元前4712年1⽉1号---公元9999年12⽉31号, 可以直接精确到秒 timestamp(时间戳: 更精确的数据, 可以精确到毫秒) 其它类型:⼤⽂本, ⽂件 blob: 最⼤4G, 以⼆进制的形式来存放数据 clob: 最⼤4G, 以字符串的形式存放 Oracle运算符和表达式 表达式类似于java, 可以是常量, 可以是变量, 也可以是表中的⼀个字段 算术运算符(+ - * /) ⽐较运算符(> >= < <= = <>/!=) 逻辑运算符(and or not) 字符串连接符(||) 常⽤关键字 insert into----insert into 表名 values (); delete-----DELETE 表名 WHERE 列名运算符条件 update----UPDATE 表名 SET 列名=值 WHERE 限制条件 select---尽量不要写* where in like(%, _)---模糊查询,%表⽰0个或多个;_表⽰⼀个; order by----SELECT * FROM emp ORDER BY deptid DESC, ID DESC(排序,加上desc成倒序) group by--(group by 增强)-------结合分组函数使⽤ SELECT deptid FROM emp GROUP BY deptid having case...when...--------SELECT CASE E.SSEX WHEN 1 THEN '男' WHEN 0 THEN '⼥' ELSE '不详' END bb FROM EMP E; set distinct----去除⼀列中的重复; between...and(闭合区间, 即包括前⾯的数, 也包括后⾯的数) all-------SELECT * FROM emp e WHERE e.intime>=ALL(SELECT e1.intime FROM emp e1);。

Oracle11g数据类型

Oracle11g数据类型

Oracle11g数据类型1. 字符类型数据类型长度说明CHAR(n BYTE/CHAR)默认1字节,n值最⼤为2000末尾填充空格以达到指定长度,超过最⼤长度报错。

默认指定长度为字节数,字符长度可以从1字节到四字节。

NCHAR(n)默认1字符,最⼤存储内容2000字节末尾填充空格以达到指定长度,n为Unicode字符数。

默认为1字节。

NVARCHAR2(n)最⼤长度必须指定,最⼤存储内容4000字节变长类型。

n为Unicode字符数VARCHAR2(n BYTE/CHAR)最⼤长度必须指定,⾄少为1字节或者1字符,n值最⼤为4000变长类型。

超过最⼤长度报错。

默认存储的是长度为0的字符串。

VARCHAR同VARCHAR2不建议使⽤2. 数字类型数据类型长度说明NUMBER(p[,s])1-22字节。

P取值范围1到38S取值范围-84到127存储定点数,值的绝对值范围为1.0 x 10 -130⾄1.0 x 10 126。

值⼤于等于1.0 x 10 126时报错。

p 为有意义的10进制位数,正值s为⼩数位数,负值s表⽰四舍五⼊到⼩数点左部多少位。

BINARY_FLOAT5字节,其中有⼀长度字节。

32位单精度浮点数类型。

符号位1位,指数位8位,尾数位23位。

BINARY_DOUBLE9字节,其中有⼀长度字节。

64位双精度浮点数类型。

3. 时间、时间间隔类型时间字段可取值范围:时间字段时间类型有效值时间间隔类型有效值YEAR-4712⾄9999,包括0任何整数MONTH01⾄120⾄11DAY01⾄31任何整数HOUR00 ⾄ 230 ⾄ 23MINUTE00 ⾄ 590⾄ 59SECOND00 to 59.9(n),9(n)不适⽤与DATE类型0 to 59.9(n)TIMEZONE_HOUR-1⾄14,不适⽤与DATE和TIMESTAMP类型不可⽤TIMEZONE_MINUTE00⾄59,不适⽤与DATE和TIMESTAMP类型不可⽤TIMEZONE_REGION不可⽤TIMEZONE_ABBR不可⽤时间、时间间隔类型:数据类型长度说明DATE7字节默认值为SYSDATE的年、⽉,⽇为01。

oracle中varchar2类型

oracle中varchar2类型

oracle中varchar2类型一、概述在Oracle数据库中,VARCHAR2是一种常用的数据类型,它用于存储可变长度的字符数据。

VARCHAR2类型可以存储最大长度为4000字节的字符数据,而且它可以动态地增加或减少存储空间。

二、VARCHAR2类型的特点1. 可变长度VARCHAR2类型是可变长度的,这意味着它可以动态地增加或减少存储空间。

当一个VARCHAR2列被定义时,必须指定它的最大长度。

然而,在实际使用中,如果存储的数据不到最大长度,则只会占用实际需要的空间。

2. 存储容量在Oracle数据库中,VARCHAR2类型可以存储最大长度为4000字节的字符数据。

如果要存储更长的字符数据,则需要使用CLOB类型。

3. 存储方式VARCHAR2类型以变长方式存储字符数据。

在Oracle数据库中,每个VARCHAR2值都包含两个字节的前缀信息,该信息描述了该值所占用的字节数。

4. 数据比较在Oracle数据库中,VARCHAR2类型采用二进制排序方式进行比较。

这意味着,在进行字符串比较时会考虑到字符编码和排序规则。

三、VARCHAR2类型的使用方法1. 定义列时指定最大长度在创建表时定义列时可以指定该列所能容纳的最大长度,例如:CREATE TABLE mytable (id NUMBER,name VARCHAR2(20),email VARCHAR2(50));在上面的例子中,name列最多可以容纳20个字符,email列最多可以容纳50个字符。

2. 插入数据时指定长度在插入数据时,可以通过指定字符串的长度来控制该字符串在数据库中所占用的空间大小。

例如:INSERT INTO mytable (id, name, email) VALUES (1, 'John','****************');INSERT INTO mytable (id, name, email) VALUES (2, 'Jane','****************');在上面的例子中,第一条插入语句中的name和email值都不到其最大长度,因此它们只会占用实际需要的空间;而第二条插入语句中的name和email值都达到了其最大长度,因此它们将会占用完整的空间。

oraclenumber类型

oraclenumber类型

oraclenumber类型一、概述Oracle数据库中的oraclenumber类型是一种高精度数值类型,用于存储大范围的数字数据。

它可以存储任意精度的数字,包括整数和小数,并支持各种算术运算和比较操作。

二、oraclenumber类型的特点1. 高精度:oraclenumber类型可以存储任意精度的数字数据,不受位数限制。

2. 范围广:oraclenumber类型可以存储从极小值到极大值之间的所有数字。

3. 精确度高:oraclenumber类型能够保证高精度计算时不会出现舍入误差。

4. 支持各种算术运算和比较操作:oraclenumber类型支持加、减、乘、除等基本运算,还支持幂运算、开平方等高级运算。

三、使用方法1. 定义变量:在Oracle数据库中定义一个oraclenumber类型的变量需要使用NUMBER(p,s)语法,其中p表示总位数,s表示小数位数。

例如,NUMBER(10,2)表示最多可以存储10位数字,其中包括2位小数。

2. 赋值:可以使用赋值语句将一个常量或者其他变量赋给一个oraclenumber类型的变量。

例如:DECLAREnum1 NUMBER(10,2);num2 NUMBER(10,2) := 123.45;BEGINnum1 := num2;END;3. 运算:oraclenumber类型支持各种算术运算和比较操作,例如: DECLAREnum1 NUMBER(10,2) := 123.45;num2 NUMBER(10,2) := 67.89;result NUMBER(12,4);BEGINresult := num1 + num2; --加法运算result := num1 - num2; --减法运算result := num1 * num2; --乘法运算result := num1 / num2; --除法运算result := POWER(num1, 3); --幂运算result := SQRT(num1); --开平方运算END;四、注意事项1. oraclinumber类型在存储空间和计算效率上都比较耗费资源,因此在设计表结构时应该谨慎使用。

mysql和Oracle数据类型对照

mysql和Oracle数据类型对照

mysql和Oracle数据类型对照MySQL与Oracle两种数据库在⼯作中,都是⽤的⽐较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上⼀定的⿇烦,下⾯介绍MySQL与Oracle数据库数据类型的对应关系。

⼀、常见数据类型在MySQL与Oracle数据库中的表现形式说明mysql oracle变长字符串VARCHAR[0-65535]定义长度默认按字符长度计算,如果是GBK编码的汉字将占⽤2个字节VARCHAR2[1-4000]VARCHAR是VARCHAR2的同义词定义默认按字节长度计算整数TINYINT(-128-127)SMALLINT(-32768-32767)MEDIUMINT(-8388608-8388607)INT(-2147483648-2147483647)BIGINT(-9223372036854775808-9223372036854775807)⽆专⽤类型,TINYINT可以⽤NUMBER(3,0)代替SMALLINT可以⽤NUMBER(5,0)代替MEDUIMINT可以⽤NUMBER(7,0)代替INT可以⽤NUMBER(10,0)代替BIGINT可以⽤NUMBER(20,0)代替ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词数值类型DECIMAL[1-65[,0-30]]NUMERIC是DECIMAL的同义词NUMBER 可表⽰数范围: 1*10^-130⾄1*10^126NUMBER([1-38][,-84-127])DECIMAL、NUMERIC、DEC是NUMBER的同义词浮点型FLOAT(D,M)oracle10g开始增加BINARY_FLOAT类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有FLOAT和REAL类型,不过这是NUMBER的同义词双精度浮点型DOUBLE(D,M)oracle10g开始增加BINARY_DOUBLE类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有DOUBLE PRECISION类型,不过这是NUMBER的同义词位类型BIT(1-64)⽆DATE,3字节存储,只存储⽇期,没有时间,⽀持范围是[1000-01-01]⾄[9999-12-31]TIME,3字节存储,只存储时⽇期类型TIME,3字节存储,只存储时间,没有⽇期,⽀持范围是[-838:59:59]⾄[838:59:59]DATETIME,占8字节存储,可表⽰⽇期和时间,⽀持范围是[1000-01-01 00:00:00]⾄[9999-12-31 23:59:59]TIMESTAMP,占4字节存储,可表⽰⽇期和时间,范围是[1970-01-01 00:00:00]⾄[2038-01-19 03:14:07]DATE类型7字节存储,可表⽰⽇期和时间,⽀持范围是[-4712-01-01 00:00:00]⾄[9999-12-31 23:59:59]⾼精度⽇期5.6.4以前不⽀持⼩数秒精度5.6.4开始TIME,DATETIME,TIMESTAMP⽀持,最多可以6位⼩数秒,也就是微秒级别TIMESTAMP[0-9]占⽤空间7-11个字节,当⼩数秒精度为0时与DATE类型相同,⼩数秒最⾼精度可达9位,也就是纳精度年份份,⽀持范围是[1901]⾄[2155]⽆对应类型,可以⽤NUMBER(3,0)代替定长字符串CHAR[0-255],定义长度默认按字符长度计算,最⼤保存255字符CHAR[1-2000]定义默认按字节长度计算⽆符号说明⽀持,⽤于数值类型不⽀持⼤字符串,⼀般⽤于存储⽂本⽂件或超⼤描述及备注类信息TINYTEXT 最⼤⽀持255个字节TEXT最⼤⽀持65535个字节MEDIUMTEXT最⼤⽀持16MB个字节LONGTEXT最⼤⽀持4GB字节字段不⽀持默认值⽀持(CLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4GB个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONG类型,是早期的存储⼤字符串类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制对象,⼀般⽤于存储⽂件或图⽚数据TINYBLOB 最⼤⽀持255个字节BLOB最⼤⽀持65535个字节MEDIUMBLOB最⼤⽀持16MB个字节LONGBLOB最⼤⽀持4GB字节字段不⽀持默认值⽀持(BLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4G个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONGRAW类型,是早期的存储⼆进制类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制信息BINARY(0-255),定长VARBINARY(0-65535),变长RAW(1-2000)枚举类型ENUM(v1,v2,v3,...),最多65535个元素不⽀持集合类型SET(v1,v2,v3,...),最多64个元素不⽀持国际化字符集类型,较少使⽤⽆,MYSQL可以对每个字段指定字符编码⽀持NCHAR(1-2000) NVARCHAR(1-4000)外部⽂件指针类型不⽀持⽀持⽂件⼤⼩最⼤4GB⽂件名称最长255字符不⽀持⽀持⾃动增长类型⽀持使⽤简单不⽀持⼀般使⽤SEQUENCE解决,⽤法与⾃增类型差别较⼤,使⽤较复杂,但能实现⾮常灵活的应⽤,包括字符⾃增主键、全局主括字符⾃增主键、全局主键等等不⽀持函数和表达式TEXT和BLOB字段类型不⽀持默认值⽀持函数和表达式⽀持,例如,把emp表的id字段顺序放在name字段后⾯:alter table emp modify column id varchar(20) after name;不⽀持,只能重建表或字段虚拟字段是⼀个逻辑字段定义,其结果值通常是⼀个表达式,并在表中存储物理值,不占⽤空间,主要⽤于简化查询逻辑。

oracle的char类型

oracle的char类型

oracle的char类型Oracle的CHAR类型是一种用于存储固定长度字符串的数据类型。

在数据库中,字符串是一种常见的数据类型,它用于存储文本、名称、描述等信息。

而在这些字符串中,有些需要固定长度的,而不是根据内容的长度来动态分配存储空间。

这时候,CHAR类型就派上了用场。

CHAR类型在创建表时,可以指定字符串的固定长度。

比如,创建一个名为"employees"的表,其中有一个字段为"last_name",类型为CHAR(20),表示该字段的长度为20个字符。

这样,无论实际存储的字符串长度是多少,都会占用20个字符的存储空间。

如果存储的字符串长度小于20个字符,会在末尾补充空格,以达到固定长度。

而如果存储的字符串长度大于20个字符,则会被截断,只保留前20个字符。

使用CHAR类型的好处是,它可以提高查询和排序的效率。

由于字符串的长度固定,数据库可以在存储数据时按照固定长度进行存储,这样可以减少存储空间的浪费。

而在查询和排序时,也可以直接根据固定长度进行处理,而不需要额外的计算和调整。

这对于处理大量数据的数据库来说,可以提高性能和效率。

CHAR类型还可以用于存储一些固定格式的数据,比如电话号码、邮政编码等。

这些数据一般都有固定的长度和格式要求,使用CHAR类型可以确保数据的准确性和一致性。

需要注意的是,由于CHAR类型是固定长度的,所以在插入数据时需要格外小心。

如果插入的字符串长度超过了字段的定义长度,数据会被截断,可能导致数据丢失或错误。

因此,在设计表结构时,需要根据实际情况考虑字段的长度,以确保数据的完整性和正确性。

除了CHAR类型,Oracle还提供了其他字符串类型,比如VARCHAR2和CLOB。

这些类型都有各自的特点和用途。

VARCHAR2类型是可变长度的字符串类型,它可以根据实际存储的字符串长度动态分配存储空间。

而CLOB类型则适用于存储大文本数据,它可以存储超过4000个字符的字符串。

oracletype用法

oracletype用法

oracletype用法1. 什么是oracletype?oracletype是Oracle数据库中的一种特殊数据类型,它用于存储和处理大型的对象数据(LOB)。

LOB是指大型二进制对象(BLOB)、大型字符对象(CLOB)、大型字符串对象(NCLOB)和大型媒体对象(BFILE)。

2. 使用oracletype的好处使用oracletype的主要好处是可以有效地存储和处理大型的对象数据。

与普通的数据类型相比,oracletype可以存储更大的数据量,并提供更高的性能和灵活性。

以下是使用oracletype的一些好处:•存储大型数据:oracletype可以存储大于2GB的数据,适用于存储大型的文档、图像、视频等对象数据。

•高性能:oracletype提供了高效的数据存储和检索机制,可以在处理大型对象数据时提供更快的响应时间。

•灵活性:oracletype支持多种数据类型,包括二进制数据、字符数据和媒体数据,可以满足不同类型数据的存储需求。

•可扩展性:oracletype可以与其他Oracle数据库功能和工具集成,如索引、分区、备份和恢复等,可以方便地扩展和管理大型对象数据。

3. oracletype的使用示例3.1 创建oracletype对象在Oracle数据库中,可以使用CREATE TYPE语句创建oracletype对象。

以下是一个创建oracletype对象的示例:CREATE OR REPLACE TYPE my_lob_type AS OBJECT (id NUMBER,data CLOB);上述示例创建了一个名为my_lob_type的oracletype对象,包含id和data两个属性,其中data属性的类型为CLOB。

3.2 使用oracletype对象创建oracletype对象后,可以在表中使用该对象的属性。

以下是一个使用oracletype对象的示例:CREATE TABLE my_table (obj my_lob_type);上述示例创建了一个名为my_table的表,该表包含一个名为obj的列,列的类型为my_lob_type。

各数据库的数据类型的区别

各数据库的数据类型的区别

Oracle、MySQL、SQL Server数据库的数据类型的差异1.Oracle数据库的各种数据类型CHAR 定长的字符型数据,长度<=2000字节VARCHAR2 变长的字符型数据,长度<=4000字节N CHAR 用来存储Unicode字符集的定长字符型数据,长度<=1000字节注意:N字打头的是存储Unicode字符集NVARCHAR2 Unicode字符集的变长字符型数据,长度<=1000字节NUMBER 整型或者浮点型数值DATE 日期数据LONG 2GB的变长字符数据RAW 用来存储非结构化数据的变长字符数据,长度<=2000字节LONG RAW 用来存储非结构化数据的变长字符数据,长度<=2GBROWID 用来存储表中列的物理地址的二进制数据,占用固定的10个字节BLOB 4GB的非结构化的二进制数据CLOB 4GB的字符数据NCLOB 4GB的Unicode字符数据BFILE 把非结构化的二进制数据存储在数据库以外的操作系统文件中UROWID 表示任何类型列地址的二进制数据FLOAT 浮点数2.MySQL数据库的各种数据类型CHAR (M) CHAR数据类型用于表示M长度的字符串。

VARCHAR (M) VARCHAR可以保存可变长度的字符串, VARCHAR数据类型所支持的最大长度也是255个字符。

INT (M) [Unsigned] INT数据类型用于保存从- 2147483647 到2147483648范围之内的任意整数数据。

如果用户使用Unsigned选项,则有效数据范围调整为0-4294967295。

FLOAT [(M,D)] FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。

其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。

DATE DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。

oracle基本数据类型Oracle9i的基本数据类型

oracle基本数据类型Oracle9i的基本数据类型

oracle基本数据类型Oracle9i的基本数据类型
Oracle 9i 的基本数据类型
数据类型含义
char定长的字符型数据,最⼤长度可达2KB
nchar存储Unicode字符集的定长字符型数据,最⼤长度为2KB
Varchar2可变长的字符型数据,最⼤长度可达4000个字符
Nvarchar2存储Unicode字符集的变长字符型数据,最⼤长度为4KB
number存储整型或浮点型数据
Date存储⽇期数据
Long存储最⼤长度为2GB的变长字符数据
Raw存储⾮结构化数据的变长字符数据,最长为2KB
Long Raw存储⾮结构化数据的变长字符数据,最长为2GB
Rowid存储表中列的物理地址的⼆进制数据,占⽤固定的10个字节
Blog⼆进制⼤对象,最⼤长度为4GB
Clob字符⼤对象,最⼤长度为4GB
Nclob存储多达4GB的Unicode字符数据
Bfile把⾮结构化的⼆进制数据存储在数据库以外的操作系统⽂件中
Urowid存储表⽰任何类型列地址的⼆进制数据
float存储浮点数
Oracle 9i 有3种数据类型:基本数据类型、集合类型和关系类型。

基本数据类型:是具有不可分割的数据类型.上表提供了Oracle 9i的16种的基本数据类型。

集合数据类型:包括序列、数组类型和表类型3种。

关系数据类型:也称作引⽤数据类型(REF),它以引⽤的⽅式定义了和其他对象的关系,存储的是指向不同对象数据表的数据的指针。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用的数据库字段类型如下:
字段类型中文说明限制条件其它说明
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),精度更高
数据类型参数描述
char(n) n=1 to 2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)
varchar2(n) n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。

如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle 8i会自动将其删去。

VARCHAR2是最常用的数据类型。

可做索引的最大长度3209。

number(m,n) m=1 to 38
n=-84 to 127 可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。

如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。

如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。

如:number(3,0),输入575.316,真正保存的数据是575。

date 无从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle 8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。

缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日。

long 无可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。

long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

raw(n) n=1 to 2000 可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。

raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

long raw 无可变长二进制数据,最大长度是2GB。

Oracle 8i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。

在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

blob /clob /nclob 无三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。

LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。

可以执行读取、存储、写入等特殊操作。

bfile 无在数据库外部保存的大型二进制对象文件,最大长度是4GB。

这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。

Oracle 8i可以读取、查询BFILE,但是不能写入。

相关文档
最新文档