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 ...
随机推荐
- Chat2DB接入文心一言AI教程(原创教程,转载请注明)
引言 关于Chat2DB和文心一言是啥我就不赘述了,由于Chat2DB自带的ai有调用次数限制,所以想着接入百度的文心AI,但是由于网上没有找到相关的教程,此教程是本人研究了很久才弄出来的,顺便记录一 ...
- windows端口被占用怎么办?
简单只需要按照一下命令查找到对应的端口kill掉就好了 1.查看本机所有的端口信息 netstat -ano 2.查看本机指定端口信息 netstat -ano | findstr "端口号 ...
- Codeforces 918(div4)
Codeforces 918(div4) Problem - A - Codeforces #include<bits/stdc++.h> using namespace std; con ...
- windows 和 Linux 下 git status 结果不一致
解决该问题 运行一下命令即可 git config core.autocrlf true 解释 git config core.autocrlf true 这个命令是在任何支持的操作系统上都可以运行的 ...
- 网站优化之favicon.ico
本文于2015年底完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 背景 某一天在办公室分析产品首页加载速度时,无意中从Chrome浏览器的 ...
- <Python全景系列-1> Hello World,1分钟配置好你的python环境
<从此开始:1分钟配置好你的python环境> 欢迎来到我们的系列博客<Python360全景>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题, ...
- 地图服务器GeoServer的安装与配置
目录 1.安装配置Java 2.安装配置Tomcat 3.安装配置GeoServer GeoServer提供了多种安装配置方式,但是本质上GeoServer是一个基于Java Web的项目,因此我们理 ...
- webrtc实时视频语音实现
webrtc介绍 WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications ( ...
- 关于汽车OTA,这篇科普文能告诉你
随着汽车中软件发挥的作用越来越重要,软件定义汽车已经是行业内的共识.汽车行业的发展极有可能最终像手机产业一样,基础硬件差异会越来越小,关键在于汽车给用户的体验的多样性,以及汽车产品在不同场景下满足用户 ...
- 案例解析丨 Spark Hive 自定义函数应用
摘要:Spark目前支持UDF,UDTF,UDAF三种类型的自定义函数. 1. 简介 Spark目前支持UDF,UDTF,UDAF三种类型的自定义函数.UDF使用场景:输入一行,返回一个结果,一对一, ...