SQL语言概述
数据查询语句:SELECT
数据操纵语句(DML):delete/insert/update
数据定义语句(DDL):create/alter/drop/rename/truncate
事务控制语句:commit/rollback
数据控制语句:grant(授权)/revoke(回收权)
数据字典(基于基表)
它在数据库创建时由数据库服务器创建与修改。包含如下信息
1:所有的模式(用户)对象的定义,这些对象包括表,视图,索引,族,同义词,序列号,存储过程,函数触发器等
2:数据库的逻辑结构和物理结构,如数据文件和重做日志文件的信息等。
3:所有模式对象被分配多少存储空间,以及当前使用的空间
4:默认列的值
5:对象完整性约束信息
6:用户信息
7:用户或角色的特权信息
8:审计信息,如那个用户具有访问或者修改某些模式对象的权利
使用场景
1:oracle数据库服务器用来寻找用户信息,模式对象信息(如表,索引,触发器..)和存储结构
2:当使用ddl语句时,会触发oracle服务器修改数据字典
3:普通用户或者dba用户使用数据字典获得关于数据库的信息,如数据文件的存储位置,数据库实例名,参数文件中的参数值,控制文件的信息等
数据字典视图分类
分成3类,都是静态视图(静态表示这些视图在数据库运行期间不会发生变化,除非执行analyze指令),这3类数据字典视图以不同前缀区分。
DBA_***:包含数据库中整个对象的信息,只能由管理员查询,不要在这些视图上创建同义词
ALL_***:这些视图包含某个用户所能看到的全部数据库信息,包括当前用户所拥有的模式对象和用户可以访问的其他公共对象,还有通过授权或授权角色可以访问的模式对象
USER_***:包含当前用户访问的数据库对象信息,反映数据库中某个用户的全部信息,隐含owner信息,全部内容为以ALL为前缀的视图的子集
*:表示数据库模式对象,如table,索引,视图等
DESC dba_objects;:查看dba_objects视图结构
–查看dba_objects中scott用户的数据库对象信息
Col owner for a20
Col object_name for a40
Select owner,object_name,created From dba_objects Where owner=’scott’;
Desc all_objects;–查看all_objects结构信息
Desc user_objects;–查看用户对象表,没有owner列。
Select * from user_objects;
使用数据字典视图(静态视图)
User_tables:查看当前用户所有拥有的表
User_indexs:查看当前用户创建的索引
User_views:查看当前用户拥有的视图
User_catalog:查看当前用户所有表的名字和类型
Dba_users:查看数据库系统上何时创建了多少个用户
动态性能视图及使用
只存在于运行的数据库中,一组虚表,也称为动态性能表
只有管理员可以查看,管理员可以创建,其他成员要查看,需要管理员授权
固定以v
为前缀Select∗fromv
fixed_table where name like ‘VLOG%’;–查询日志文件相关的信息
Select group#,members,archived,status from vlog; –查看当前正在使用的重做日志组,current说明日志组使用中,inactive说明数据库系统没有使用该重做日志组
Select * from v$logfile;–查看当前数据库系统的重做日志组的日志成员的存储目录,文件名和状态。
查询正在使用的重做日志文件的信息
Select l.group#,l.archived,l.status,lf.type,lf.member from v
logl,v
logfile lf where
l.group#=lf.group# and l.status=’current’;
select instance_name,host_name,version,startup_time,logins from v
instance;–查看实例信息(实例名,主机名,版本号,实例启动时间)selectname,created,logmodefromv
database;查看当前数据库的信息
v
controlfile:包含控制文件存储目录和文件名信息v
datafile:包含数据库文件信息