Oracle必知必会
文章平均质量分 75
整理企业级关系型数据库Oracle的常见使用方法和操作,以及性能优化的文档
清平乐的技术博客
学如逆水行舟,不进则退。
展开
-
MySQL必知必会10_用户权限管理
数据库服务器通常包含关键的数据,确保这些数据的安全和完整需要利用访问控制。本章将学习MySQL的访问控制和用户管理。原创 2019-09-05 13:48:40 · 218 阅读 · 0 评论 -
窗口函数深度探索(二):控制窗口大小(UNBOUNDED、CURRENT、PRECEDING、FOLLOWING)
本文详细介绍窗口函数进行控制窗口大小的具体操作,博主分别列举了8个实际案例进行具体讲解。通过此文大家可以熟练使用这几个函数进行数仓开发和数据分析。原创 2022-05-06 16:59:01 · 4428 阅读 · 0 评论 -
SQL高频面试题_实现用户连续登陆的最大天数(Hive/开窗函数/Oracle)
题目:某张表两个字段分别是用户ID和登录时间。例如记录了用户id为001和002、003的登陆日期,现在问题来了:我们如何统计处两个用户各自连续登陆的天数最大值?也就是001可能会有连续登陆3天,7天,10天的这样记录,但是这其中只有10天是001连续登陆的最长天数。一、数据集准备这里数据集以Hive为例-- 表创建DROP TABLE IF EXISTS test.user_login;CREATE TABLE test.user_login(user_id string,login_d原创 2021-03-25 11:10:11 · 2205 阅读 · 6 评论 -
MySQL、Oracle和SQL server的元数据库 information_schema.tables
【INFORMATION_SCHEMA 数据库】 是MySQL自带的一个数据库,确切说是信息数据库,它提供了访问数据库 元数据 的方式。什么是 元数据 呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。你也可以理解为是数据库的“数据词典”和“系统目录”。在 【INFORMATION_SCHEMA 】中,有很多个 只读 表。它们实际上是 视图 ,而不是基本表,因此,你将无法...原创 2020-05-08 14:28:36 · 1652 阅读 · 2 评论 -
oracle sql语句查询时表名和字段名要加双引号的问题详解
作为oracle的初学者相信大家一定会遇到这个问题,当表名全是小写字母时,如图:明明就是navicat可视化创建了表,可是就是不能查到!这个为什么呢?select * from user; //显示表名无效select * from "user"; //加上双引号就可以查得到一、为什么oracle查询时候一定要加双引号?原因如下:1、oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写。(mysql不区分大小写原创 2020-06-29 17:22:17 · 14959 阅读 · 4 评论 -
Navicat Premium 连接不上Oracle 11g数据库解决方法
我的Navicat 版本是Navicat Premium 12 ,最近在windows环境中远程连接新项目的Oracle(11g版本)连接报错。我在之前项目中连接Oracle12是不报错的,也不需要做任何配置,直接选择basic或者TNS连接方式都可以顺利连接,刚开始也很恼火,查了资料后,最终解决。以下是具体解决方法和说明。一、问题产生原因:Navicat premium下载时会自动下载一个oci.dll文件,但是由于自带的默认版本可能存在和你需要连接Oracle版本不对的问题,所以连接时,会出现连原创 2020-05-28 16:23:05 · 3255 阅读 · 0 评论 -
数据库的DDL、DML、DQL、DCL名词详解【全套笔记】
简言之:1.DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象:库、表、列等;2.DML(DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据);3.DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据);4.DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别。举例说明1.DDL用来定义数据库对象:库、表、列等;适用范围:对数据库中的某些对象(.原创 2020-04-21 14:53:00 · 25787 阅读 · 11 评论 -
Oracle分析函数整理(开窗函数、窗口函数)
一、分析函数语法function_name(<argument>,<argument>...) over(<partition_Clause><order by_Clause><windowing_Clause>);function_name():函数名称argument:参数over( ):开窗函数partition_C...原创 2020-04-16 18:00:43 · 2540 阅读 · 0 评论 -
Hive、Oracle的with as 用法
with查询语句不是以select开始的,而是以“WITH”关键字开头,可以理解为在进行查询之前预先构造了一个临时表,之后便可多次使用它做进一步的分析和处理。-- 基础语法with tempName as (select ....)select ...优点1. 增加了SQL的易读性--针对一个别名with tmp as (select * from tb_name)--针对多个...原创 2020-03-29 10:54:13 · 823 阅读 · 0 评论 -
SQL指标计算常用函数(MySQL+Oracle+Hive)
mysql1.date_formate年%Y月%m ,数值(00-12)日%d周%u(周一是第一天) %U(周天是第一天)%W 星期名(英文)2.floor,floor函数返回小于等于该值的最大整数.3.concat拼接函数4.round5.upper,lower大小写转换6.case…when...原创 2019-11-09 13:35:01 · 1342 阅读 · 0 评论 -
Oracle、MySQL、SqlServer分页的区别
一、Mysql使用limit分页select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSizePS:(1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据。(3)m、n参数值不能在语句当...原创 2019-11-08 17:49:31 · 414 阅读 · 0 评论 -
同比和环比的计算方式
一、同比了方便理解,我们使用2018年和2017年的数据来进行说明。同比的概念。我们可以理解为:今年同期和去年同期的对比。例如:2018年1月与2017年1月的数据对比。计算公式(2018年1月数据-2017年1月数据)/2017年1月数据*100%但是,计算的结果是小数位的。我们可以先选中计算结果所在区域,然后使用Ctrl+1组合快捷键设置单元格格式为"百分比",小数位数设置为...原创 2019-10-05 11:10:26 · 10099 阅读 · 0 评论 -
char,varchar,vachar2区别
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。2.CHAR的效率比VARCHAR2的效率稍高。3.目前VARCHAR是VARCHAR2的同义词。工业标准的...原创 2019-09-12 10:30:34 · 688 阅读 · 0 评论 -
Oracle练习题(2)
复杂查询和嵌套查询转载 2019-08-29 09:26:36 · 341 阅读 · 0 评论 -
Oracle数据库学习大纲
三天掌握Oracle知识原创 2019-08-29 09:33:07 · 384 阅读 · 0 评论 -
Oracle练习题(1)
基础查询习题原创 2019-08-28 16:49:07 · 1244 阅读 · 1 评论 -
Oracle数据库09_数据的集合操作
集合的交集。并集、差集操作原创 2019-08-30 17:18:15 · 225 阅读 · 0 评论 -
Oracle数据库07_多表联合查询(内外连接)
1. 多表连接获取数据2.笛卡尔积笛卡尔积产生原因省略连接条件连接条件无用所有表中所有行互相连接在实际应用中应该避免笛卡尔积的出现,可以在where中加入有效的连接条件。3.连接的类型4.Oracle 多表连接(1)where 等值连接实现多个表中查询基础语法:【例1】【注意】:这种方法只需要在where子句中加入连接条件;当不同表中有先相同字段时,列名前...原创 2019-08-30 17:16:06 · 474 阅读 · 0 评论 -
Oracle数据库05_单行函数(重要)
SQL函数分为两种,单行函数和多行函数,函数可以没有参数但是必须要有返回值。原创 2019-08-30 17:15:14 · 257 阅读 · 0 评论 -
Oracle数据库06_多行函数(分组函数/聚合函数)
1.什么是多行函数多行函数根据每个group返回一个值,也叫分组函数、聚合函数2.常用多行函数max(x[DISTINCT|ALL]) 返回最大值,忽略空值min(x[DISTINCT|ALL]) 返回最小值,忽略空值count(x[DISTINCT|ALL]) 返回记录数量,若为空用*表示,否则忽略avg(x[DIST...原创 2019-09-03 11:43:57 · 321 阅读 · 0 评论 -
Oracle数据库17_触发器
数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(insert,update,delete)在指定的表上发出时,Oracle自动的执行触发器中定义的语句序列。1.触发器的作用(1)数据确认(2)实施复杂的安全性检查(3)做审计,跟踪表上所做的数据操作等(4)数据的备份和同步2.触发器的类型(1)语句级触发器在指定的操作语句操作之前或之后执行一次,不...原创 2019-09-02 15:03:52 · 164 阅读 · 0 评论 -
Oracle数据库16_存储过程和存储函数
1、什么是存储过程存储过程(Store Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经过编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用城促都应该用到存储过程。2.创建存储过程的语法【方式一】create [or replace] procedu...原创 2019-09-02 15:00:58 · 253 阅读 · 2 评论 -
Oracle数据库15_同义词
1.使用同义词访问相同的对象方便访问其他用户的对象缩短对象名字的长度。2.创建同义词语法create [public] synonym synonym for object;【举例】为视图DEPT_ SUM_VU创建同义词【create synonym d_sum for dept_sum_vu;3.删除同义词删除同义词用drop以刚才创建的d_sum为例drop s...原创 2019-09-01 16:05:53 · 136 阅读 · 0 评论 -
Oracle数据库14_索引
1、什么是索引2.什么时候创建索引?以下情况可以创建索引列中数据值分布范围很广列经常在where子句或者连接条件中出现表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%下列情况不要创建索引表很小列不经常作为连接条件或者出现在where子句中查询的数据大于2%到4%表经常更新3.创建索引(1)两种类型自动创建:在定义primary key 或者un...原创 2019-09-01 16:04:47 · 131 阅读 · 0 评论 -
Oracle数据库13_序列
1.什么是序列序列:可供多个用户用来产生唯一数值的数据库对象自动提供唯一的数据共享对象主要用于提供主键值将序列值装入内存可以提高访问效率2.创建序列创建序列用CREATE SEQUENCE语句(1)定义序列基础语法【举例】创建序dept_deptid_sql为表departments提供主键。不使用cycle选项。3.查询序列查询序列用select语句【例】查询数...原创 2019-09-01 11:43:02 · 209 阅读 · 0 评论 -
Oracle数据库12_视图操作
1.什么是视图视图是一种虚表;视图建立在已有表的基础上,视图来与建立的这些表称为基表。向视图提供数据内容的语句为select 语句,可以将视图理解为存储起来的select 语句。视图向用户提供基表数据的另一种表现形式。2.视图的优点(1)简化复杂查询(2)限制数据访问(3)提供数据的相互独立(4)同样的数据,可以有不同的显示方式。注意:视图不能提高性能。3.简单视图和复...原创 2019-09-01 11:38:53 · 355 阅读 · 0 评论 -
Oracle数据库11_数据的事务操作
包括事务的提交、回滚以及隔离级别等操作原创 2019-08-30 17:19:58 · 190 阅读 · 0 评论 -
Oracle数据库10_数据的DML操作
包括数据的插入、批量插入以及删改查操作原创 2019-08-30 17:19:08 · 194 阅读 · 0 评论 -
Oracle数据库08_子查询
四种子查询的情况和注意事项原创 2019-08-30 17:17:21 · 148 阅读 · 0 评论 -
Oracle数据库04_基础查询和过滤排序
1.SQL简介结构化查询语言(structure query language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层机构的不同数据库系统...原创 2019-08-30 17:13:58 · 245 阅读 · 0 评论 -
Oracle数据库03_表的约束条件
约束是表一级的限制,如果存在依赖关系,约束可以放置错误的数据原创 2019-08-30 17:13:07 · 312 阅读 · 0 评论 -
Oracle数据库02_表的常用操作
包括数据类型、表的命名规则和表的基本增删改查操作原创 2019-08-30 17:12:13 · 184 阅读 · 0 评论 -
Oracle数据库01_安装和简介
周日补充,待续原创 2019-08-30 17:09:26 · 183 阅读 · 0 评论