• ORACLE的使用和开发


    ORACLE的使用和开发
    <1> ORACLE的使用
    启动和关闭
    工具操作ORACLE -- sql*plus
    plsql developer
    <2> SQL命令
    4大类
    DDL 数据定义语言 - 建立数据库对象
    create /alter/ drop/ truncate
    DML 数据操纵语言 - 数据的查看和维护
    select / insert /delete /update
    TCL 事务控制语言 - 数据是否保存到数据库中
    commit / rollback / savepoint
    DCL 数据控制语言 -- 查看对象的权限
    grant / revoke /如何建用户
    <3> 子查询和关联查询 *********************
    关联查询 - 3个表的关联
    select dname,ename
    from dept a, emp b
    where a.deptno = b.deptno;

    子查询 -- (1)写在where子句中
    (2) 子查询可以出现在字段的位置上
    (1) select * from emp where sal > (
    select avg(sal) from emp );
    --高于平均工资的所有员工

    (2) select * from emp a where sal > (
    select avg(sal) from emp where deptno = a.deptno);
    --高于部门平均工资的所有员工

    select dname,(select count(*) from emp
    where deptno = a.deptno) as rs
    from dept a;
    --部门名称和每个部门的人数

    <4> 如何建立数据库对象
    表 / 视图 / 序列(自动编号) / 同义词 /索引(加快查询)

    <5> 如何在ORACLE中写程序?
    PL/SQL -- PL/SQL块
    declare
    begin
    exception
    end;
    基本的语法 - 变量 , 变量的赋值(select ... into ...)
    数据类型 (变量定义要有长度) a varchar2(10);
    条件判断 if .. then
    elsif .. then
    ..
    else
    end if;
    三种循环 : while / loop / for
    游标- 多行记录的处理****
    declare
    cursor c1 is select * from dept
    order by deptno desc;
    c1rec c1%rowtype;
    begin
    for c1rec in c1 loop
    dbms_output.put_line(c1rec.dname||'-'||c1rec.loc);
    end loop;


    end;
    for循环游标 / 参数游标 /ref 游标
    存储过程 **
    函数
    程序包
    触发器
    <6> ORACLE的内部的程序包
    DBMS_OUTPUT 输出
    DBMS_JOB 定时执行任务

    <7> JAVA 访问ORACLE ***************
    jar包--- classes12.jar

    驱动程序的方式--(1)thin驱动
    url = "jdbc:oracle:thin:@localhost:1521:accp"
    (2)FAT驱动 (需要安装ORACLE客户端才能使用)
    url = "jdbc:oracle:oci8:@accp_con"
    accp_con是需要配置的一个连接字符串

    程序的编写 --JDBC(案例)


    ORACLE的数据库管理

    <1>ORACLE数据库的体系结构
    <2>ORACLE的应用程序的性能优化和调整
    <3>ORACLE数据库的备份和恢复

    <1>体系结构
    物理结构 --- 在操作系统上可以看到的数据库的文件
    逻辑结构 --- ORACLE内部来看 如何组成的
    进程的结构 --- 进程有哪些 有什么作用

    数据库的启动和关闭
    <1>用服务中的service来启动和关闭数据库

    <2>可以使用命令行来启动和关闭数据库
    a)第一次启动必须用<1>来启动的
    b)sqlplus /nolog 启动SQLPLUS不用提供用户
    c)connect / as sysdba sysdba代表了sys的权限
    / 表示登录ORACLE数据库使用操作系统的用户
    d)shutdown immediate 立即关闭
    如果有别的用户连到数据库,自动断开连接,没有提交的事务自动回滚
    c) startup 启动

    SYS用户的密码 可以通过数据库来改
    也可以通过操作系统的一个命令来改
    ORAPWD file=pwdaccp.ora password=m123 entries=1
    --把sys用户的密码改为m123
    --pwdaccp.ora pwd密码 accp数据库的名字
    重新启动ORACLE数据库后生效

    <3>用企业管理器来启动和关闭
    启动
    关闭

    ORACLE的物理文件
    <1>数据文件-----存放数据
    <2>控制文件----记录了数据库中其他文件的位置
    数据库的创建实践
    数据库的名字
    镜像 最多可以有8个
    拷贝一个控制文件 到目标磁盘改名字
    在init.ora文件中引用这个文件,重启数据库
    <3>初始化文件--- 数据库启动的时候用到的参数、位置D:oracleadminaccppfile下

    D:oracleora90accpadminpfile
    文件init.ora
    每次启动ORACLE的时候读取该文件
    调整ORACLE启动的内存????
    show SGA 察看ORACLE所占用的内存
    SGA的大小一般为物理内存的1/2
    通过修改init.ora中的参数来调整内存
    compatible=9.0.0 --版本兼容性
    db_name=accp --数据库的名字
    control_files=("D:oracleoradataaccpCONTROL01.CTL", "D:oracleoradataaccpCONTROL02.CTL", "D:oracleoradataaccpCONTROL03.CTL") --控制文件的位置

    单位:字节
    java_pool_size=33554432改为10M --jVM使用的内存
    large_pool_size=1048576 不变--恢复的内存
    shared_pool_size=33554432 改为10M --PL/SQL 游标用的内存
    db_cache_size=33554432 --数据缓冲区大小33M

    SPFILEaccp.ora服务器端的参数文件 是 二进制文件 不能直接改 通过OEM(企业管理器)来改

    如果你 想使用 init.ora来 启动 ????
    startup pfile=D:oracleadminaccppfileinit.ora

    用户 的 并发数量 150
    processes=150 支持的终端是 150 * 2=300
    游标的 支持 (PL/SQL中游标的使用数量)
    open_cursors=300
    <4>警告日志文件 -- 查看数据库运行中是否有错误的
    D:oracleadminaccpdump下 的 accpALRT.log 需要经常查看,大小会逐渐变大
    定期删除此文件,ORACLE会自动重建
    <5>重做日志文件 存放对数据库的修改信息
    (insert/delete/update语句会存在此文件中)二进制
    日志文件重用的时候是覆盖原有的内容,而原有的内容不产生备份(非归档模式)
    应把数据库改为工作在归档日志模式下(安全的)
    archive log list 查看工作模式
    archivelog 归档
    noarchivelog 非归档
    <6>归档日志文件
    用于数据库恢复

    逻辑结构--ORACLE如何构成的
    一个库
    <1>表空间
    由表空间组成的(SYSTEM表空间是必须有的,数据字典放在其下)
    create user test identified by t123;


    --在SYSTEM这个表空间,不好
    --先建立一个永久表空间
    CREATE TABLESPACE TEST
    LOGGING
    DATAFILE 'D:ORACLEORADATAACCPTEST.ora' SIZE 5M AUTOEXTEND
    ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
    -- 再建立一个临时 表空间
    CREATE
    TEMPORARY TABLESPACE MYTMP TEMPFILE
    'D:ORACLEORADATAACCPMYTMP.ora' SIZE 5M EXTENT MANAGEMENT
    LOCAL UNIFORM SIZE 1M
    --建用户
    create user test identified by t123
    default tablespace test --指定永久表空间
    temporary tablespace mytmp; --指定临时表空间
    --授权
    grant connect,resource to test;
    --连接
    connect test/t123;
    create table t(xh number(2));
    <2>段 (segment)
    表,视图 ,索引
    <3>区 (extent)
    <4>数据库块 (block)
    一般应设置为8K,数据库装好后不能改,只有重装才能改变

    --应用中 提示 表空间已满 --- 是否数据文件已满 又不能扩展????


    <例子>
    1. 如何让ORACLE数据库工作在安全的模式下??
    a) 工作在归档日志模式下,可以恢复
    b) 删除用户组ORA_DBA 和下面的用户 --登陆必须提供用户名和密码
    C)改所有默认用户的密码

    2.如果一个ORACLE数据库什么密码都不知道,怎么来找到密码???
    1) 检查connect / as sysdba是否还有效,有效
    a) select user_name from dba_users;看用户
    b) alter user scott identified by m123;
    2)检查connect / as sysdba是否还有效,无效
    a)orapwd file=pwd<数据库名字>.ora password=hello entries=1
    b) 数据库重新启动
    c) connect sys/hello as sysdba连接
    d) select user_name from dba_users;看用户
    f) alter user scott identified by m123;

    3.数据库如果出现问题,看哪个文件来找到??
    警告日志文件 alrtaccp.ora

    文件逐渐变大 定期删除这个文件
    ORACLE会自动重建






  • 相关阅读:
    在Ubuntu-20.04上安装Emacs-27.1
    VSCode 配置 C++ 与 python 编译环境
    cf 1557(div2)
    2021牛客暑期多校训练营8
    2021牛客暑期多校训练营7
    2021暑期cf加训3
    2021牛客暑期多校训练营6
    2021牛客暑期多校训练营5
    3ds Max基本操作
    renren-generator快速生成你搬砖需要的CRUD代码的框架
  • 原文地址:https://www.cnblogs.com/jinbzblogs/p/12340530.html
Copyright © 2020-2023  润新知