• Oracle 10G 了解


    第一张 数据库的安装及体系结构
    c:\oracle\product\10.1.0\oradata\test实例所在的目录
    控制文件.ctl 数据文件.dbf ,日志文件.log
    联机日志,归档日志文件
    控制文件管理日志和数据文件
    先启动控制文件-然后在打开数据文件
    http://JLXXB-ADU:5500/em
    以下的 J2EE 应用程序已经配置, 并且可用下面列出的 URL 来访问。

    数据库管理器
    sqlpuus "sys/test1234 as sysdba"
    系统视图-控制文件
    DESC v$controlfile

    第二章 sql*plus基础
    startup (no)mount 气动控制文件但是不启动日志文件
    no启动实例控制文件都不打开,控制文件丢失
    关闭
    shutdown immediate理想的建议使用的 无参数的时候正常关闭
    immediate每个用户执行完才关闭
    transactional迫使每个用户执行后关闭
    abort强行关闭数据,已造成文件丢失


    oracle中的用户详解

    oracle中的用户很多,也很令初学者费解.
    oracle中的帐户分为两类:一类是必需的帐户,一类是存储各种应用的帐户

    用户名 密码 描述
    ANONYMOUS ANONYMOUS 访问http的匿名用户帐户
    CTXSYS CTXSYS  interMedia Text用户
    DBSNMP DBSNMP  目录集成平台用户
    EXFSYS EXFSYS 表达式过滤器用户
    MDDATA MDDATA  oracle空间数据帐户
    MDSYS MDSYS  oracle空间数据媒体管理员
    MGMT_VIEW MGMT_VIEW  
    OLAPSYS MANGER 用于创建olap元数据 
    ORDPLUGINS ORDPLUGINS  oracle ineterMedia,video用户
    ORDSYS ORDSYS  image管理员
    OUTLN OUTLN  拥有connect和resource角色
    SCOTT Tiger  样例帐户
    SI_INFORMATN_SCHEMA    静止图像浏览帐户
    SYS 用户指定  数据库管理帐户
    SYSMAN OEM_TEMP 企业管理器帐户
    SYSTEM 用户指定  数据库管理帐户
    WK_TEST WK_TEST  同wksys
    WKPROXY    代理帐户
    WKSYS WKSYS  同wk_test
    WMSYS WMSYS  工作空间管理帐户
    XDB CHANGE_ON_INSTALL  xml db帐户
         
         
         

    默认情况下oracle指对sys,system,dbsnmp,sysman,mgmt_view5个帐户进行了解锁,如果希望其它用户也能登录需要手工进行解锁

    show user  显示当前登录系统的用户名
    select username,account_status,expiry_date from dba_user; 查看用户状态
    alter user outln account unlock; 解锁帐户
    grant connect 帖哦outln identified by 123; 用户授权

    第二章SQLPlus
    sqlplus/nolog
    connect sys/dyf132025 as sysdba
    startup
    archive log list非归档方式
    修改在归档方式进行热备份
    数据库启动的情况下是不允许的
    只能关闭之后在启动实例,启动实例的时候打开控制文件
    但是不能打开数据文件
    启动的时候要使用
    startup mount
    在这种情况下执行
    alter database archivelog
    alter database open
    吧非归档方式改为归档方式

    ---------star
    startup nomount
    首先启动实例但是连控制文件都不打开(当我们的控制文件丢失的情况下)
    -------关闭
    shutdown immediate
    建议使用--迫使每个用户执行完当前sql语句后立即断开连接
    shutdown
    正常关闭-只有等待所有用户断开连接的时候才关闭
    shutdown transactional
    迫使每个用户在当前执行完后断开连接,终止实例
    恢复破坏的文件,数据文件不能同其他的数据库文件保持一致
    shutdown abort
    强行关闭数据库关闭实例,很可能造成破坏,例如着火什么的


    支持空格会车行------set sqlblanklines on
    语句部分分号结尾

    l
    查看缓冲区
    a 添加缓冲区的内容
    c 替换缓冲区的内容
    @执行某一个文件
    get 获取文件
    save 保存缓冲区
    edit编辑缓冲区语句

    col标签
    col deptno heading "编号"

    desc 表 查看表结构

    col dname format A10
    以字符的方式显示10个字符
    format 和 heading可以一起使用一前一后

    break on pub 重复的显示一条
    comp count label "计数" of books_name on pub ---统计工作


    保存结果集
    SPOOL  文件路径
    SPOOL OFF
    查看---edit 路径


    第三章 sql语言
    1DLL--数据定义语言
    CREATE
    ALTER
    DROP
    2DCL--数据控制语言
    GRANT
    REVOKE
    3DML--数据操纵语言
    SELECT
    INSERT
    DELETE
    UPDATE

    alter table abc drop column c;删除表的一个字段

    授权----
    crant select on dept to tt;
    授权tt可以查询dept表
    区销售权
    revoke select on dept from tt;


    ---系统函数----
    1字符
    length,ltrim,replace,rtrim,substr,trim
    1日期
    sysdate,current_ate,next_day
    3转换
    to_char,to_date,to_number
    4聚集函数
    sum,avg,max,min,count
    5其他
    user,decode,nvl

    dual,默认的表啊

    字段的行数,表的函数

    第三章2
    having

    select pub,sum(price*qty) from books group by pub having sum(price)>30;

    select * from aa;

    记录数大于一
    select * from aa group by a1 having count(a1)>1;

    模糊查询
    select * from aa where  a1 like 'a%';

    内连接,匹配字段完全相同的
    表 join 表 on 条件
    外连接---不完全匹配
    左外连接
    空值替代
    id(+)
    右连接
    条件后面放上(+) 无匹配用空值替代

    子查询

    where id IN (select id from d);
    not in

    select * from e where EXISTS (slect id from d);
    判断d表有没有结果集,有的话就吧e表全部显示出来

    not EXISTS

    合并结果集
    union 合并相同的行
    instersect 返回两个sql语句中都出现的行

    多条记录的插入
    insert into e (eid,ename) select id,name from d;

    第四章 PL/SQL的基础知识

    PL/SQL 块结构
    DECLARE
    变量的声名
    BEGIN
    具体的操作
    EXCEPTION
    异常处理部分
    END

    变量的声名
      赋予变量的适当名称
      赋予变量正确的数据类型
      定义变量(标准\记录)
      控制变量的范围
    命名规则
      变量有字符开头:数字下划线$#等
      长度1-30
      大小写不区分
      不是系统关键字
    --------------------
    分支语句
      IF THEN
      ..
      ELSIF THEN
      ..
      ELSE
      ...
      END IF
    --------------------
      CASE
      WHEN....THEN....;
      WHEN....THEN....;
      ELSE
      .......
      END CASE;

    ----------------------
    基本循环
      LOOP
      ....
      END LOOP

      -----------------
      WHILE expression LOOP
      ....
      END LOOP;

      -------------------
      FOR counter IN [REVERSE] start_value..end_value LOOP
      ....
      END LOOP;

    -----------
    异常处理
       系统异常
       自定义异常
       异常结构
          EXCEPTION
          WHEN...THEN
          ...

    系统常见异常
       DUP_VAL_ON_INDEX 向有唯一约束的表中插入重复的行
       NO_DATA_FOUND 在一个select into 语句中无返回值
       TOO_MANY_ROWS select into 语句返回了多行
       VALUE_ERROR 一个算法,转换,阶段活大小约束发生错误
       ZERO_DIVIDE 发生被零除

    ---
    自定义异常
    declare
    tname varchar2(10);
    e exception;
    begin
    select name into tname from deptment where id='01';
    if tname<>'B部门'THen
    raise e;--抛出异常
    end if;
    DBMS_OUPUT.PUT_LINE(tname);
    exception
    when e then
    DBMS.......

    ---------------------------------
    符合变量:记录

    TYPE type_name ID RECORD(
    Variable_name datatype[,
    Variable_name datatype[,
    .....
    )
    Real_name type_name;

    使用方式
     DECLARE
    TYPE myrecord IS RECORD(
    id varchar2(10),----id emp.eid%TYPE,数据类型完全一致
    name varchar2(10);
    real_record myrecord;
    begin
    select eid,ename INTO real_record from emp where emp_id='001';
    DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_record.name);
    end;
    /

    ---myrec emp%ROWTYPE 完全匹配记录,要用* 的方式查询

    第五章 plussql高级应用
    游标
        游标是一种PL/SQL控制结构;可以对sql语句的处理进行
        县式控制,便于队标的行数据逐条进行处理

        显示-隐式

        属性
            %FOUND
     %ISOPEN
     %NOTFOUND
     %ROWCOUNT


     例子:
     declare
     corsor mycur is
     select * from books;
     myrecord books%ROWTYPE;
     begin
     open mycur;
     FETCH mycur INTO myrecord;---第一条数据
     ------循环判断,去到底部
     while mycur%FOUND loop
     DBMS_OUTPUT.PUT_LINE(myrecord.books_id||''....);
            FETCH mycur INTO myrecord;
     end loop;
     CLOSE mycur;
     end;
     /
     ---------------------
     参数控制
     declare
     cursor cur_para(id varchar2) is
     select books_name from books where books_id=id;
     t_name books.booksname%type;
     begin
     open cur_para('001');
     loop
     FETCH cur_para into t_name;
     exit when cur_para%NOTFOUND;
     DBMS_OUTPUT.PUT_LINE(t_name);
     end loop;
     close cur_para;
     end;
     /
     ----------------------
     declare
     cursor cur_para(id varchar2) is
     select books_name from books where books_id=id;
     t_name books.booksname%type;
     begin
     DBMS_..........
     for cur in cur_para('0001') loop
     DBMS.............---输出
            END LOOP;----不需要open close
     end;
     /


    %ISOPEN 为打开的时候为true;否则false;

    %ROWCOUNT 返回迄今为止,从游标中取出的行数的值

    游标修改数据
      declare
      cursor cur is
      select name from deptment for update;---选项
      text varchar2(10);
      begin
      open cur;
      fetch cur into text;
      while cur%found loop
      update deptment set name =name||'_t' where current of cur;
      fetch cur into text;
      end loop;
      close cur;
      end;
      /


      ------------------------
      隐式游标
      begin
      for cur in(select name from deptment)loop
      DBMS_OUT.........
      END loop;
      end;
      /
      没有声名,打开关闭
      表中的数据很大的时候不建议使用游标
      逐条取数据
      方法很灵活,还是有必要的.
     

  • 相关阅读:
    Centos7安装teamviewer 32/64位
    Centos7安装32位库用来安装32位软件程序
    linux环境下配置mysql双主复制
    zabbix自定义触发器进行监控
    VM安装系统时提示硬件不支持(unsupported hardware detected)
    mysql新建用户在本地无法登录
    msyql开启慢查询以及分析慢查询
    zabbix怎么把英文界面换成中文
    xencenter如何安装系统
    mysql优化查询
  • 原文地址:https://www.cnblogs.com/whitetiger/p/1050231.html
Copyright © 2020-2023  润新知