Oracle的简单使用

数据库介绍

数据库的作用:数据持久化

分类:
关系型数据库

  • Mysql(用的最多)
  • Oracle(最安全,权限管理很严格)
  • Sql server(.net)

非关系型数据库

  • Hbase
  • Redis
  • mongodb

Oracle介绍

一、数据库版本
Oracle9i:是之前使用最广泛版本
Oracle11g:现在主要使用的版本
二、用户

1) sys 超级管理员 bjmsb
2) system 普通管理员 bjmsb
3) scott 普通的用户 tiger

Oracle安装

oracle的安装.docx

安装好后,Win+r:services.msc 进入服务中,在里面能看到相关信息,安装好后,会多出很多Oracle相关的服务。一般有7个,少了肯定有问题,卸载重装。
有一些服务是没有必要开启的,可以关闭几个保证开机速度。所有服务的属性都改成手动,只启动ListenerOracleServiceORCL

Oracle服务

成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:

  1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务。(非必须启动)
  2. OracleDBConsoleorcl:Oracle数据库控制台服务。(非必须启动)
  3. OracleJobSchedulerORCL:Oracle作业调度(定时器)服务。(非必须启动)
  4. OracleMTSRecoveryService:服务端控制。(非必须启动)
  5. OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。(非必须启动)
  6. OracleOraDb11g_home1TNSListener::监听器服务,服务只有在数据库需要远程访问的时候才需要。(必须启动
  7. OracleServiceORCL:数据库服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
  8. (可能存在)OracleRemExecService :暂时被使用。reboot之后会自动消失

注:ORCL是数据库实例名,默认的数据库是ORCL,你可以创建其他的,即OracleService+数据库名

第一次连接

第一种方式:
在Windows中找到oracle文件夹,里面有一个SQL Plus,是Oracle中自带的客户端命令行工具

输入用户名:scott
输入口令:bjmsb
Error:the account is locked

安装好之后是不能直接访问的,如果在安装过程中,口令管理不选择SCOTT锁定账户,可以访问。

第二种方式

  1. 在cmd中,输入:sqlplus /nolog 意思是不登录,只是进入到SQL Plus命令行里面
  2. 连接。 输入:conn scott/tiger@orcl
    会报Error:the account is locked,和第一种效果一样。
    【tiger是密码,无所谓】

推荐使用第二种方式。
我们使用的时候必须要进行一个解锁操作
先用管理员进行登录,解锁我们对应的账户。

  1. conn 用户/口令@数据库实例名 as sysdba; 告诉别人我是一个dba(databaseadminister,数据库管理员)的身份。
    1
    2
    SQL> conn sys/bjmsb@orcl as sysdba;
    已连接。
    可以进行用户查看:
    1
    2
    SQL> show user;
    USER 为 "SYS"
  2. alter user scott account unlock; 解锁用户。
    1
    2
    3
    SQL> alter user scott account unlock;

    用户已更改。
  3. 先退出
    1
    SQL> quit
  4. 再输入:sqlplus /nolog进入命令行
  5. 更改口令为tiger。输入conn scott/tiger@orcl;
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SQL> conn scott/tiger@orcl;
    ERROR:
    ORA-28001: the password has expired

    更改 scott 的口令
    新口令:tiger
    重新键入新口令:
    口令已更改
    已连接。

之后的连接

  1. cmd中,输入sqlplus /nolog
  2. SQL命令行中输入conn scott/tiger@orcl;

数据库查看表

本身自带四张表。BONUS,DEPT,EMP,SALGRANE
查表:

1
2
3
4
5
6
7
8
SQL> select * from tab;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE

查表中数据:SQL> select * from emp;,数据看的太丑了,可以更改数据格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SQL> set pagesize 50;  // 每页行可以显示多少个字符,随便写
SQL> set linesize 200; // 每行可以显示多少个字符
SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10

已选择14行。

而管理员不能随意查询表数据。SQL> select * from emp;会失败,想要查看,可以采用SQL> select * from scott.emp;,说明这个表归属于哪个用户,才能查到信息。

上面的操作成功意味着Oracle安装完成

创建数据库

详细见创建新的数据库.docx

  1. 在Windows的Oracle-OraDb11g_home1中,选择Database Configuration Assistant

  2. 弹窗选择:创建数据库 –> 一般用途或事务处理 –> 全局数据库名随便设置(msb)–> 所有账户使用同一口令(让操作简单,bjmsb)–> 完成。【未提出的均默认下一步】

    数据库和数据仓库
    公司大项目,不可能只用一个数据库,可能用MySQL,也有可能用Oracle等。有一天想要把这些数据做一个集中处理,可以按照一个统一规则,把各种数据源的数据整合到数据仓库里面。
    数据库属于联机事务处理OLTP(on-line transaction processing,),主要用于捕获数据;数据仓库属于联机分析处理OLAP,主要用于分析数据。数据仓库还可以实现时间拉链表,数据仓库会帮我们保留各个历史时间的数据。

  3. 检测
    cmd中,输入sqlplus /nolog
    SQL命令行中输入conn scott/tiger@msb;,成功连接,用select * from tab;语句会发现依然保留着那四张表,依然能进行查表操作。
    说明创建库成功。

  4. 在服务中,将OracleJobSchedulerMSB属性改为手动

常用命令

a) sqlplus

  1. sqlplus /nolog
  2. conn scott/tiger@orcl
  3. show user
  4. set linesize 150
  5. set pagesize 20
  6. passw
  7. conn sys/abc123456@orcl as sysdba
  8. select * from emp where ename=’&ename’

