zoukankan      html  css  js  c++  java
  • Oracle DB

    索引

    一、安装   卸载

    一、安装

    1、Oracle首先询问用户是否接受更新信息,一般选择不接受;
    Oracle安装选项,需为其配置数据库,所以此处会询问是否创建安装数据库,选择是
    系统类型,一般选择服务器类型;
    网络安装选项,本次不牵涉Oracle的RAC管理(AIX+Oracl配置),选择单实例即可;
    安装类型,选择高级安装配置(为了能方便进行配置);
    数据库版本,选择企业版本(最全);
    安装目录选择;
    数据库名称定义为“mldn”
    配置选择中,将字符编码设置为UTF-8,若此处没有设置,出现中文时又能会乱码,随后在示例方案,创建所有样本数据;
    直到方案口令,为方面管理可将用户/密码统一设为“oracleadmin”(不符合oracle标准);
    直接到先决条件检查,如果检查出错,直接选择忽略即可;
    随后启动oracle的安装程序;
    本次会自动实现数据库的创建,但每一个数据库需我们额外配置,随后使用口令管理程序,主要操作以下用户(设置经典口令)
    ·超级管理员:sys/change_on_install;
    ·普通管理员:system/manager;
    ·普通用户:scott/tiger,需解锁;
    ·大数据用户:(样本数据库才有):sh/sh,需解锁;
    这时,oracle软件安装完成,数据库也安装完成。
    但,安装完成后oracle相关服务自动设置为自动启动,建议设为手动启动,每次启动时只需启动两个服务即可:
    ·oracleoradb11_home1TNSListener:是监听服务
    ·oracleServiceMLDN:数据库的实例服务,他的命名标准:oracleServiceSID:(默认下SID名称与数据库名称一致,网络上使用的是SID的名称,每当新增数据库时,会自动增加该服务)

    Oracle卸载,卸载后可能无法立即安装成功
    Oracle正常安装完成的卸载:
    ·使用Oracle提供的卸载程序(Universal Installer)
    ·重启电脑进入安全模式(启动时按住F8)
    ·找到系统安装oracle对应的磁盘路径,并且删除(安全模式);
    ·运行注册表命令“regedit.exe”,搜索所有与oracle有关内容并删除;
    ·重启电脑就可以重新安装;


    Oracle安装失败原因:
    ·重启电脑进入安全模式(启动时按住F8)
    ·找到系统安装oracle对应的磁盘路径,并且删除(安全模式);
    ·运行注册表命令“regedit.exe”,搜索所有与oracle有关内容并删除;
    ·重启电脑就可以重新安装;

    Oracle的两个服务:
    ·如果通过程序链接,必须启动监听服务;
    ·所有的数据都保存在实例服务之中。

    二、sqlpius命令

    1、格式化命令:
    (1)设置每行的长度:SEL LINESIZE 长度
    (2)设置每页的长度:SEL PAGESIZE 长度
    2、切换用户:
    CONN 用户名/密码 [AS SYSDBA],如果是sys用户一定要写SYSDBA

    CONN system/manager

    CONN sys/change_on_install AS SYSDBA

    3、调用本机命令:HOST作为前缀

     三、sql和数据表分析

    scott表结构

    当前用户下所有表:SELECT * FROM tab;

    查询一个表的结构:DESC 表名;

    NUMBER(7,2);表示小数最多占2位,整数部分最多5位,

    COL 列名  FOR A10;10为为列指定宽度,

    四、基本查询

    1、SELECT [DISTINCT] * | 列名称 [别名],列名称 [别名]... FROM 表名[别名];

    2、表中的常量设置:

    ①如果是字符串,则使用“'”声明,例如'hello'

    ②如果是数字,则直接编写,如10;

    ③如果是日期,则应按照日期风格格式编写“xx日-xx月-xx年”

    3、可以使用双||拼接字符串结果,

    五、限定查询

    1、关键运算符:

    ①关系运算符:>,<,>=,<=,<>,!=

    ②逻辑运算符:AND、OR、NOT

    ③范围运算符:BETWEEN。。。AND

    ④谓词范围:IN、NOT IN

    ⑤空判断:IS NULL,IS NOT NULL   NOT IN 不能和NULL同时出现,

    ⑥模糊查询:LIKE  

    “_”匹配一个字符,“%”匹配任意个字符,

    0&NULL:卖0元和无价是不同的概念,

    六、序列

    1、Order BY

    ③SELECT *

    ①FROM T

    ②WHERE 过滤条件

    ④ORDER BY  字段【ASC|DESC】,字段【ASC|DESC】,字段【ASC|DESC】,

    七、单行函数

    dual是验证查询的虚拟表,

    1、字符串函数

    UPPER(),LOWER(),INITCAP(),LENGTH(),SUBSTR(),REPALCE(),

    2、数值函数,

    ROUND(列|数字【,小数位】),TRUNC(列|数字【,小数位】),MOD(列|数字,列|数字),

    3、日期函数

    SYSTEMDATE,ADD_MONTHS(列|日期),MONTHS_BETWEEN(列|日期,列|日期),LAST_DAY(列|日期),NEXT_DAY(列|日期)

    4、转换函数

    TO_CHAR(列|日期|数字,格式),

    数字,9表示任意数字:,L表示本地货币符号,

    TO_DATE(列|字符串,转换格式),TO_MEMBER(列|字符串,)

    5、通用函数,

    数字  NVL(列|NULL,默认值)

    数值类型  DECODE(列|字符串|数值, 比较内容1,显示内容1,比较内容2,显示内容2,...【默认显示内容】)

    八、多表查询

    基本结构

    ③SELECT [DISTINCT] *|列 [别名],*|列 [别名]...

    ①FROM T [别名],T [别名]...

    ②WHERE 过滤条件(s)

    ④ORDER BY  字段【ASC|DESC】,字段【ASC|DESC】,字段【ASC|DESC】,

    1、基本查询   分步骤实现

    2、表的连接

    ①内连接(等值连接):所有满足条件的数据都会被显示出来, 

    只有符合WHEREW子句条件的才会显示出来,

    ②外连接(左外连接, 右外连接,全外连接):控制左表与右表的数据是否全部显示出来,

    3、SQL1999

    SELECT [DISTINCT] * | 列 [别名]

    FROM 表名称1

                          [CROSS JOIN 表名称2]

                          [NATURAL JOIN 表名称2]

                          [JOIN 表名称 ON(条件) |  USING(字段)]

                          [LEFT | RIGHT | FULL OUTER JOIN 表名称2];

    交叉连接:实现笛卡尔积

    自然连接:自动通过关联字段消除笛卡尔积,一般关联字段是外键,但此处是以名称相同为主,内连接,

    USING子句只在一张表有多个关联字段情况下,明确使用一个字段关联,

    ON子句用来设置关联条件,

    数据集合操作

    UNION,连接,重复数据只显示一次,

    UNION ALL,显示重复数据,

    INTERSECT,返回交集部分,

    MINUS,返回差集,第一个集合减第二个集合,

    九、分组统计查询

    1、统计函数

    COUNT(),MAX(),MIN(),SUM(),AVG(),

    2、分组 GROUP BY

    ①在未使用GROUP BY时,查询子句中只允许统计函数和查询字段中的一种,

    ②在使用GROUP BY子句时,查询子句中只允许出现分组字段和统计函数,

    ③统计函数允许嵌套查询,但嵌套后的统计查询中不允许再使用任何字段,

    【⑤确定要使用的数据列】SELECT[DISTINCT]分组字段[别名],...|统计函数

    【①确定要查找的数据源】FROM

    [【②针对于数据行的筛选】WHERE过滤条件]

    [【③针对于数据实现分组】GROUP BY 分组字段,分组字段,...]

    [【④针对于分组后的数据进行筛选】HAVING分组后的过滤条件]

    [【⑥针对于返回结果进行排序】ORDER BY 字段[ASC|DESC],...];

    【WHERE&HAVING】

    -WHERE发生GROUP BY之前,用于从数据源筛选数据,不允许使用统计函数,

    -HAVING是发生在分组之后,用于对分组结果进一步筛选,可以使用统计函数,

     十、子查询

    1、可能的位置

    ①WHERE子句,返回单行单列,单行多列,多行单列,

    ②HAVING子句,返回单行单列,表示要使用统计函数,

    ③FROM子句,返回多行多列,

    ④SELECT子句,返回单行单列,

    十一、数据更新

    十二、事务处理

  • 相关阅读:
    【css】容器撑满浏览器--- height:100%
    【实践】js六道有趣的题
    【Canvas】树冠
    asp.net上传Excel文件到服务端进行读取
    HttpContext.Current多线程调用
    abstract修饰符,具体类与抽象类的区别
    如何快速恢复MyEclipse的默认主题
    日历源代码
    for语句应用:乘法表
    Java的优先级
  • 原文地址:https://www.cnblogs.com/1394htw/p/9534186.html
Copyright © 2011-2022 走看看