Oracle
学习视频
https://www.bilibili.com/video/BV1Eq4y127K2?spm_id_from=333.999.0.0
一、oracle数据库了解

1.Oracle目录
admin
由于Oracle 中一个实例只能操作一个数据库的原因oracle 中也会使用SID来作为库的名称。
cfgtoollogs
下面子目录分别存放当运行dbca,emca,netca等图形化配置程序时的log。
checkpoints
存放检查点文件
diag
Oraclel新添加的一个重组目录。其中的子目录,基本上Oracle每个组件都有了自己单独的目录,在Oraclel0g中我们一直诟病的log文件散放在四处的问题终于得到解决,无论是asm还是crs还是rdbms,所有组件需要被用来诊断的log文件都存放在了这个新的目录下。
flash_recovery_area(闪回区)目录
闪回区:分配一个特定的目录位置来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。闪回区可存储完全的数据文件备份、增量备份、数据文件副本、当前的控制文件、备份的控制文件、spffle文件、快照控制文件、联机日志文件、归档日志、块跟踪文件、闪回日志。
oradata
product

2.oracle用户



3.oracle启动服务

4.oracle 连接配置
配置监听




5.oracle 本地网络服务配置

更改完成后需要重新启动plsql 连接,plsql 每次重启都会读取tnsnames.ora
二、Oracle基础使用
1.sqlplus 登陆
sys 用户登录: sys as sysdba/sysoper system 用户: system
2.使用plsql登陆
3.oracle表空间
永久表空间
创建永久表空间 ,创建表空间需要在sys 或system 用户
创建表空间 设置物理地址 设置大小15M并且存满后每次自动增长10M, 永久表空间 物理地址 在oradata下的数据库里 create tablespace 表空间名 datafile '永久表空间物理地址' size 15M autoextend on next 10M permanent online

临时表空间
Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间。
4.创建用户并登陆
报错 create session privilege
5.给用户分配权限
6.创建table

三、数据类型
oracle用的编码格式英文和数字是1个字节,汉字是3个字节
1.字符类型
char类型
CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。
注意:如果使用固定长度char 设定的长度后,自动补全信息会有空格,可能查不到想要的数据。
varchar2
变长字符串,与CHAR类型不同,它不会使用空格填充至最大长VARCHAR2最多可以存储4,000字节的信息。
nvarcahr2
2.数字类型
number类型
integer类型

3.浮点数
binary_float

binary_double

4.日期类型
DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle存储以下信息:世纪、年、月、日期、小时、分钟和秒。一般占用7个字节的存储空间。
timestamp

timestamp with time zone

timestamp with localtime zone
将时间数据以数据库时区进行规范化后进行存储
4.LOB 类型
large object 大对象
clob – character large object
二进制数据,存储单字节和多字节字符数据。最大长度4G。
blob- binary large object
它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。最大长度4G。
nclob
存储UNICODE 类型的数据,最大长度4G。
5.long 、raw、longraw

四、在oracle中创建表
1.oracle 表命名规则

五、数据库约束

创建约束可以用表名加约束,这样在报错的时候可以看到哪个表的约束错误。

检查约束条件需要写在括号中

外键约束 主表添加后,列的数据将来源于从表。

六、数据库关系
1.一对多

2.一对一

3.多对多
七、SQL语言
1.sql了解

2.sql语言结构


八、查询语句
1.查询基础和注意事项





2.取别名
3.连接符
4.文字字符串
5.去重distinct
6.where条件查询

7.查询日期和字符串注意

注意月份要写上月

8.比较运算符

9.其他比较条件

between and
in
like


查询含有 SA_ 的数据, _代表在模糊查询中代表站位符,需要用escape 进行转义。 select * from employees where job_id like 'SA@_%' escape '@';
null 的查询
10.逻辑运算符

and:两个条件都为真,需要同时满足两个条件的结果
or:一个条件为真, 只要满足一个条件的数据即可,满足前一个条件和后一个条件的都查询。
not: 取反结果
11.运算优先级(重要)

优先规则:优先规则定义表达式求值和计算的顺序,表中列出了默认的优先顺序。你可以用圆括号括住你想要先计算的表达式来覆盖默认的优先顺序。
12.order by 排序
还可以多列排序,第一个列结果相同的排序中,第二列的值进行排序。可以选择升序或降序。
select hire_date,salary from employees order by hire_date,salary desc;

排序可以按查询的列排序,未查询的也可以排序 select last_name from employees order by last_name ASC; select last_name from employees order by salary;
九、Oracle函数



1.单行函数

字符函数

字符处理函数





数字函数



dual 是个伪表 select concat('hello','world') from dual;

日期函数
通用函数

nvl 用于转换空值。




2.数据类型转换
隐式转换
3.转换函数

to_char

to_number
to_date


4.嵌套函数
--练习显示受雇日期,6个月后的下一个星期五的日期,按照星期日月年 显示, Next 6 Month ,按受雇日期排序 select to_char(next_day(add_months(hire_date,6),'星期五'),'day-dd"日"-mm"月"-yyyy"年"') as "Next 6 Month" from employees order by hire_date;
5.条件表达式

case 判断


decode 判断


十、多表查询

1.多表连接方式
外连接:左外连接或右外连接,除了会显示查询结果相等的数据,还会显示不相等的数据的其他列数据,左连接显示左表,右连接显示有表的不相等数据的其他列,全外连接显示两表所有的其他列数据
oracle支持全外连接,mysql只支持左连接右连接
2.语法


3.自连接

4.外连接


5.交叉连接

6.自然连接
7.using子句连接
8.内连接



十一、组函数
1.组函数 了解



count 查询对单行去重的结果计数

2.组函数 和null 值
所有组函数忽略列中的空值,在组函数中使用 NVL 来处理空值
3.创建分组 group by having

having 只能和group by 使用,相当于where ,用于写条件过滤

4.多行子查询


in 某个结果集id in(a,b) 类似于 id =a or id=b




十二、插入语句
oracle 执行完插入语句,需要执行commit 进行提交。
1.插入

普通插入数值,需要对应的列,和插入的数值一一对应。如果是全部插入数据,可以省略不写列名,直接在valus中添加数值,但是需要与列名一一对应。


2.插入日期
3.从另一个表中复制行
十三、更新update


十四、删除语句delete

十五、事务

1.事务特性
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。
2.使用事物

3.事务类型

十六、数据库创建删除表


十七、修改数据

十八、定义约束




十九、视图
1.什么是视图







发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175723.html原文链接:https://javaforall.net
