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);

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

相关文章
|
3天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
7天前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
7天前
|
前端开发 应用服务中间件 API
|
10天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
20天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
34 10
|
23天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
29天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
24 0
|
4天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
6天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
69 11
|
25天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~

推荐镜像

更多