Oracle学习笔记
1、sql执行顺序
1、常见的select、from、where的顺序
from -> where -> select
2、完整的select、from、where、group by、having、order by的顺序
from -> where -> group by -> having -> select -> order by
2、oracle组成
1、参数文件,口令文件(数据文件【数据存储仓库】、控制文件【记录数据库名字,数据库位置等】,重做日志文件【数据日志,用来恢复备份等】),日志归档文件
3、oracle实例
概念:位于物理内存里的数据结构,他由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有的进程访问
oracle实例 = 进程 + 进程所使用的内存【SGA(System Global Area)】
4、oracle的七个服务
1、Oracle ORCL VSS Writer Service
Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
2、OracleDBConsolexx(xx表示实例名称)
Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
3、OracleJobSchedulerORCL
Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)
4、OracleMTSRecoveryService
服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
5、OracleOraDb11g_home1ClrAgent
Oracle数据库.NET扩展服务的一部分。(非必须启动)
6、OracleOraDb11g_home1TNSListener
监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动,下面会有详细详解)。
(监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。)
7、OracleServicexx(xx表示实例名称)
数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
(数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。)
5、常用命令
命令 | 描述 |
---|---|
connect | 切换连接用户,简写形式conn |
Show user | 显示当前登录的用户 |
Host<dos命令> | 执行操作系统命令 |
Spool | 导出记录到文本 |
Clear screen | 清屏 |
Start d:\test.sql | 执行文件系统中的申请了语句,start命令等同于’@’ |
desc | 显示表结构 |
show error | 显示错误信息 |
exit | 退出 |
6、Oracle的系统用户
查看所有用户:
SQL> select username from dba_users;
默认用户:
1、sys/system:
sys连接:conn sys/xxxx as sysdba或者sysoper
2、sysman:用于EM管理的用户
3、scott:普通用户
创建用户
create user xgl identified by 123456 default tablespace test1_tablespace temporary tablespace temptest1_tablespace;
用户管理
用户授权
启用用户
给用户解锁【语法格式】
alter user 'username' account unlock
7、表空间
- 永久表空间
- 临时表空间
- UNDO表空间(回退)
创建表空间的语法格式
SQL> create tablespace test1_tablespace datafile 'test1file.dbf' size 10m;
表空间已创建。
普通表空间
SQL> create temporary temptest1_tablespace tempfile 'tempfile.dbf' size 10m;
create temporary temptest1_tablespace tempfile 'tempfile.dbf' size 10m
*
第 1 行出现错误:
ORA-00901: 无效 CREATE 命令
临时表空间
SQL> create temporary tablespace temptest1_tablespace tempfile 'tempfile.dbf' size 10m;
表空间已创建。
查看表空间存储位置
SQL> select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
FILE_NAME
--------------------------------------------------------------------------------
E:\APP\XGL\VIRTUAL\PRODUCT\12.2.0\DBHOME_2\DATABASE\TEST1FILE.DBF
查看用户的表空间
SQL> select tablespace_name from dba_tablespaces;
管理员
TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SQL> select tablespace_name from user_tablespaces;
普通用户
TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
查看系统用户的表空间
SQL> select default_tablespace,temporary_tablespace from dba_users where username = 'SYSTEM';
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
SYSTEM TEMP
SQL> select username,default_tablespace,temporary_tablespace from dba_users;
设置用户默认或临时表空间
SQL> alter user username default tablespace test1_tablespace xxx temporary tablespace xxx;
修改表空间的状态
-
设置联机或脱机状态:表示该表空间暂时不让访问
alter tablespace tablespace_name online|offline; 查看状态: select status from dba_tablespaces where tablespace_name = 'xxx';
-
设置只读或可读写状态
alter tablespace tablespace_name read only|read write;//默认是可读写状态
修改数据文件
alter tablespace tablespace_name add default 'xxx.dbf size xx';//向创建好的表空间里增加数据
删除数据文件
alter tablespace tablespace_name drop default 'xxx.dbf size xx';//不能删除表空间中的第一个创建的文件
删除表空间
drop tablespace tablespace_name [including contents]
单独删除表空间不需要加后面的,需要删除文件要加后面的
8、权限
系统权限:允许用户执行特定的数据库动作,如创建表,创建索引,连接实例等;
对象(实体)权限:允许用户操纵一些特定的对象,如读取视图、执行存储过程等;
查询oracle所有系统权限
select * from system_privilege_map;
常用系统权限
命令 | 功能 |
---|---|
CREATE SSION | 创建会话 |
CREATE SEQUENCE | 创建序列 |
CREATE TABLE | 创建表 |
CREATE USER | 创建用户 |
ALERT USER | 更改用户 |
DROP USER | 删除用户 |
CREATE VIEW | 创建视图 |
查询oracle所有对象权限
select * from table_privilege_map;
常用对象权限
命令 | 功能 |
---|---|
select | 查询 |
update | 修改 |
insert | 插入 |
delete | 删除 |
all | 所有 |