Oracle数据库结构化查询语言和Oracle数据库数据类型
目前主流关系型数据库:
大型数据库:sybase、Oracle、db2
中型数据库:mysql、SqlServer、infomix
小型数据库:Access、VisualFoxpro
Oracle数据库结构化查询语言和数据类型:
一、结构化查询语言(SQL)
1.SQL(Structured Query Language):结构化查询语言
2.SQL是在关系型数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据、操纵数据、定义数据、控制数据
3.所有数据库都使用相同或者相似的语言
4.SQL 支持下列类别的命令:
-数据定义语言(DDL):Data Definition Language
用于建立、修改、删除数据库对象 。包括:CREATE、ALTER、DROP、TRUNCATE
-数据操纵语言(DML):Data Manipulation Language
用于改变数据库表中的数据,和事务相关,执行完后需要经过事物提交,才将改变用用到数据库中。包括:INSERT、UPDATE、DELETE
-事务控制语言(TCL):Transaction Control Language
用于维护数据一致性的语句包括:COMMIT、ROLLBACK、SAVEPOINT
-数据控制语言(DCL):Data Control Language
用于执行权限的赋予和收回操作包括:GRANT、REVOKE、CREATE USER
-数据查询语言(DQL):Data Query Language
用来查询所需要的数据,SELECT 语句
二、Oracle 数据类型
Oracle的数据类型类别:字符型、数据型、日期时间型、二进制型、大对象型
1.字符型
1)CHAR
-表示固定长度的字符类型
-经常被定义成CHAR[(N)]形式,例CHAR(2),N表示占用的字节数,N最大为2000字节
-定义为CHAR时,默认为1字节
2)VARCHAR2
-表示变长字符类型
-定义格式是VARCHAR2(N),N表示最多可占用的字节数
-N范围1~4000字节
CHAR和VARCHAR可以直接指定为字符,1个字符相当于2个字节
例:CHAR(10 CHAR),20个字节,每个英文字符占用一个字节,每个中文字符按编码不同,占2-4个字节(GBK:2字节,UTF-8:2-4字节)
3)LONG
-表示可变长度字符类型
-定义格式:直接定义LONG,最大存储2GB
注意:每个表只能有一个LONG类型列,不能作为主键,不能建立索引,不能出现在查询条件中,开发中建议用CLOB代替LONG类型
2.数据型
1)NUMBER
-可以存储整数、浮点数和实数
-最高精度 38 位,范围:负的10的38次方到10的38次方。P:[0,138],S:[-84,127]
-数值数据类型的声明语法:NUMBER [( p[, s])] ,P表示精度,S表示小数点的位数
-可以直接定义NUMBER类型,默认为38位
-定义NUMBER(p),表示整数,p表示数字的总位数[0,38],s默认0
-定义NUMBER(p,s)表示浮点数,指定了s,但没有指定p,则p默认38,如:colum_name number(*,s)
例:定义NUMBER(4,2),最大可插入数据为NUMBER(99.994),数据库中数据为99.99,会把最后一位“4”进行四舍五入,保留两位小数。如果插入数据为NUMBER(25.5667),数据库保存数据为25.57
另:数值类型可以定义为 DECIMAL(p,s)或者DEC(p,s)、INTEGER或者INT、SMALLINT、FLOAT(b)、DOUBLE PRECISION、REAL
-用于定义日期时间的数据,保存至秒
-DATE表示的时间范围:公元前4712年1月1日-公元9999年12月31日
-长度是7个字节
-默认格式是:DD-MON-RR 例如:11-APR-78
例:select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual; 显示:20150525 10:30:57
4.二进制型-保存日期时间,最高精度可以到ns(纳秒),秒的小数点后6位
-数据库内部用7或者11个字节存储,精度为0,用7个字节存储,与DATE相同,精度大于0则用11字节存储
例:select to_char(systimestamp,'yyyymmdd hh24:mi:ssxff6') from dual; 显示:20150525 10:32:09.806000
1)RAW
-数据类型用于存储二进制数据-数据类型最多能存储 2000 字节
2)LONG RAW
-LONG RAW 数据类型用于存储可变长度的二进制数据
-LONG RAW 数据类型最多能存储 2 GB
5.大对象型
LOB 称为“大对象”数据类型,可以存储多达 128TB 的非结构化信息,例如声音剪辑和视频文件等(LOB类型的容量从原来的4G增加到了最大128T)
LOB 数据类型允许对数据进行高效、随机、分段的访问
1)CLOB
-CLOB即 Character LOB(字符LOB),它能够存储大量字符数据
2)BLOB
3)BLFILE-BLOB 即 Binary LOB(二进制 LOB),可以存储较大的二进制对象,如图形、视频剪辑和声音文件
-BFILE 即 Binary File(二进制文件),它用于将二进制数据存储在数据库外部的操作系统文件中6.ROWID和ROWNUM
-ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行
2)ROWNUM
-ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数