数据库介绍
数据库的作用:数据持久化
分类:
关系型数据库
- Mysql(用的最多)
- Oracle(最安全,权限管理很严格)
- Sql server(.net)
非关系型数据库
- Hbase
- Redis
- mongodb
Oracle介绍
一、数据库版本
Oracle9i:是之前使用最广泛版本
Oracle11g:现在主要使用的版本
二、用户
1) sys 超级管理员 bjmsb
2) system 普通管理员 bjmsb
3) scott 普通的用户 tiger
Oracle安装
安装好后,Win+r:services.msc
进入服务中,在里面能看到相关信息,安装好后,会多出很多Oracle相关的服务。一般有7个,少了肯定有问题,卸载重装。
有一些服务是没有必要开启的,可以关闭几个保证开机速度。所有服务的属性都改成手动
,只启动Listener
和OracleServiceORCL
。
Oracle服务
成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:
- Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务。(非必须启动)
- OracleDBConsoleorcl:Oracle数据库控制台服务。(非必须启动)
- OracleJobSchedulerORCL:Oracle作业调度(定时器)服务。(非必须启动)
- OracleMTSRecoveryService:服务端控制。(非必须启动)
- OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。(非必须启动)
OracleOraDb11g_home1TNSListener
::监听器服务,服务只有在数据库需要远程访问的时候才需要。(必须启动)OracleServiceORCL
:数据库服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)- (可能存在)OracleRemExecService :暂时被使用。reboot之后会自动消失
注:ORCL是数据库实例名,默认的数据库是ORCL,你可以创建其他的,即OracleService+数据库名
第一次连接
第一种方式:
在Windows中找到oracle文件夹,里面有一个SQL Plus
,是Oracle中自带的客户端命令行工具
输入用户名:scott
输入口令:bjmsb
Error:the account is locked
安装好之后是不能直接访问的,如果在安装过程中,口令管理不选择SCOTT锁定账户,可以访问。
第二种方式:
- 在cmd中,输入:
sqlplus /nolog
意思是不登录,只是进入到SQL Plus命令行里面 - 连接。 输入:
conn scott/tiger@orcl
会报Error:the account is locked
,和第一种效果一样。
【tiger是密码,无所谓】
推荐使用第二种方式。
我们使用的时候必须要进行一个解锁操作:
先用管理员进行登录,解锁我们对应的账户。
conn 用户/口令@数据库实例名 as sysdba;
告诉别人我是一个dba(databaseadminister,数据库管理员)的身份。可以进行用户查看:1
2SQL> conn sys/bjmsb@orcl as sysdba;
已连接。1
2SQL> show user;
USER 为 "SYS"alter user scott account unlock;
解锁用户。1
2
3SQL> alter user scott account unlock;
用户已更改。- 先退出
1
SQL> quit
- 再输入:
sqlplus /nolog
进入命令行 - 更改口令为
tiger
。输入conn scott/tiger@orcl;
1
2
3
4
5
6
7
8
9SQL> conn scott/tiger@orcl;
ERROR:
ORA-28001: the password has expired
更改 scott 的口令
新口令:tiger
重新键入新口令:
口令已更改
已连接。
之后的连接
- cmd中,输入
sqlplus /nolog
- SQL命令行中输入
conn scott/tiger@orcl;
数据库查看表
本身自带四张表。BONUS,DEPT,EMP,SALGRANE
查表:
1 | SQL> select * from tab; |
查表中数据:SQL> select * from emp;
,数据看的太丑了,可以更改数据格式:
1 | SQL> set pagesize 50; // 每页行可以显示多少个字符,随便写 |
而管理员不能随意查询表数据。SQL> select * from emp;
会失败,想要查看,可以采用SQL> select * from scott.emp;
,说明这个表归属于哪个用户,才能查到信息。
上面的操作成功意味着Oracle安装完成。
创建数据库
详细见创建新的数据库.docx
在Windows的Oracle-OraDb11g_home1中,选择
Database Configuration Assistant
弹窗选择:创建数据库 –> 一般用途或事务处理 –> 全局数据库名随便设置(msb)–> 所有账户使用同一口令(让操作简单,bjmsb)–> 完成。【未提出的均默认下一步】
数据库和数据仓库
公司大项目,不可能只用一个数据库,可能用MySQL,也有可能用Oracle等。有一天想要把这些数据做一个集中处理,可以按照一个统一规则,把各种数据源的数据整合到数据仓库里面。
数据库属于联机事务处理OLTP
(on-line transaction processing,),主要用于捕获数据;数据仓库属于联机分析处理OLAP
,主要用于分析数据。数据仓库还可以实现时间拉链表
,数据仓库会帮我们保留各个历史时间的数据。检测
cmd中,输入sqlplus /nolog
SQL命令行中输入conn scott/tiger@msb;
,成功连接,用select * from tab;
语句会发现依然保留着那四张表,依然能进行查表操作。
说明创建库成功。在服务中,将
OracleJobSchedulerMSB
属性改为手动
常用命令
a) sqlplus
- sqlplus /nolog
- conn scott/tiger@orcl
- show user
- set linesize 150
- set pagesize 20
- passw
- conn sys/abc123456@orcl as sysdba
- select * from emp where ename=’&ename’
b) alter user scott account unlock
统一密码:tiger
集成开发环境进行Oracle连接
Navicat
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
- 使用
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
,然后点击添加,一路默认下一步即可。
重新配置不熟,还有一种方便的方法:
- 把配置好的
配置文件
里面的listener.ora
,sqlnet.ora
,tnsnames.ora
,把相应的路径名称换成自己的。然后拷贝到D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
中。 - 把
sqlnet.ora
中MSB=……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,让代码看起来更简洁易懂。