黑马程序员Oracle数据库精讲,从0到1学会Oracle数据库

---------------------------第1章---------------------------

-分布式数据库
-支持分布式处理功能
-可移植性(Windows→Linux)
-VMware (Oracle一般装在服务器上 Windows server 2003,其他远程调用)
-服务器版操作系统
-挂载:运行VMware→运行Windows server 2003 .vxm
-本地连接 物理网卡
-虚拟网卡 本地与虚拟机内部网络连接
-安装VMware后自动创建虚拟网卡VMnet0 VMnet8
-连接模式:

桥接模式:
-本机和虚拟机中服务器在同一个局域网,但计算机需要网线与交换机相连
仅主机(推荐配置):
-本地计算机和虚拟机中计算机用一根网线相连,不用插网线,不受外部网络环境影响
NAT模式:
-虚拟机操作系统与本地计算机共享一个IP地址,本地计算机和虚拟机内计算机无法通信
-子网IP可更改
操作系统与新建虚拟网卡绑定
安装Oracle数据库
Oracle 10g
体系结构:
-一套oracle可以有多个实例(支持,较少涉及)
-表空间:一个或多个数据文件的逻辑称呼


-只有oracle有表空间的概念
-命令行远程连接SQL(一般DBA使用,调优使用)->可视化工具(多数属于第三方工具, PLSQL+developer)
-配置:不具备远程连接oracle功能,需配置
-中文乱码问题:配置环境变量 SQL查询服务器编码,环境变量中配置即可(需要时见视频,重新进入)

<自来水公司收费系统>


-实际是创建数据文件
-语句:create tablespace
-objects 里有一个 “tablespaces”的文件夹,可以查看所有表空间信息

-语句:create user

-一个表空间里可以建立多个用户
-添加用户后,还需要添加权限

-创建表:primary keyz->主键
-语句与MySQL一致

-数据类型:字符型、数值型、日期型、二进制型(大数据类型)



-右侧objects中的tables节点保存所有表,可查看表结构
->可以右键tables,点击new,可视化创建表;右键表名称选择edit可编辑已创建的表
-修改表:增加字段、修改字段、修改字段名、删除字段名




-删除表:

-插入数据:(与MySQL一致)
->不写列名,即插入全部列
->执行语句后,需要提交事务(commit)后才正在插入至表中;或手写“commit;”再执行,即可直接提交

-修改数据:
->需提交事务

-删除数据:
->需提交事务,删除一条语句
->delete from可以回滚(移动数据值回滚段,效率低);truncate不可回滚(重建表结构,直接删除表)


-了解
-orcl 实例名称
-DBA 数据库迁移

-整库/指定文件导出 EXP:
将整个数据库导出成一个文件(默认EXPDAT.DMP,纯二进制文件),服务器级别操作命令(服务器命令行操作)

-整库/指定文件导入 IMP:
->存在对象则跳过,存在表导入失败,不会覆盖数据操作,有表就不行



-根据用户找表
----------------------------第2章-----------------------------
<中间部分直接看视频学习 ,未记笔记.. 有比较重要的>
- 字符函数(部分 其余自行了解)
-length
-select必须跟from,提供“伪表 dual”补充语法
select length(‘ABCD’)from dual
-字符串截取 substr(原字符串,从第几位截取,截取字符数) ;从1开始
-select concat('ABC','D') from dual
-只能一次拼接两个字符串,多时嵌套
-推荐字符串拼接符('+'只针对数字,'||'针对字符串):
select 'ABC' || 'D' from dual
-select round(100.456,2) from dual -> 保留两位小数,100.47
默认保留整数,添加参数设置保留位数
-select trunc(100.567,2) from dual ->100.56
-select mod(10,2) from dual
-select add_months (sysdate,2) from dual
-参数为负数即为减月
-select last_day(sysdate) from dual
-默认按日截取
-按月截取
select trunc(sysdate,'mm') from dual
-select to_char(100) from dual
-按格式转换select to_char(sysdate,'yyyy-mm-dd') from dual
-查询常用
select to_date('2022-12-23','yyyy-mm-dd')from dual
to_number('100')...
-nvl , nvl2(检测的值,如果不为null的值,如果为null的值)

-条件判断
14-18待学习 - 遇到使用该函数时在学习即可
------------------------------------------------------------------------------------------------------------------------
三、oracle对象
1.视图
-oracle对象:表、视图、存储对象..
-什么是视图(基本上所有的数据库产品都有视图):一虚拟表(一条语句),基于它创建时指定的查询语句返回的结果集
1)一种虚拟的表,封装SQL语句,再次查询结果时,直接查询该视图即可
2)优点:简化数据操作(与表的使用方法一致);着重于特定数据(不必要的数据或敏感数据可以不出现在视图中),定制不同用户对数据的访问权限(可设置为只读);提供向后的兼容性




-先写select语句
-创建后生成至左侧objects中的views节点下

-修改视图中的数据等于修改表的数据,视图为虚拟表,引用的均为基表;相反也一样;视图占数据库位置仅为一条SQL语句大小;
-创建视图语法中特殊参数 with check option
-无法修改已创建的带检查约束的视图;无法修改条件值(where后的),其他字段名称等可修改

-with read only 只能查无法修改

-select 语句有误,比如没有基表存在;关键字force,views节点带红色×,允许先建立视图,后续基表生成后视图即可成立

-复杂视图:视图的SQL语句中有聚合函数或多表关联查询

-修改复杂视图(多表关联)的数据:允许,且基表也被修改;?多表关联中有基表属于键保留表 (把主键保留下来的那个表),只能修改键保留表的数据?
-最后产生视图需要每个类都有别名

-不可修改聚合统计列的数字;聚合统计没有键保留表;且建不建只读表均不可以修改
2.物化视图
-视图实体化(定义见下图):会建立副本,占用存储空间;物化视图相当于查询单表,不再多表关联,提高查询效率

-语法:materialized

again