Oracle数据库学习总结
SQL 笔记
ch3_cn
1.数据类型记录
char(n)
定长字符
varchar(n)
可变长字符
numeric(p,d)
定点数,总位数p,小数点后位数q
float(n)
n位浮点数
2.建表
create table table_name(
id varchar(8),
dept_name varchar(30),
grade numeric(2,1),
primary key (id),
foreign key(dept_name) references department);
3.表的更新
--插入(1)
insert into course
values ('CS-437', 'Database Systems', 'Comp. Sci.');
--插入(2)
insert into course (course_id, title, dept_name, credits)
values ('CS-437', 'Database Systems', 'Comp. Sci.', null);
--更新(一般)
update instructor
set salary = salary * 1.05
where salary < 70000;
--更新(case表达式)
UPDATE instructor
SET salary =
CASE
WHEN salary <= 100000 THEN salary * 1.05
ELSE salary * 1.03
END
--删除(系统一行一行删)
delete from student (where)...
--删除(删除内容定义,释放空间)
drop table student
4.表的查询
select A1,A2,...,An
from r1,r2,...,rm
where p
Ai 属性 ri表 P逻辑谓词(sql中大小写不敏感)
5.是否去重及其他常见
--去重
select distinct name
from student
--不去重
select all name
from student
--所有属性
select * from student
--Null
--is null 和 is not null
6.字符串匹配运算like 通配符
% 若干任意字符
__ 一个任意字符
\ 转义前缀符
7.排序
(1)desc 降序 asc 升序(默认)
(2)多列排序(第一优先级,第二优先级……)
(3)可用数字指代(第几列)
8.between 比较运算(Oracle不支持)
x between a and b 相当于 x >= a and x <= b
9.集合运算
(1)并 union (或,和)
(2)交 intersect (都,且)
(3)差 except (oracle用minus代替) (a有,但b没有)
10.聚集函数
avg :平均值(只能用于数字)
min :最小值
max :最大值
sum :求和(只能用于数字)
count :计数(会忽略空值行)
11.聚集函数常见子句
(1)having 子句和 group by 子句
--查询所有平均工资超42000的院系和平均工资
select dept_name, avg (salary) as avg_salary
from instructor
group by dept_name
having avg (salary) > 42000;
Tips : where子句在分组之前过滤,having子句在分组之后过滤
12.嵌套子查询 标量子查询
(1)SQL提供嵌套子查询的机制。子查询就是在select-from-where 表达式中嵌入另外一个查询。
(2)标量子查询:返回单值的子查询。
13.集合成员 集合比较
(1)in 和 not in
(2)some(<, 小于等于, >,大于等于, =,不相等 )
(3)all (<, 小于等于, >,大于等于, =,不相等 )
14.空集测试
(1)exists r ---> r不为空
(2)not exists r ---> r为空
(3)使用not exists 替代not in , not exists 的执行效率更高
15.With子句(Mysql 不支持)
(1)with子句提供一个方法,可以定义一个临时的视图,这个关系只用于 with子句存在的这个查询中。
(2)当你需要对子查询多次引用的时,用with子句,否则没有必要。
--查询每年课程的授课人次超过本课程开设院在本年开设课程的修课总人数
--1/3的课程名,年份,修课人次,本院课程总修课人次,所占百分比
WITH ta
AS ( SELECT title,
year,
dept_name,
COUNT (*) cnt
FROM takes NATURAL JOIN course
GROUP BY title, year, dept_name),
tb
AS ( SELECT dept_name, year, SUM (cnt) total
FROM ta
GROUP BY dept_name, year)
SELECT ta.title,
ta.year,
ta.dept_name,
cnt,
total,
ROUND (cnt / total * 100, 0) || '%' ratio
FROM ta, tb
WHERE ta.dept_name = tb.dept_name
AND ta.year = tb.year
AND ta.cnt * 3 > total;
16. 交叉表查询
--Oracle特有
SELECT *
FROM scores PIVOT (MAX (score) FOR
course IN ('C', 'DB', 'English'));
--通用
select name,
max(case course when 'C' then score else null end) C,
max(case course when 'DB' then score else null end) DB,
max(case course when 'Eng' then score else null end) Eng
from scores
group by name;
(1)case表达式,oralce可以用decode函数,mysql可以用if函数替代
ch4_cn
1.联结
(1)内联 Inner join 联结 join 外联 Outer join
Oracle数据库学习总结的更多相关文章
- 推荐一个Oracle数据库学习网站
推荐一个我个人的Oracle数据库学习网站,比较系统性的整理,会持续更新的网站.网址: Oracle基础教程: http://www.oraclejsq.com/article/010100110.h ...
- Oracle数据库学习(一)
Oracle数据库由甲骨文公司开发,是基于对象的关系型数据库:下面是简单的学习数据库操作等知识. 1.SQL单表查询(设一个表名为tab) (1)查询所有记录 select * from tab(一般 ...
- Oracle数据库学习笔记
创建表的同时插入数据:create table zhang3 as select * from zhang1;create table zhang3(id,name) as select * from ...
- Oracle数据库学习第一天
crud 增删改查 create read update delete1--oracle数据库的安装 系统默认创建两个用户 sys和system 密码自定义 超级管理员:sys 管理员:system ...
- ORACLE数据库学习之备份与恢复
oracle数据库的备份与恢复 第一部分:数据库的备份 备份的必要性 因为各种人为或外界的因素可能会造成数据库中灾难性的数据丢失,为了保证数据库中数据的安全,必须采取备份措施保证RDBMS中包含 ...
- ORACLE数据库学习之逻辑结构
逻辑结构 数据库逻辑结构包含表空间.段.范围(extent).数据块和模式对象. (一)表空间 一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间类似于sybase下的设备.(TABLES ...
- ORACLE数据库学习之体系结构
Oracle体系结构 ORACLE数据库体系结构决定了oracle如何使用网络.磁盘和内存.包括实例(instance),文件(file)和进程(process不包括后台进程)三部分. 实例:每 ...
- oracle数据库学习
trunc(number[,decimals])--number 待做截取处理的数值:decimals 指明需保留小数点后面的位数 CREATE PUBLIC DATABASE LINK Co ...
- Oracle数据库学习(一)安装和简单使用
新公司的新项目,需要用到Oracle数据库,所以现在便来解除此数据库,不得不说,这个数据库还这是麻烦. 安装倒是简单,就是中间会遇到各种问题. 安装步骤参考:https://blog.csdn.net ...
- Oracle数据库学习(四):学习中的遇到的问题
一.xhost图形化界面安装问题 问题1:运行xhost +命令,出现命令没有找到错误 原因:Linux系统没有安装xhost图形化包. 解决办法:安装xhost图形化包,命令如下: yum what ...
随机推荐
- 华企盾DSC防泄密系统造成应用程序卡慢、编译卡问题
1.先看看个人模式是否正常,正常则跟进程有关加密nofile.不启用进程水印.不启用文件夹大小缓存(源码文件去掉需慎重)都关掉.允许进程间访问(procmon排查是否有其它进程访问) 2.检查是否与H ...
- 神经网络优化篇:详解其他正则化方法(Other regularization methods)
其他正则化方法 除了\(L2\)正则化和随机失活(dropout)正则化,还有几种方法可以减少神经网络中的过拟合: 一.数据扩增 假设正在拟合猫咪图片分类器,如果想通过扩增训练数据来解决过拟合,但扩增 ...
- svelte的一些基础demo
脚手架 Vite:vite是集成了svelte,初始化的时候选择svelte就行了. npm init vite SvelteKit:底层基于vite的更上层框架,类似于nextjs. npm cre ...
- iMessage群发系统常见代码分享!
随着iMessage的普及,越来越多的开发者开始关注如何利用iMessage进行消息群发,今天,我们就来分享一些常见的iMessage群发系统的代码示例,帮助大家更好地实现这一功能. 一.使用Swif ...
- 探索 Linux Namespace:Docker 隔离的神奇背后
在 深入理解 Docker 核心原理:Namespace.Cgroups 和 Rootfs 一文中我们分析了 Docker 是由三大核心技术实现的. 今天就一起分析 Docker 三大核心技术之一的 ...
- Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--概述
PdfiumViewer 是一个伟大的项目,可惜仓库现已经归档,This repository has been archived by the owner on Aug 2, 2019. It is ...
- STM32CubeMX教程10 RTC 实时时钟 - 周期唤醒、闹钟A/B事件和备份寄存器
本实验主要使用STM32CubeMX软件配置STM32F407开发板实现RTC周期唤醒.闹钟A/B事件功能,周期唤醒中输出RTC时间,闹钟A/B事件发生时利用串口输出闹钟A/B事件发生提示 1.准备材 ...
- 2023-06-04:你的音乐播放器里有 N 首不同的歌, 在旅途中,你的旅伴想要听 L 首歌(不一定不同,即,允许歌曲重复, 请你为她按如下规则创建一个播放列表, 每首歌至少播放一次, 一首歌只有在
2023-06-04:你的音乐播放器里有 N 首不同的歌, 在旅途中,你的旅伴想要听 L 首歌(不一定不同,即,允许歌曲重复, 请你为她按如下规则创建一个播放列表, 每首歌至少播放一次, 一首歌只有在 ...
- video标签视频指定帧作为预览图
<video :src="videoUrl" :poster=" videoUrl + '?x-oss-process=video/snapshot,t_0,f_j ...
- NebulaGraph实战:2-NebulaGraph手工和Python操作
图数据库是专门存储庞大的图形网络并从中检索信息的数据库.它可以将图中的数据高效存储为点(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上.本文以示例数据集basket ...