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子句,返回单行单列,

十一、数据更新

十二、事务处理

原文地址:https://www.cnblogs.com/1394htw/p/9534186.html