b) alter user scott account unlock
统一密码:tiger

集成开发环境进行Oracle连接

1、新建连接
在这里插入图片描述

如果远程连接失败,可能有两个原因:
方式1
工具–>选项–>OCL library需要选择一个后缀叫oci.dll的文件,然后把这个文件修改一下。

具体操作:把Oracle安装目录D:\oracle\product\11.2.0\dbhome_1\bin\oci.dll(根据你的实际安装目录)下的oci.dll文件替换Navicat安装目录D:\Program Files (x86)\Navicat Premium 12\instantclient_11_2\oci.dll(根据你的实际安装目录)下的oci.dll就可以了。

方式2

  1. 使用PLSQL Developer这个集成开发环境。
    plsqldev11_chs.zip里面提供了需要的软件。

PLSQL Developer

安装好后点开,先不要选Login,然后进入页面后,选择Help里面的Register。辅助使用keygen工具,输入对应的三个值。
2. 点击session,点击Log on,重新进行填写。用户名scott,密码tiger(自己设置),Database选ORCL,connect asnormal即可。登录成功。

报错
电脑重启第二次点开PLSQL的时候,报错ORA-12541: TNS: 无监听程序。或者报错监听程序当前无法识别连接描述符中请求的错误
首先确保以下成功:
点开服务(services.msc),开启对应的两个服务。

【可以cmd中连接数据库,再到PLSQL进行log on进行检验】

如果依旧失败,尝试下面操作,对listener重新配置。
Net Configuration Assistant -> 重新配置 -> Listener ->..
如果点不动重新配置,就删除listener.ora,然后点击添加,一路默认下一步即可。

重新配置不熟,还有一种方便的方法:

  1. 把配置好的配置文件里面的listener.ora,sqlnet.ora,tnsnames.ora,把相应的路径名称换成自己的。然后拷贝到D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN中。
  2. sqlnet.oraMSB=……msb改为自己创建的库名

如果依旧失败,把listener.ora,tnsnames.ora的HOST换位IP地址(我的是192.168.12.1),然后重启启动上面两个服务即可。

PLSQL简单操作

点击查表
1、拉伸开下面部分,找到Table,里面就是对应的表
在这里插入图片描述
在这里插入图片描述
2、比如要查EMP表,就右击EMP,选择Query data,就可以查出表。上面也可以写相应的SQL语句。

命令行查表
File->new,最好选择command window。里面就是sqlplus的样式。也可以选择sql window,输入语句后需要选中然后点击执行,效果相同。执行键如下:
在这里插入图片描述

下面explain plan window,会告诉你执行计划,包括执行你写的sql语句所需要的时间等。

查看表信息
右击相应表(比如EMP),选择edit
Comments是注释的意思。可以用comment on table emp is '雇员表';sql语句添加注释

PLSQL 注意事项

在SQL Window中执行命令时,底下的框有多大,查询出来的结果显示就有几行(会提示没显示完全…more)。所以要保证足够大,以免漏了数据。
在这里插入图片描述
在这里插入图片描述
解决:可以点击图中向下的绿色箭头fetch last page(alt+end+fn)获取全部记录,或者fetch next page(alt+PgDn+fn)获取部分记录。

PLSQL的代码优化

使用beautifier,让代码看起来更简洁易懂。
在这里插入图片描述
在这里插入图片描述