Oracle数据类型

1.数据类型

计算机都要有数据类型,不同语言存储数据的方式不同,计算机是二进制 只能识别 0,1信息,机器只能识别电流,电流靠开关控制,开是 1,关是 0,二进制信号再往上转化成更高级的数据数据存在内存里面,永远存在硬盘里面的硬盘数字,英文,标点符号,汉字,日期等、统称数据。

/* 在计算机里叫数据类型不同语言有不同数据类型,我们只研究数据库的数据类型。

三大类:字符串,数字,日期*/

一,字符串:在库里数据只要 '123njnjb' 只要打两个引号都叫字符串

存在表里的时候两个引号不会显示

Varchar2() : 用途存储字符串数据。(50)代表字符长度

在GBK字符集下 1个数字,1个英文,1个符号都是1个长度

1个汉字是2个长度

在UTF-8字符集下 1个数字,1个英文,1个符号都是1个长度

1个汉字是3个长度

nvarchar2,nchar 针对别的字符集,计算长度时和字符集相关

二、数字:0123456

Number(5,2) 逗号可以看成小数点 5.2 小数点左边最多存5位,右边最多存2位

如果左边不够空着就行,右边用0补齐 230.10

int(),double,float

三、日期类型 : 2018/12/4 14:58:00 yyyy/mm/dd hh24:mi:ss

Select Sysdate From dual

and or

and: 交集 过滤条件 两个都满足

or: 并集 过滤条件 只满足一个

数据库的一些对象

constraints 约束 主键,唯一,非空,默认,外键,校验约束(check)

procedure 存储过程

function 函数

table 表

index 索引

view 视图

materialized view 物化视图

sequence 序列

synonym 同义词

database link 数据库连接

tablespace 表空间

--视图

With tmp_xxx As (

Select * From emp Where deptno=20)

Select * From tmp_xxx;

With ... As --相当于创建一个临时表

--With as短语也叫子查询部分可以定义一个SQL片段

--with 必须紧跟引用的select语句,创建的临时表必须被引用否则会报错

--内连视图

Select * From (Select * From emp Where deptno=20);

--定义视图

Create Or Replace View vw_emp20 As--可以存储在数据库中

Select * From emp Where deptno=20;

Select * From vw_emp20;

视图的特点:

1、视图存储数据吗?

视图本身不存储数据,查询视图得到数据来自于执行

视图对应定义的查询语句。

2、你们用视图么?什么情况用?有什么利弊?

2.1)用

2.2)跨用户访问表的时候,会访问对应的视图

例如:HR用户要查询SCOTT用户的EMP表

vw_emp视图:select * from emp

2.3)视图更加灵活。

3、视图的分类

1)简单视图

单表,无聚合运算的

基于视图对基表进行DML(实际工作千万不要对视图DML)

2)复杂视图

多表关联,聚合运算等等

无法基于视图对基表DML

同义词

--私有同义词--只有在当前用户下可查

Create Synonym emp_ptg For scott.emp;

Select * From emp_ptg;

Select * From scott.emp;

--公有同义词,所有用户都可访问

Create Public Synonym pub_emp For scott.emp;

所有用户能看到pub_emp这个同义词,但是能不能查询依赖于这个用户对于scott.emp的权限。

--序列:编号生成器

create sequence seq_emp

start with 1 --序列的初始值

increment by 1 --步长

minvalue 1 --最小值

maxvalue 9999999999999999 --最大值

nocycle --不循环

cache 5000 --缓冲量

order;

Select seq_emp.nextval From dual;

Select seq_emp.currval From dual;

Create Table emp_ptg As Select Cast(0 As Number(4)) Id,

t.* From emp t Where 1=2;

Insert Into emp_ptg Select seq_emp.nextval,t.* From emp t;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值