为了账号安全,请及时绑定邮箱和手机立即绑定

我最近在读全宇宙最牛逼的Oracle知识点总结

标签:
Oracle

1.什么是数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
主流的数据库
Oracle –主要版本:oracle9i,oracle10g,oracle11g。
MS SqlServer
DB2
Sybase
数据库的发展:网状数据库;关系数据库;对象数据库

2.数据库管理系统
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性
关系型数据库管理系统
特点:
数据以表格的形式出现
许多的行和列组成一张表单
若干的表单组成database

3.Oracle数据库是一个物理概念。
Oracle为数据文件放在oradata/orcl中。
Oracle实例是一个逻辑概念。
将数据文件读取到内存中就是实例。
Oracle 数据库 和 Oracle 实例
Oracle 服务器由两大部分组成, Oracle 数据库 和 Oracle 实例。
Oracle 数据库: 位于硬盘上实际存放数据的文件, 这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库. 因此在 Oracle 看来, “数据库” 是指硬盘上文件的逻辑集合, 必须要与内存里实例合作, 才能对外提供数据管理服务
Oracle 实例: 位于物理内存里的数据结构. 它由一个共享的内存池和多个后台进程所组成, 共享的内存池可以被所有进程访问. 用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过实例才能实现, 不能直接读取硬盘上的文件
区别: 实例可以操作数据库; 在任何时刻一个实例只能与一个数据库关联; 大多数情况下, 一个数据库上只有一个实例对其进行操作

4.物理结构
数据文件-Data File
用于保存数据库中的全部数据。如表、数据和索引。数据文件一般以.dbf命名。
日志文件-Redo Log File
用于记录数据库所做任何变更(CRUD),以便于在数据库发生错误时,恢复数据。通常以log
.dbf/.log命名。
控制文件-Control File
每一个Oracle数据库,都有相应的控制文件,它们是较小的二进制文件。用于记录数据库的物理结构。如数据库名,数据库的数据文件、日志文件位置等信息。通常以ctrl
.ctl命名。
配置文件
配置文件记录了Oracle数据库的一些重要参数,如数据块大小,内存结构的配置等等。通常以init*.ora格式命名。
这些文件我们不可以直接操作,只可以通过Oracle实例去操作这些文件 。

5.数据库管理员用户
在安装Oracle数据库时,自动创建用户名SYS和SYSTEM,用户密码在安装时被设定,并自动授予数据库管理员(DBA)的角色。
(scott/tiger)
SYS用户
这个账号具有所有数据库管理的功能,所有数据库数据字典中的基本表和视图都存储在用户SYS的方案(Schema)中,这些基本表和视图对于Oracle数据库的操作都非常重要。
SYSTEM用户
该账号除了不能用于数据库备份及恢复、数据库升级外,可以执行其他所有的日常管理管理工作。
连接数据库之前必须保证Oracle实例的服务与监听开启

*6.SQLPlus*
在开发中,我们主要使用SQL
plus。
SQLPlus工具可以执行输入的SQL语句和包含SQL语句的文件以及PL/SQL语句。通过它可以直接对数据库进行管理操作,例如:查询、插入、更新或删除等等
SQL、PL/SQL和SQL
Plus的区别
SQL:全称为结构化查询语言,是工业化标准的计算机语言用于查询及更新数据库,它可以实现各种的数据库管理操作。
PL/SQL:是Oracle在标准SQL语言上进行过程性扩展后形成的程序设计语言,在管理和维护数据库的过程中,经常会使用PL/SQL语言设计并编写存储过程、函数和触发器。
SQL*Plus:是一个命令行的数据库管理工具,是Oracle数据库SQL语句主要的运行环境,是用户与服务器之间的主要接口。用户可以通过它使用SQL语句和PL/SQL程序交互式的访问数据库。

7.在Windows环境下,可以通过命令行方式和Windows菜单两种方式启动SQLPlus操作
命令行方式启动SQL
Plus
1.打开DOS窗口
2.配置操作系统环境变量(有时可省略)
3.可以使用以下命令启动SQLPlus
sqlplus {用户名| /} [as sysdba]
例如:
sqlplus SYS AS SYSDBA或者sqlplus SYSTEM AS SYSDBA
输入口令: password
远程连接到其他机器:sqlplus sys/pwd@192.168.56.103/ORCL as sysdba;
Windows菜单启动SQL
Plus
依次点击:开始所有程序Oracle - OraDb11g_home1应用程序开发SQL Plus
打开登录窗口之后,输入用户名及密码

