Oracle 关系型数据库(关系数据模型作为数据的组织方式.)
关系数据库 : 数据结构,关系操作集合,关系的完整性约束3部分组成.
-
二维表
- 由一组关系组成,每隔关系的数据结构是一张泛华的二维表/二维表就是用来表示实体和实体间联系的数据模型.
- 关系的逻辑是一个二维表,表中的每一列表示关系的一个属性,每一列的名称即为属性名
- 每一行表示一个记录,代表的是一个物理实体,在关系数据库中,所有的数据都是通过表来存储的.
-
关系术语
- 在关系数据模型中,列称为属性或字段,行被称为元组或记录等.
- 关系(Relation)
- 一个关系对应通常是一张表
- 元组(Tuple)
- 表中的一行数据即为一个元素.
- 属性(Attribute)
- 表中的一个列即为一个熟悉.
- 域(Domain)
- 属性的取值范围称为该属性的域
- 关键字或码(id/主键)(key)
- 表中唯一确定一个元组的列称为(码键/关键字/id/主键)
- 分量(Component)
- 元组中的某一个属性的属性值
- 关系模式(Relation Schema)
- 对关系描述方式, 关系名(属性1,属性2,属性3…,属性n)
R(U,D,dom,F)
R关系名; U是组成关系的属性名集合, D是属性的域,dom是属性向域映射的集合,F为属性之间的依赖关系
R(U),R(A1,A2…An)
E(ID,Nanme,Sex…)select * from user;
Select * from user;
SELECT * FROm USER;
select * from USER;
D:\app\linne
D:\app\linne\product\11.2.0\dbhome_1
D:\app\linne\oradata
sql*plus连接数据库
sys
system
dbsnmp
sysman
mgmt_view
默认解锁账户可以被使用.
登陆 sqlplus 用户名/密码
查询当前用户下面的所有表
select * from tabs;
1. 登陆管理员用户后查询.所有用户
SQL> select username,account_status from dba_users;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
SCOTT OPEN
HR OPEN
OUTLN EXPIRED & LOCKED
FLOWS_FILES EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
ORDSYS EXPIRED & LOCKED
2. 解锁用户
SQL> alter user 用户名 account unlock;
3. 修改用户密码
SQL> alter user 用户名 identified by 新密码
4. 切换用户
SQL> conn 用户名/密码
sqlplus system/ as sysdba 以管理员身份登陆
sqlplus 用户名/密码@host
查看表结构
SQL> desc dept;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
SQL> describe dept;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
run 和 / 执行缓冲区保存的SQL语句.
save filename 将缓冲区中的命令存储到当前用户的文档目录下
ed filename 打开已有的SQL文件,如果没有创建新的SQL文件
@ filename 运行指定的SQL文件
回顾:
关系数据库
1. 关系数据模型
2. 关系数据库的泛化理论
3. 数据库设计(实体-关系模型,E-R图绘制)
4. Oracle应用体系
1. 单磁盘独立主机结构
2. 多磁盘独立知主机结构
3. 客户端/服务器端系统结构
4. 浏览器/服务器系统结构
5. 分布式数据库体系结构
Oracle数据库体系结构
1. 物理存储结构
1. 数据文件
2. 控制文件
3. 日志文件
1. 重做日志文件…
4. 其他文件
2. 逻辑结构
1. 表空间
数据库实例
1. 内存结构
1. 系统全局区
2. 程序全局区
3. 排序区
4. 大池
5. java 池...
6.
2. 后台进程
1. CKPT进程
2. DBWR
3. LGWR
4. SMON
5. PMON
6. RECO
7. LCKN
8. DNNN
9. SNPN
3. 数据字典
是Oracle存放数据库实例信息的一组表,通过数据字典可以了解数据库的详细配置信息.
数据库字典的所有者为sys用户,而数据字典表和数据字典视图都是存储在system表空间中的
1. user_* : 用户对象信息表.
user_tables;
2. all 视图
1. all_为前缀的用来记录用户对象的所有信息,和授权访问对象的信息
3. dba 视图
1. dba_user,dba_tables等都是存储数据库实例所有对象信息.\
4. V$视图
1. 活动相关的性能统计信息.
5. GV$视图
1. 分布式系统环境下使用的多文件存储信息
dba_tables
dba_views
....
sql*plus:
注册表:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
页面设置大小
set pagesize 行数
SQL> desc dept 部门表
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
表空间
物理结构上,数据信息存储在数据文件中
逻辑结构上,数据信息存储在表空间中.
一个数据库是由多个表空间构成,表空间和数据文件存在紧密的对应关系
每个表空间是由一个或多个数据文件组成.
dba_tablespaces; 存储Oracle数据库中的所有表空间信息.
SQL> select tablespace_name,block_size,allocation_type from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE ALLOCATIO
------------------------------ ---------- ---------
SYSTEM 8192 SYSTEM
SYSAUX 8192 SYSTEM
UNDOTBS1 8192 SYSTEM
TEMP 8192 UNIFORM
USERS 8192 SYSTEM
EXAMPLE 8192 SYSTEM
已选择6行。
创建基本表空间
在创建表空间的时候 :
1. 在数据字典和控件文件中添加新建的表空间信息
2. 操作系统中,创建指定大小的操作系统文件,并作为与表空间对应的数据文件
使用脚本创建:
create [temporary|undo] tablespace tablespace_name
datafile filepath
blocaksize number k
autoallocate number [k|m]
SQL> create tablespace hnkj
2 datafile 'd:\db_file\hnkj.dbf'
3 size 10m
4 autoextend on
5 next 5m
6 maxsize unlimited;
表空间已创建。
修改表空间
1. 为表空间增加新的数据文件
SQL> alter tablespace hnkj
2 add datafile 'd:\db_file\hnkj_02.dbf'
3 size 10m;
表空间已更改。
2. 查询数据文件信息
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB_FILE\HNKJ.DBF 10485760
7 D:\DB_FILE\HNKJ_02.DBF 10485760
已选择7行。
3. 修改数据文件大小
SQL> alter database datafile 'd:\db_file\hnkj_02.dbf' resize 5m;
数据库已更改。
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB_FILE\HNKJ.DBF 10485760
7 D:\DB_FILE\HNKJ_02.DBF 5242880
已选择7行。
4. 修改数据文件是自动增长
SQL> alter database datafile 'D:\DB_FILE\HNKJ_02.DBF' autoextend on;
数据库已更改。
SQL> select file_id,file_name,autoextensible from dba_data_files;
FILE_ID FILE_NAME AUT
---------- -------------------------------------------------- ---
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF YES
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF YES
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF YES
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF YES
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF