美文网首页
SSH框架知识点

SSH框架知识点

作者: 寻找灯下黑 | 来源:发表于2019-08-19 17:30 被阅读0次

    Oracle数据库的主要特点
    支持多用户,大事务量的事务处理。
    在保持数据安全性和完整性方面性能优越。
    支持分布式数据处理,组成一个逻辑上统一的数据库。
    具有可移植性,Oracle可以在windows,linux等多个操作系统平台上使用,SQL Server只能在windows上运行。

    Oracle基本概念
    1 它是磁盘上存储数据的集合,在物理上表现为数据文件,日志文件和控制文件,在逻辑上以表空间形式存在。
    2 使用时,必须首先创建数据库,然后才能使用Oracle,可以在安装Oracle软件的同时创建数据库,也可以在安装后单独创建数据库。
    3 全局数据库名是用于区分一个数据库的标识,在安装数据库,创建新数据库,创建控制文件,修改数据库结构,利用rman备份是都需要使用。
    4 数据库实例就是通过内存共享运行状态的一组服务器后台进程。
    5 一个表空间可以由多个数据文件组成,但一个数据文件只能属于一个表空间,与数据文件这种物理结构相比,表空间属于数据库的逻辑结构。
    6 数据文件的扩展名是.dbf,是用于存储数据库数据的文件。
    7 控制文件的扩展名是.ctl,是一个二进制文件,控制文件中存储的信息很多,包括数据文件和日志文件的名称和位置,控制文件是数据库启动及运行所必须的文件,当Oracle读写数据时,要根据控制文件的信息查找数据文件。
    8 日志文件的扩展名是.log,它记录了数据的所有更改信息,并提供了一种数据恢复机制,日志文件是成组使用的,每个日志文件组可以有一个或多个日志文件,在工作过程中,多个日志文件组之间循环使用,当一个日志文件组写满后,会转向下一个日志文件组。
    9 模式是数据库对象的集合,Oracle会为每一个数据库用户创建一个模式,此模式为当前用户所拥有和用户具有相同的名称。

    Oracle常用的三个服务
    OracleServiceSID服务是Oracle数据库服务,此服务是对应名为SID(系统标识符)的数据库实例创建的,其中SID是安装Oracle 11G时输入的数据库名称,该服务默认是自启动的。
    OracleOraDb11g_home1TNSListener服务是监听服务,监听器监听并接收来自客户端应用程序的连接请求,该服务只有在数据库需要远程访问的时候才需要。
    OracleDBConsoleSID服务是数据库控制台服务,EMC(企业管理控制台)的服务程序(SID随安装的数据库而不同)是采用浏览器方式打开的,用于使用Oracle企业管理器的程序。

    课后经验
    如果数据库安装在本地,并且使用自带的SQLPlus进行访问,只需要启动OracleServiceSID服务即可,并且使用SQLPlus连接时不能使用"@"。
    这种连接被视为本地连接,Oracle中存在一个默认的数据库服务名,本地连接会自动连接该默认的数据库服务。
    如果进入基于Web形式的企业管理(EM)控制平台,则必须要启动OracleDBConsoleSID服务。

    更新会话
    alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

    LOB数据类型
    CLOB 能够存储大量字符数据。该数据类型可以存储单字节字符数据和多字节字符数据,主要用于存储非结构化的XML文档。
    BLOB 可以存储较大的二进制对象。
    BFILE 能够将二进制文件存储在数据库外部的操作系统文件中,存储一个定位器,指向位于服务器文件系统上的二进制文件,支持的文件最大为4GB。
    NCLOB 数据类型用于存储大的NCHAR字符数据,同时支持固定宽度字符和可变宽度字符。大字符对象的大小不大于4GB。

    伪列ROWID用途
    能以最快的方式访问表中的一行
    能显示表的行是如何存储的
    可以作为表中行的唯一标识
    示例:使用select语句查看ROWID值
    select ROWID,ename from scott.emp where ename='smith';

    伪列ROWNUM用途
    示例:select emp.*,ROWNUM from scott.emp where ROWNUM<11;

    SQL语言简介
    DDL(数据定义语言):create,alter,truncate(截断),drop命令
    DML(数据操纵语言):insert,select,delete,update命令
    TCL(事务控制语言):commit,savepoint(保存点),rollback命令
    DCL(数据控制语言):grant(授予),revoke(回收)命令

    创建表示例
    create table 表名称(
    stuNo char(6) not null,
    stuName varchar2(20) not null
    );

    不重复显示
    select DISTINCT stuname from stuInfo;

    逻辑运算符
    用于组合多个比较运算符的结果以生成一个或真或假的结果,逻辑运算符包括and(与),or(或),not(非)。

    集合运算符
    UNION(并集) 返回两个查询选定的所有不重复的行。
    UNION ALL(并集ALL) 合并两个查询选定的所有行,包括重复的行。
    INTERSECT(交集) 返回两个查询都有的行。
    MINUS(减集) 返回由第一个查询选定而未被第二个查询选定的行。

    转换函数
    TO_CHAR 转换成字符串类型。
    TO_DATE 转换成日期格式。
    TO_NUMBER 转换成数值类型。
    示例:
    1 select TO_CHAR(SYSDATE,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS');
    2 select TO_DATE('2013-07-13','yyyy-mm-dd') from dual;
    3 select sqrt(TO_NUMBER('100')) from dual;

    分析函数
    ROW_NUMBER 返回一个唯一的值,当遇到相同的数据时,排名安装记录集中记录的顺序依次递增。
    DENSE_RANK 返回一个唯一的值,遇到相同的数据时,所有相同数据的排名都是一样的。
    RANK 返回一个唯一的值,所有相同数据排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。
    示例
    select ename,deptno,sal,
    RANK() OVER (PARTITION BY deptno ORDER BY sal DESC),
    ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC),
    DENSE_RANK () OVER (PARTITION BY deptno ORDER BY sal DESC)
    from employee;

    表空间分类
    永久性表空间 一般保存表,视图,过程和索引等的数据,SYSTEM,SYSAUX,USERS,EXAMPLE表空间是默认安装的。
    临时表空间 只用于保存系统中短期活动的数据。
    撤销表空间 用来帮助回退未提交的事务数据,已提交了的数据在这里是不可以恢复的。

    表空间的目的
    对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户数据的操作,对模式对象的管理。
    可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高I/O性能,有利于备份和恢复数据等。

    创建表空间
    create tablespace 表名
    datafile 'D:\oracle\worktbs.dbf'
    size 10M autoextend on;

    删除表空间
    drop tablespace 表名;

    自定义用户管理
    1 SYS用户是Oracle中的一个超级用户,所有数据字典和视图都存储在SYS模式,主要用来维护系统信息和管理实例,SYS用户只能以SYSOPER或SYSDBA角色登录系统。
    2 System是Oracle中默认的系统管理员,他拥有DBA权限,不建议在System模式中创建用户表,System用户不能以SYSOPER和SYSDBA角色登录系统,只能以默认方式登录。
    3 scott用户是一个示范用户,一般在数据库安装的时候创建。

    创建用户
    create user user
    identified by password
    default tablespace table 默认表空间
    temporart tablespace table 临时表空间

    删除用户
    drop user table caseade; 使用caseade选项删除用户和用户模式对象。

    系统预定义角色
    1 connect 需要连接上数据库的用户,特别是那些不需要创建表的用户,通常授予该角色。
    2 resource 更为可靠和正式的数据库用户可以授权该角色,可以创建表,触发器,过程等。
    3 DBA 数据库管理员角色,拥有管理数据库的最高权限,一个具有DBA角色的用户可以撤销任何其他用户甚至其他DBA权限。

    授权语法
    grant connect,resource TO table;

    撤销语法
    revoke connect,resource TO table;

    允许用户查看emp表中的记录
    grant select on scott.emp TO table;

    创建序列
    create sequence 表
    start with 10 第一个序列号
    increment by 10 每次增长的间隔
    maxvalue 2000 生成的最大值
    nocycle; 序列在达到最大值,将不能再继续生成值

    访问序列
    nextval 创建序列后第一次使用NEXTVAL时,将返回该序列的初始值,以后再引用nextval时,将使用increment by 子句来增加序列值,并返回这个新值。
    currval 返回序列的当前值,即最后一次引用nextval时返回的值。

    插入数据
    insert into table(toyid)values(seq.nextval,'twenty',25);

    删除序列
    drop sequence 序列;

    同义词用途
    1 简化SQL语句
    2 隐藏对象的名称和所有者
    3 为分布式数据库的远程对象提供了位置透明性
    4 提供对对象的公共访问

    私有同义词
    当前模式下创建私有同义词,用户必须拥有create synonym系统权限,
    要在其他用户模式下创建私有同义词,用户必须拥有create any synonym系统权限。
    语法:
    create or replace 替换该同义词 synonym 名称 for 创建同义词对象的名称;

    删除同义词
    drop synonym 名称;

    索引分类
    1 分区索引 单列或组合索引
    2 B树索引 唯一或非唯一索引
    3 正常或反向键索引 基于函数索引
    4 位图索引
    语法:
    唯一索引:create unique index 名称 on 表(列);
    反向键索引:create index 名称 on 表名(列) reverse;
    位图索引:create bitmap index 名称 on 表(列);
    大写函数索引:create index 名称 on 表(upper(列));
    重建索引:alter index 名称 rebuild noreverse;

    注:何时删除索引
    1 应用程序不在需要索引。
    2 执行批量加载前,大量加载数据前删除索引,加载后再重建索引有以下好处:提高加载性能,更有效的使用索引空间。
    3 索引已坏。
    何时重建索引
    1 用户表被移动到新的表空间后,表上的索引不是自动转移,此时需将索引移到指定表空间。
    2 索引中包含很多已删除的项,对表进行频繁删除,造成索引空间浪费,可以重建索引。
    3 需将现有的正常索引转换成反向键索引。

    分区表
    create table table
    (
    字段 数据类型
    )
    partition by range(日期字段)
    (
    partition p1 values less than (to_date('2013-04-1','yyyy-mm-dd')),
    partition p5 values less than(maxvalue)
    );
    查看第一季度的数据
    select * from table partition(p1);

    PL/SQL是结合了Oracle过程语言和结构化查询语言是一种扩展语言。
    主要功能
    1.PL/SQL具有编程语言的特点
    2.可以采用过程性语言控制程序的结构
    3.对程序中的错误进行自动处理
    4.具有更好的可移植性
    5.减少网络的交互,提高程序的性能

    把原表的数据类型赋予他
    declare
    v_empno employee.empno%TYPE:=7788;
    v_rec employee%ROWTYPE;
    Begin
    select *into v_rec from emp where
    empno=v_empno;
    DBMS_output.put_line(打印输出);
    end;

    条件控制
    if<布尔表达式>then
    SQL语句
    end if;

    case语句语法
    case 条件表达式
    when 表达式结果 then
    语句段 1

    end case;

    Loop循环
    Loop
    执行语句
    Exit when 条件语句
    End Loop;

    for循环计数器 in 下限 上限 Loop
    执行语句;
    End Loop;

    while循环
    while 表达式 Loop
    执行语句
    end Loop;

    重新定义异常错误信息
    raise_Application_error(编号,文本)
    编号长度必须是20999到20000之间
    消息长度可达2048字节

    游标类型:静态 动态
    游标
    cursor 游标名称 return 行类型
    is 查询语句

    打开游标
    open 名称;

    提前游标
    fetch 名称 into 变量名;

    关闭游标
    close 名称

    使用显示游标删除更新
    cursor 名称 is select * for update
    for update 为更新查询,锁定选择行

    Hibernate框架
    Gavin King是Hibernate的创始人,EJB3.0专家委员会成员,JBoss核心成员之一。

    Hibernate 优点
    1.功能强大
    2.支持许多面向对象的特性
    3.可移植性强
    4.Hibernate框架开源免费

    瞬时状态转为持久状态
    使用session的saveorupdate()保存对象后,该对象的状态为持久。
    get(),load()获取对象,为持久对象

    持久状态转为瞬时状态
    执行session的delete()方法后,由原来的持久转为瞬时

    游离转为持久状态
    执行session的update(),游离转为持久

    游离转为瞬时状态
    执行session的delete()方法,游离转为瞬时

    数组对象返回一个信息
    Object[] obj=(Object[])session.createQuery(hql).uniqueResult();//返回一条信息

    连接类型
    内连接 inner join或 join
    迫切内连接 inner join fetch或join fetch
    左外连接 left outer join或left join
    迫切左外连接 left outer join fetch或left join fetch
    右外连接 right outer join 或right join
    示例:from Dept inner join Dept.emps(内连接)

    Struts2标签库
    <%@taglib prefix="s" uri="/struts-tags"%>

    相关文章

      网友评论

          本文标题:SSH框架知识点

          本文链接:https://www.haomeiwen.com/subject/jhchdctx.html