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子句,返回单行单列,
十一、数据更新
十二、事务处理