*8.使用SQLPlus可以方便的编辑和管理编程的过程**,其中包括编辑命令、保存命令、加入注释、运行命令、编辑交互命令、使用绑定变量、跟踪语句等。
Sqlplus是Oracle的SQL编写工具。

9.scott账户解锁:
sys as sysdba;
alter user scott account unlock; //解决账户锁定
alter user scott identified by tiger; //解决密码过期

步骤:
cmd--->sqlplus sys as sysdba--->123456(我自己在安装Oracle时设置的)--->alter user scott account unlock;
--->alter user scott identified by tiger; 看到两个 “用户已更改” 即修改成功

10.Oracle的DDL语句定义表结构、修改表结构、删除表
创建虚拟列、创建临时表
DML(Insert、update、delete)

11.数据类型是在设计表结构中需要定义的,选择适当的数据类型可以节省存储空间,提高运算效率。
Oracle数据类型主要包括
字符型
适合保存字符串类型的数据,如姓名、地址、简介等等。
如:char(2000),nchar(2000),varchar(4000),nvarchar2(4000), 数据型
数值型
适合保存数值类型的数据,如年龄-int,收入numeric(p,s),decimal(p,s)同numeric(p,s)
日期/时间型
Date可以包含yyyy-mm-dd hh24:mi:ss – 建议
TIMESTAMP(精度即毫秒的个数)时间戳。
大对象(LOB)型等
raw
LONG,clob,nclob。其中Clob和nclob最大数据为4G。
Blob – 保存二进制数据,最大 4G.
Bfile – 保存一个指向外部文件的数据,最大为4G。可以在运行时通过I/O获取这个文件。

12.如果没有指定char的长度,则默认值为1
create table test_char(
sex char
);
desc test_char;
--修改,最大值为2000
alter table tt
modify a char(2000);
以下对比char与nchar
create table test_nchar(
sex char(3), --按字节计算,最多只能保存一个汉字
nation nchar(3) --按本地字符计算,可以保存3个汉字
);
insert into test_nchar values(‘男’,‘汉族');
select * from test_nchar;
可以通过select length(sex),lengthb(nation) from test_nchar;查看表的字符长度和字节长度

数据定义语言DDL (Data Definition Language)
用于创建对象
如:create table ,alter table,drop table,create view;
数据操纵语言DML (Data Manipulation Language)
用于操作数据CRUD。
如:insert into,update,delete,select

DDL是指数据定义语言:Create,Drop,Alter,Modify,Rename
创建表和命名规则:
表名和列名:
必须以字母开头
必须在 1–30 个字符之间
必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
必须不能和用户定义的其他对象重名
必须不能是Oracle 的保留字
Oracle默认存储是都存为大写
必须具备:
CREATE TABLE权限
存储空间
必须指定:
表名
列名, 数据类型, 数据类型的大小

使用DESCRIBE命令查看某张表的信息
查询USER_TABLES视图获取表的相关信息
可以通过查看user_tab_columns视图,查看表的列相关信息
可以使用RENAME语句对表进行重命名
给表或列添加备注,可以帮助用户理解表或列的作用。给表或列添加备注可以使用COMMENT语句
可以从user_tab_comments视图中查看表的备注信息
可以从user_col_comments视图中查看列的备注信息
如果要删除表的话,可以使用DROP TABLE语句
Oracle 11g允许添加虚拟列,虚拟列可以引用表中已存在的列。不允许在虚拟列上插入值
可以使用INSERT语句将数据插入到表中,需要指定以下信息:插入到哪张表;指定插入哪些列;指定列清单对应的一系列列值
当插入数据时,需要给主键以及非空约束的列指定值。可以为NULL值的列可以不指定值。
可以使用NULL为某些列指定空值
列值中可以包含单引号或双引号
可以使用INSERT语句将从一个表查询出来的行插入到另外一张表。
可以使用UPDATE修改表中的行。当使用UPDATE时,需要指定以下信息:表名;需要修改的列需要用WHERE子句指定条件;
列名的清单及新值
在一个UPDATE语句中可以修改多列
可以使用DELETE语句从表中删除行。需要使用WHERE子句指定需要删除的行,否则所有行都会被删除
截断表使用TRUNCATE语句,这个操作会从表中删除所有的行和重置表的存储区域。

TRUNCATE TABLE:删除内容不删除定义,会释放空间(效率高,速度快)。//删除完所有内容后自动commit;不能回滚成功。

DELETE TABLE:删除内容不删除定义,不释放空间(效率低,速度慢,因为一行一行的删除)。//能回滚成功

DROP TABLE:删除内容和定义,释放空间。(会放进回收站)

点击查看更多内容
29人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.5万
获赞与收藏
8507

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消