Oracle数据库笔记整理

简介: Oracle数据库函数大小写转换SELECT ename, LOWER(ename) FROM emp;SELECT ename, UPPER(ename) FROM emp;截取SELECT ename, SUBSTR(ename,1,2) FROM emp;四舍五入SELECT ROUND(3.

Oracle数据库

函数

大小写转换

SELECT ename, LOWER(ename) FROM emp;
SELECT ename, UPPER(ename) FROM emp;

截取

SELECT ename, SUBSTR(ename,1,2) FROM emp;

四舍五入

SELECT ROUND(3.54159) FROM dual;
SELECT ROUND(3.14159,3) FROM dual;

日期转字符

SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd HH:mi:ss') FROM dual;
SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd HH24:mi:ss') FROM dual;

字符格式转换

SELECT TO_CHAR(sal, '99,999.9999') FROM emp;

字符转日期

SELECT TO_DATE('2019-06-11 15:08:00','yyyy-MM-dd HH24:mi:ss') FROM dual;

解决NULL空值问题

SELECT ename, NVL(comm,0) FROM emp;

表连接

  • 左连接:left join,返回左表中所有的数据和右表中满足条件的数据
  • 右连接:right join,返回右表中所有的数据和左表中满足条件的数据
  • 内连接:inner join,返回左表和右表同时满足条件的数据

分页

在MySQL分页LIMIT,在ORACLE不支持LIMIT,引入ROWNUM伪列
如:查询某表前5条数据

SELECT * FROM 表名 WHERE ROWNUM <=5;

但是ROWNUM不支持> >= =,故需要使用子查询实现查询。
如:

SELECT ename, deptno
FROM (SELECT ename, deptno, rownum AS rn FROM emp) t 
WHERE t.rn > 10

视图

视图就当做一张虚标,数据来源于真实的表。

创建视图语法:

CREATE VIEW  视图名
AS  SQL语句;

视图需要创建视图权限,登陆管理员账号执行授权命令

GRANT CREATE TABLE, CREATE VIEW TO scott;

数据字典

表、索引、视图等信息储存在ORACLE数据库的表中,这些表称为数据字典。

序列

自增长

  • MySQL:auto_increment
  • ORACLE:不支持auto_increment

实现自增长原理

获取当前的id,自增1 id++,作为下一条数据的id插入。
id为主键,id实现自增长。

创建序列语法:

CREATE SEQUENCE 序列名;

序列本身是一个对象,有两个属性。每次调用nextval,会自增长1个

例子:
建表

CREATE TABLE weibo(
    id NUMBER PRIMARY KEY,
    user_id VARCHAR2(20),
    content VARCHAR2(1024),
    count NUMBER
);

建序列

CREATE SEQUENCE seq_weibo;

怼数据

INSERT INTO weibo(id, user_id, content, count)
VALUES (seq_weibo.nextval, 'admin', '21213131ea', 1);
INSERT INTO weibo(id, user_id, content, count)
VALUES (seq_weibo.nextval, 'admin', '21213131ea', 1);

观察id,每次调用nextval会自增长1个。

SELECT * FROM weibo;

索引

目的:为了加快查询效率

创建主键时,会默认创建一个主键的索引。查询索引字段效率高,非索引字段默认全表扫描。

单字段创建索引

CREATE INDEX 索引名
ON 表名(字段名)

例:

CREATE INDEX index_user_gameid
ON t_user_fee(gameid);

多字段创建索引

CREATE INDEX 索引名
ON 表名(字段1, 字段2, ...)

例:

CREATE INDEX index_user_gameid_msisdn
ON t_user_fee(msisdn, gameid);

注意: 一旦给索引的字段添加了函数,则该索引失效。

相关文章
|
29天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
38 7
|
29天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
27 6
|
29天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
21 5
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
2月前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
32 1
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
175 64
|
3月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
2月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
61 3
|
3月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。

推荐镜像

更多