zoukankan      html  css  js  c++  java
  • day02_登陆+数据字典

    1、查看进程

    ps -ef|grep ora_


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

    sqplus sys/lipengfei as sysdba

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

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

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

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


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

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

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

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

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

    演示如下:
    sqlplus scott/lipengfei 

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


    SQL> alter user scott account lock;

    SQL> alter user scott account unlock;






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

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

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


    sqlplus scott/lipengfei 

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

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

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


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

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

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

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

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


    select owner,object_id,OBJECT_NAME,OBJECT_TYPE from tt where object_id<1000;


    select * from v_tt;

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

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

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

    create view v_tt3 as select owner,object_id,OBJECT_NAME,OBJECT_TYPE from tt where object_id<2000;

    create view haha 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






  • 相关阅读:
    One网络模拟器探索之七:路由模块的工作原理
    An Intuitive Explanation of GraphSAGE
    《k8s 源码分析》- Custom Controller 之 Informer
    《k8s-1.13版本源码分析》-抢占调度
    《k8s-1.13版本源码分析》- Informer 机制
    《k8s-1.13版本源码分析》-调度器初始化
    《k8s-1.13版本源码分析》-源码调试
    《k8s-1.13版本源码分析》-调度优选
    《k8s-1.13版本源码分析》-调度预选
    《k8s-1.13版本源码分析》-调度器框架
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/3e45e4aacf05ad53290ec97995098941.html
Copyright © 2011-2022 走看看