oracle数据库笔记01

数据库(Oracle)

SQL 支持下列类别的命令:

1.数据定义语言(DDL)

2.数据操纵语言(DML)

3.事务控制语言(TCL)4.数据控制语言(DCL)

Oracle 数据类型的类别

数据类型:字符,数值,日期时间,RAW/LONG RAW
,LOB

1.字符数据类型

1.1 char :

当需要固定长度的字符串时,使用 CHAR 数据类型
CHAR 数据类型存储字母数字值
CHAR 数据类型的列长度可以是 1 到 2000 个字节

1.2 varchar2:
VARCHAR2数据类型支持可变长度字符串
VARCHAR2数据类型存储字母数字值
VARCHAR2数据类型的大小在1至4000个字节范围内

1.3 long:
LONG 数据类型存储可变长度字符数据
LONG 数据类型最多能存储 2GB

2.数值数据类型

可以存储整数、浮点数和实数
最高精度为 38 位

声明语法:
number(p,s)
P表示精度,S表示小数点的位数

3.日期时间数据类型

存储日期和时间值,包括年、月、日,小时、分钟、秒

主要的日期时间类型有:

1.DATE - 存储日期和时间部分,精确到整个的秒
2.TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位4.RAW/LONG RAW

4.RAW

RAW 数据类型用于存储二进制数据
RAW 数据类型最多能存储 2000 字节

LONG RAW 数据类型用于存储可变长度的二进制数据LONG RAW 数据类型最多能存储 2 GB

5.LOB

LOB 称为“大对象”数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等

LOB 数据类型允许对数据进行高效、随机、分段的访问

LOB又分为 :CLOB,BLOB,BFILE

伪列

Oracle 中伪列就像一个表列,但是它并没有存储在表中伪列可以从表中查询,但不能插入、更新和删除它们的值

常用的伪列有ROWID和ROWNUM
ROWID: 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行
ROWNUM:是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数

注意
1.选择无重复的行
在SELECT子句,使用DISTINCT关键字

例子:

SELECT DISTINCT vencode FROM vendor_master;

2.插入日期类型的值
日期数据类型的默认格式为“DD-MON-RR”
使用日期的默认格式
使用TO_DATE函数转换
例子:

INSERT INTO order_master 
VALUES('o001', '12-5月-05', 'V002', 'c', '25-5月-05');


INSERT INTO my_table (date_col)
VALUES (TO_DATE('2005-10-18', 'YYYY-MM-DD'));

利用现有的表创建表

语法: CREATE TABLE <new_table_name> AS

SELECT column_names FROM <old_table_name>;

例子:
CREATE TABLE newitemfile

AS SELECT * FROM itemfile;
只创建与旧表相同的字段,内容不复制
CREATE TABLE newitemfile2

AS SELECT * FROM itemfile
WHERE 1 = 2;

事务控制语言

COMMIT - 提交并结束事务处理

ROLLBACK - 撤销事务中已完成的工作

SAVEPOINT – 标记事务中可以回滚的点

例子:

UPDATE order_master SET del_date = ‘30-8月-05’

WHERE orderno <= ’o002’;

SAVEPOINT mark1;
DELETE FROM order_master WHERE orderno = ‘o002’;
SAVEPOINT mark2;
ROLLBACK TO SAVEPOINT mark1;
COMMIT;

结果:只执行修改操作

数据控制语言

用于权限控制的命令有:

GRANT 授予权限

REVOKE 撤销已授予的权限
例子:
授予权限:
GRANT SELECT ON vendor_master

TO accounts WITH GRANT OPTION;
撤销权限:
REVOKE SELECT, UPDATE ON order_master

FROM MARTIN;

集合操作符

连接操作符

连接操作符用于将多个字符串或数据值合并成一个字符串, ||

转换函数

转换函数将值从一种数据类型转换为另一种数据类型

常用的转换函数有:
1.TO_CHAR(转换字符串类型)
2.TO_DATE(转换为时间类型)
3.TO_NUMBER(转换数字类型)
例子:

select to_char(100) from dual;

SELECT TO_DATE(‘2005-12-06’ , ‘yyyy-mm-dd’)
FROM dual;
SELECT TO_NUMBER(‘100’) FROM duall;

其它函数

以下是几个用来转换空值的函数:

1.NVL
语法:NVL(re_level,re_leve2)
如果re_level是null值,则返回re_leve2,否则返回re_level

2.NVL2
语法:NVL2(re_level,re_leve2,re_leve3)
re_level如果是不是null值,则返回re_leve2,是null值时,返回re_leve3

3.NULLIF

例子:

SELECT itemdesc, NVL(re_level,re_leve2) FROM itemfile;
结果:将null值转换为re_leve2;

SELECT itemdesc, NVL2(re_level,re_leve2,re_leve3)
FROM itemfile;
结果:re_level如果是不是null值,则返回re_leve2,是null值时,返回re_leve3;

### 分组函数
分组函数:AVG,MIN,MAX,SUM,COUNT

注意:count(1)要比count(*)效率高,建议使用count(1).

GROUP BY和HAVING子句

GROUP BY 子句
1.
用于将信息划分为更小的组

2.每一组行返回针对该组的单个结果

HAVING子句用于指定 GROUP BY 子句检索行的条件

分析函数

1.分析函数根据一组行来计算聚合值

2.用于计算完成聚集的累计排名、移动平均数等3.分析函数为每组记录返回多个行
分析函数:row_number , rank ,dense_rank

区别:
以下三个分析函数用于计算一个行在一组有序行中的排位,序号从1开始

1.ROW_NUMBER 返回连续的排位,不论值是否相等2.RANK 具有相等值的行排位相同,序数随后跳跃

3.DENSE_RANK 具有相等值的行排位相同,序号是连续的

常用的字符函数

在这里插入图片描述

日期函数

在这里插入图片描述

常用的组函数

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值