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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值