Oracle数据库操作

Oracle数据库操作

Oracle 常用数据类型
Oracle 中常用的操作符
Oracle 常用函数
Oracle 中的序列 和 Oracle 中的查询
Oracle 中的视图
Oracle 中的触发器
Oracle 中的存储过程

oracle常用的数据类型

字符型、数字型、日期型、lob类型

字符型

VARCHAR2 (n):可变长度的字符,最大长度4000bytes,即1<=n<=4000,VARCHAR2(10),表示占10个字节的字符串,当长度小于10字节时,不会自动补空格,占实际大小,大于则报错

数字类型

NUMBER(P,S):P为整数位+S小数位数.例如NUMBER(5,3),表示整数位数为2,小数位数为3的数字,如25.112

日期类型

data缺省格式为DD-MON-YY,timestamp同样,精确到纳秒

LOB类型

BLOB:二进制数据,最大长度4G. CLOB:字符数据,最大长度4G,一般音视频类就BLOB,文献就CLOB

oracle常用的操作符
比较操作符

=、!=、<、>、<=、>=、BETWEEN AND (检查是否在两个值之间)
[NOT] IN(与列表中的值匹配)
[NOT] LIKE(匹配字符模式, * _ 通配符)
[NOT] IS NULL(检查是否为空)

逻辑操作符

and or not
如果and和or混用,and的优先级高于or,所以尽量的使用括号来表明优先级

集合操作符

UNION(联合) 返回两个查询选定不重复的行。( 删除重复的行 )
UNION ALL(联合所有) 合并两个查询选定的所有行,包括重复的行。
INTERSECT(交集) 只返回两个查询都有的行。
MINUS(减集) 在第一个查询结果中排除第二个查询结果中出现的行。 (第一 – 第二)

连接操作符

使用 || 连接字符串
SELECT (‘wwj’ || ‘hello’) as str1 FROM dual;

oracle常用的函数
字符串函数 (subsrt 和 replace 和 decode)

SELECT SUBSTR(ch, pos, length) as str1 FROM dual
pos代表等于0或1时,都是从第一位开始截取
length代表要截取的字符串的长度
如果pos填写为负数,为倒着截取

SELECT REPLACE(‘wwj’,‘j’,‘q’) as str1 FROM dual
将字符串中包含j的替换成q

decode(条件,值1,返回值1,值2,返回值2) 等同于 if elseif

在这里插入图片描述

数学函数 (round 和 trunc )

SELECT ROUND(n, int) as num1 FROM dual
int位置代表保留几位小数,并且四舍五入

SELECT TRUNC(n1, n2) as num1 FROM dual
n2代表保留几位小数,并不四舍五入

转换函数(tochar 和 todate)

SELECT to_char(SYSDATE,‘Day, HH12:MI:SS’) FROM dual; SELECT TO_CHAR(99,’$99.9999’) FROM dual;

SELECT to_date(‘2089-5-7 17:09:37’,‘yyyy-mm-dd HH24:MI:SS’) from dual

其它函数

nal(expr1,expr2)代表 oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

比如:select ename,NVL(comm, -1) from emp; 如何comm没值,则取-1

Oracle 中的序列 和 Oracle 中的查询

mysql数据中提供了数据库自增的选项,但是oracle中没有提供,只有利用序列实现主键自增的功能
sequence 就是序号,也可以说是序列

序列创建的语法
CREATE SEQUENCE seq1

INCREMENT BY 1 – 每次加几个

START WITH 1 – 从1开始计数

NOMAXvalue – 不设置最大值

NOCYCLE – 一直累加,不循环

CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

查看与操作序列信息

select * from user_sequences;
Select * from all_sequences;

使用序列名.CurrVal:返回 sequence的当前值
使用序列名.NextVal:增加sequence的值,然后返回 增加后sequence值
select seq1.currval from dual

重新初始化seq的序号(可以使用修改)
alter sequence seq1 increment by 1

删除seq drop sequence seq1

rownum分页

SELECT ROWNUM , dept.* FROM dept

SELECT * FROM
(
SELECT ROWNUM , dept.* FROM dept
WHERE ROWNUM < endNum
)
WHERE ROWNUM > startNum
计算起始位置和结束位置 startNum = (pageNo - 1) * pageSize endNum = (pageNo * pageSize) + 1

查询

分组查询使用group by 和 having 进行过滤条件筛选

子查询也就是条件中加入查询语句

连接查询,内连接(利用where或者inner join),左和右连接(left join 和 right join),自连接(树菜单结构)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值