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

Oracle基本数据类型(纸质笔记怕弄丢而已)

2017-08-20 11:13 411 查看

Oracle中的数据类型包括:

NUMBER(这种数据类型可以映射到其他数据库的各种数值类型,定义方便)

NUMBER(P,S):P表示数字的总位数,S表示的是数字的小数部分的位数;P是包含S的

例如:NBUMBER(6,2):表示的最大值为整数部分为4位,小数部分为2位(9999.99)

CAHR

CHAR:表示定常字符串,如果存不满,则补齐空格,CHAR(N)N的最大取值为2000;默认为字节类型,也可以声明时指定单位,如CHAR(10 BYTE);除

此之外,还可以指定为字符类型(CHAR),如:CHAR(10 CHAR)

如果不指定长度(CHAR),则默认为1字节CHAR(1);最大长度为2000字节,也就是CHAR(2000)

当存入值时,使用LENGTH()函数查询其长度,如果值为NULL,则返回值为NULL

VARCHAR2
VARCHAR2:为变长字符串,实际的字符串的大小跟随里面放入的值的大小而定,最大长度是4000字节,即VARCHAR2(4000)

DATE

DATE:日期时间类型,默认格式“DD-MON-RR”

LONG和CLOB

当要存储的数据超过CHAR和VARCHAR2的范围时,可以考虑使用LONG或CLOB类型存储。

LONG类型时VARCHAR2的加长版,最多可以存储2G的字符串数据,但是使用LONG类型存在诸多的限制,因此ORACLE建议使用CLOB类型存储长的字符串数据,CLOB类型最多可存储4G的数据

SQL的类型及操作:

分号‘;’不属于sql语句的部分,分号只是用于区分不同的语句,作为分隔。

DDL(数据定义语言)

构成:创建表、删除表、修改表(就是与数据库的表本身结构改变相关的,操作的主体是表

CREATE DATABASE - 创建新数据库

CREATE  DATABASE  database_name;


CREATE TABLE - 创建新表

CREATE  TABLE  table_name (
字段名1  数据类型,
字段名2  数据类型,
......
)


ALTER TABLE - 变更(改变)数据库表
增加列

ALTER TABLE table_name ADD(
字段名 数据类型,
字段名 数据类型,
)


修改列

ALTER TABLE table_name MODIFY(
)


删除列

ALTER TABLE table_name DROP (列名)


DROP TABLE - 删除表

DROP TABLE table_name


DML(数据操纵语言)

构成:插入数据、修改数据、删除数据(就是与表中的数据有关的操作,操作的主体是数据

INSERT

INSERT INTO table_name(列名)VALUES(对应列要插入的的数据)


INSERT INTO table_name VALUES (所有的列的数据,插入的顺序与表的列对应)


UPDATE

UPDATE table_name
SET column=value[,column=value]...
[WHERE condition]


DELETE

DELETE [FROM] table_name [WHERE condition];


字符串函数

CONCAT(char1, char2)

字符串连接函数,concat函数只能有两个参数,如果要连接多个字符串,使用CONCAT(char1,CONCAT(char2,char3));

SQL高级操作

序列

序列是一种用来生成唯一数据值的数据库对象。序列的值由oracle程序按递增或递减顺序自动生成,通常用来自动产生表的主键值,是一种高效率获得唯一键值的途径。

序列是独立于数据库对象的,和表是独立的对象,序列并不附属于表。(因此在创建序列的SQL语句中不能将其与任何表关联)

一个序列可以为一个表或多个表提供主键值

创建序列
CREATE SEQUENCE sequence_name
[START WITH i][INCREMENT BY j]   //序列的第一个值为i;如果j是正数,表示递增,如果j是负数,表示递减
[MAXVALUE m][NOMAXVALUE]    //序列表示的最大值为m
[MINVALUE n][NOMINVALUE]    //序列表示的最小值为n
[CYCLE | NOCYCLE][CACHE p | NOCACHE]    //表示序列在递增至最大或递减至最小时,能否继续生成序列号;是否预先存取p个数据在缓存中


使用序列

seq_name.NEXTVAL:获取序列的下一个值

seq_name.CURRVAL:获取序列的当前值

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