搜档网
当前位置:搜档网 › 登录、数据字典

登录、数据字典

1、查看进程

ps -ef|grep ora


2、登录数据库中【DBA角色,最大权限】

sqlplus sys/lipengfei as sysdba

sqlplus / as sysdba 【以sysdba角色登录,可以忽略用户和密码】

show user 【展示当前登录用户是谁】

sqplus sddasd/asdasd as sysdba
【瞎打也可以登录,默认情况下,安装完库后,登录时声明 as sysdba,它是操作系统认证,咱们是拿oracle用户安装的库,操作系统一认证,默认就拿sys登录了】

上面是方便了,但是安全性不好,后面咱们会讲以 密码文件方式验证,就必须要输入用户和密码了


----------数据字典---------
select username from user_users;【查看当前的用户】

select username from dba_users;【查看当前库中所有用户】

select username from all_users;【查看当前库中所有用户】

user_、dba_、all_不是我建立的,是系统自带的,由系统自动维护,存储关于库的一些信息,这种表叫系统表也叫数据字典,方便你日后的使用

以 user开头的:当前用户可以,它只能看当前信息
以 all开头的:所有的吧
以 dba开头的:只有dba权限的才能看,sys用户和system用户

select count(*) from all_tables;



创建用户:
create user 用户名 identified by 初始化密码;

create user nimei identified by nimei;


演示如下:
sqlplus scott/lipengfei

演示修改密码方式:
password 用户 、 alter user 用户 identified by 新密码


SQL> alter user 用户 account lock;

SQL> alter user 用户 account unlock;






打开2个窗口,分别以sys和scott用户登录,执行:

select count(*) from user_tables;【查看当前用户有多少表,sys下有许多系统表】
select * from user_tables;

select count(*) from all_tables;
select count(*) from dba_tables;



sqlplus scott/lipengfei

select ename,job,sal from emp;【展示emp表的,ename,job,sal这三个字段】

---------------动态性能视图-------------

以v$ 开头的叫 动态性能视图【v$database】


什么是视图?
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它不可以对表里面的数据进行修改。
视图基于的表称为基表。视图是存储在数据字典里的一条select语句。
通过创建视图可以提取表中部分数据的逻辑上的集合或组合。

视图的优点:
1.对数据库的访问,因为视图可以有选择性的选取目标表里的一部分。
2.用户通过简单的查询可以从复杂查询中得到结果。
3.维护数据的独立性,视图可从多个表检索数据。
4.对于相同的数据可产生不同的视图。

create table tt as select * from all_objects;【复制all_objects表,起名叫 tt表】

select count(*) from tt;【查看tt表中有多少条记录】

desc tt 【查看tt表的结构定义】


select owner,objec

t_id from tt where object_id<1000;
【假设object_id小于1000的记录,我们总查看,总打这个命令比较长比较麻烦,可以把这条命令放到视图中,视图可以认为是快捷方式,方便查看,存储表中的一部分数据】

create view v_tt as select owner,object_id from tt where object_id<1000;

create view v_tt2 as select owner,object_id from tt where object_id<1000;


create view v_tt3 as select * from v_tt;

select * from v_tt;【一条简单的命令,查看视图,就等于查询了刚才那段挺长的SQL】
视图中不存放数据,视图就好比对表的一个映射,数据还存放在原表中,视图查出的数据,定位的记录还在原表中,所以视图不能提高查询速度【可以画个图】

视图作用:
1、方便查询【查询:emp和dept表,多查出点字段,比较长 select a.ename,b.dname from emp a,dept b where a.deptno=b.deptno and a.ename='FORD'】
2、安全隐藏原表【源表名,不想让别人知道】

多表查询,表之间一定要有关联,否则无法查询【举例:学生、班级】

##############################################################

学生(学号,姓名,性别,班号)

create table student(sno int,name varchar2(100),sex int,bno int);

insert into student values(1,'gulaijing',2,1);

insert into student values(2,'luogang',1,1);

insert into student values(3,'zhangzheng',0,2);

commit;
班级(班号,班级名)

create table bj(bno int,bname varchar2(100));

insert into bj values(1,'nimei');
insert into bj values(2,'fuck');

commit;
查询 学生的学号、姓名、班级名


select sno,name,bname from student s,bj b where s.bno=b.bno;


create view fuckyou as select sno,name,bname from student s,bj b where s.bno=b.bno;


##############################################################




查看服务器状态
SQL> select open_mode from v$database;

动态性能视图不是我创建的,库自动创建并维护的,根据一个或多个数据字典创建出来的,以后工作中会常用


查看实例名
select instance_name from v$instance;

查看当前用户数据库下面有哪些表
SQL> conn scott/123456
SQL> select table_name from user_tables;



X$ oracle数据库核心部分,加载数据库时即被使用,加密命名【一般不会更改、也不会查看,当前库自己使用】

你在加载数据库中,得调用一些数据库信息,这些数据会驻留在内存中,这调用比较多,以表形式存在



查看数据字典

select count(*) from dict; 【一共有多少数据字典,没有人能背下来,工作中常用的,天天用你就记住】



SQL> select * from dict where table_name='USER_TABLES';【注意条件中值的大写】
(列为table_name 其实现实的是数据字典对象名)



dict_columns 记录着字典视图列的说明【单词看不懂,工作中用金山词霸正常

!如果有能力多看英文文档,不忙的时候,看看oracle官网的新闻】
SQL> select column_name,comments from dict_columns where table_name='USER_TABLES';





GV$ 为全局 主要为RAC实用





数据的提交和回退

commit 提交数据(将数据写到日志里并同步到数据文件)(oracle默认为不提交)
rollback 回退就是取消所有操作,次命令只对还未commit的操作有效



脚本执行
[oracle@sq ~]$ vi a.sql
create table hehe(id int,name varchar2(10));

SQL> @/home/oracle/a.sql



相关主题