Oracle基础

本文详细介绍了Oracle关系型数据库的基础知识,包括关系数据模型、sql*plus连接数据库、表空间管理、表的创建与完整性约束、用户权限以及SQL基础操作如DML语句、表连接查询等。此外,还探讨了Oracle数据库的物理和逻辑存储结构,以及如何进行数据类型的定义和完整性约束的设置。
摘要由CSDN通过智能技术生成

Oracle 关系型数据库(关系数据模型作为数据的组织方式.)

关系数据库 : 数据结构,关系操作集合,关系的完整性约束3部分组成.
  1. 二维表

    1. 由一组关系组成,每隔关系的数据结构是一张泛华的二维表/二维表就是用来表示实体和实体间联系的数据模型.
    2. 关系的逻辑是一个二维表,表中的每一列表示关系的一个属性,每一列的名称即为属性名
    3. 每一行表示一个记录,代表的是一个物理实体,在关系数据库中,所有的数据都是通过表来存储的.
  2. 关系术语

    1. 在关系数据模型中,列称为属性或字段,行被称为元组或记录等.
    2. 关系(Relation)
      1. 一个关系对应通常是一张表
    3. 元组(Tuple)
      1. 表中的一行数据即为一个元素.
    4. 属性(Attribute)
      1. 表中的一个列即为一个熟悉.
    5. 域(Domain)
      1. 属性的取值范围称为该属性的域
    6. 关键字或码(id/主键)(key)
      1. 表中唯一确定一个元组的列称为(码键/关键字/id/主键)
    7. 分量(Component)
      1. 元组中的某一个属性的属性值
    8. 关系模式(Relation Schema)
      1. 对关系描述方式, 关系名(属性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            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值