1 数据库相关概念

1.1 数据

数据是描述事物的符号,它有多种表现形式:文本,图形,音频,视频。计算机处理数据的基本单位是字节。

1.2 数据库(Database, 简称DB)

同粮库,车库类似,数据库是计算机中存储和管理数据的仓库,可被用户共享。

1.3 数据库管理系统(Database Management System)

数据库管理系统(DBMS)是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。

常用的数据库管理系统有:Oracle, MySQL, SQL Server ,DB2,Access等

1.4 数据库应用系统(Database Application System)

数据库应用系统(DBAS)是在数据库管理系统基础上,使用数据库管理系统的语法,开发的直接面向最终用户的应用程序。例如:学生管理系统、人事管理系统、图书管理系统,京东商城等

1.5 数据库管理员(Database Administrator)

数据库管理员即数据库管理系统的操作者,简称DBA

1.6 最终用户

数据库应用程序的使用者称为最终用户

1.7 数据库系统( Database System, DBS)

数据库+数据库管理系统+数据库应用程序+数据库管理员+最终用户

1.8 数据库发展阶段

-- 1.网状数据库

-- 2.层次数据库

-- 3.关系型数据库

采用关系(二维表)结构储存与管理数据;采用结构化查询语言(SQL)作为客户端程序与数据库服务器间沟通的桥梁,关系型数据库是目前主流的数据库技术

-- 4.面向对象数据库

把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致

-- 5.NOSQL数据库

Not Only SQL数据库,泛指非关系型数据库。如MongoDB

关系型数据库在超大规模和高并发的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。NoSQL数据库的产生就是为了解决大规模数据及多重数据种类带来的挑战,尤其是大数据应用难题。

2 认识Oracle

2.1 Oracle(甲骨文)公司

发展历程:

1,1977年,三个人在硅谷合伙创办名为软件开发实验室(Software Developement Laboratories,SDL)的计算机公司(ORACLE公司的前身)

2,1979年,更名为Relational Software Inc. RSI

3,1983年,为实出核心产品,RSI更名为Oracle

4,2002年04月26日,启用“甲骨文”作为中文注册商标

5,2009年4月20日,甲骨文公司收购SUN公司

6,2013年,甲骨文超越IBM,成为继Microsoft之后全球第二大软件公司

7,2014年10月01日甲骨文公司创始人拉里·埃里森,以500亿美元排名第三。

2.2 Oracle数据库管理系统

Oracle数据库管理系统是Oracle公司的核心产品 ,目前最流行的数据库管理系统。我们通常说的Oracle数据库就是指Oracle数据库管理系统。

主要版本:Oracle8i/9i(internet)、Oracle10g/11g(grid)

2013年6月26日,Oracle Database 12c(cloud)版本正式发布

3.Oracle安装,连接测试

3.1 Oracle安装

Oracle安装的注意事项如下:

-- 1.计算机硬件要求

主要是内存容量,建议8G及以上内存

-- 2.计算机软件要求

32位操作系统不要安装64位Oracle,注意操作系统和Oracle版本要匹配

-- 3.安装路径

Oracle会自动选择剩余空间最大的硬盘作为Oracle安装根路径,因此在安装时如果插上了移动硬盘则可能会把移动硬盘当成根路径,此时一定要修改成本地硬盘路径,并且路径上不要使用中文和特殊字符。例如:D:\app\lujun\Administrator

-- 4.其它注意事项

为了保证Oracle安装顺利进行,建议断网,关掉其他软件,关掉防火墙和杀毒软件

接下来按照安装向导,一步步安装即可,具体可参考“oracle11g安装教程.doc”

3.2 两个概念

A. 全局数据库名

唯一标识Oracle数据库的名称

B. 数据库实例名SID

实例名是和操作系统交互,Oracle数据库的一个引用。每个启动的数据库都对应一个数据库实例,由这个实例来访问和控制数据库

以上两个名称通常相同(orcl)

3.3 Oracle服务

Windows下,安装Oracle 11g后生成多个服务。通过选择“控制面板”→“管理工具”→“服务”,打开“服务”窗口,可以看到Oracle的服务。如果要访问Oracle

数据库,需要开启监听器服务和实例服务

OracleService<SID>:数据库实例服务

OracleOraDb11g_hom1TNSListener :数据库监听服务

OracleDBConsoles<SID>:企业管理器服务

3.4 Oracle连接测试

连接Oracle数据库管理系统(Oracle服务器)的方式有两种:

3.4.1 使用”SQL Plus”来连接

选择开始菜单里的”Oracle11g”--->”应用程序开发”--->”SQL Plus”来连接

3.4.2 安装第三方客户端PLSQL Developer,用PLSQL Developer来连接

3.4.3常见错误

错误1:ORA-12541: TNS: 无监听程序

出现这个错误,请到服务窗口中启动“OracleOraDb11g_hom1TNSListener ”

错误2:ORA-12560: TNS: 协议适配器错误

出现这个错误,请到服务窗口中启动“OracleServiceORCL”

大家要牢记连接Oracle服务器必需启动上面的两个服务

错误3:Ora-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

正常情况下一般只要服务启动,客户端连接数据库没有什么问题,但是有时重复启动服务也会出现ORA-12514错误,此时过一段时间再去连接数据库就OK了,如果确认两个服务都已启动成功,但还是报ORA-12514错误,那就需要考虑监听实例名,具体

操作:

打开D:\app\lujun\product\11.2.0\dbhome_1\NETWORK\ADMIN下的文件listener.ora,在listener.ora中增加如下内容:

(SID_DESC =

(GLOBAL_DBNAME = ORCL)

(ORACLE_HOME = D:\app\lujun\product\11.2.0\dbhome_1)

(SID_NAME = ORCL)

)

再保存listener.ora文件,关闭并重新启动服务,问题解决!

注意:ORACLE_HOME是安装oracle服务器产品的基目录,一直写到dbhome_1路径

3.5 卸载Oracle

1.停止Oracle所有服务

2.通过开始菜单下Oracle中选项执行自动卸载

Oracle安装产品---Universal Installer

3.删除Oracle安照主目录 ,如D:\app

4.删除C盘下Oracle工作目录

C:\Program Files (x86)\Oracle

5.删除注册表中Oracle相关项

运行窗口中运行regedit,进入注册表编辑窗口

具体删除内容到网上查询

6.最好也删除以下内容

删除内容C:\Users\用户名\Oracle

删除开始菜单Oracle组和图标

删除环境变量中path中Oracle相关项

4 Oracle目录

\app\administator\product\11.2.0\dbhome_1\jdbc\lib:

该目录存放JDBC访问Oracle的驱动jar包

\app\administator\product\11.2.0\dbhome_1\NETWORK\ADMIN:

listener.ora和tnsnames.ora,配置监听器和本地网络服务名

\app\administator\product\11.2.0\dbhome_1\jdk:

存放Oracle自带的JDK

\app\administator\product\11.2.0\dbhome_1\deinstall:

执行其中的deinstall.bat进行第一步卸载操作

\app\administator\product\11.2.0\dbhome_1\install:

其中有oracle常用访问的端口列表

\app\administator\oradata\orcl:

存放指定数据库实例下的数据文件,控制文件和日志文件

5 Oracle系统用户

5.1 SYS和SYSTEM用户

SYS和SYSTEM用户都是Oracle 的系统用户,它们都使用SYSTEM表空间,SYS拥有更大的权限。SYS是Oracle的超级管理员,SYSTEM是oracle默认的系统管理员。我们平时用system来管理数据库就可以了。这个用户的权限对于普通的数据库管理来说已经足够了。

5.2 SCOTT用户

Scott是oracle的测试账户,练习账户

5.3 SCOTT解锁

如果在安装Oracle服务器软件时,忘记给Scott解锁了,可按照如下步骤去解锁:

1.先用System登录,创建一个SQL窗口,输入如下命令:

alter user  scott  account unlock;// 解锁

2. 执行命令”alter user scott identified by 新密码”给scott修改密码

接下来就可以用scott来登录oracle服务器了

6 配置监听器和本地网络服务名(掌握)

Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接

服务器端配置监听器,客户端配置本地网络服务名(包括四个连接参数)

在安装Oracle服务器软件时自动配置了一个监听器,并且自动创建了和数据库实例名相同的本地网络服务名

  listener.oratnsnames.ora分别用来存储监听器和本地网络服务名的信息

服务器端要使用监听器对客户端的访问进行监听,listener.ora监听器配置内容:

客户端配置本地网络服务名,tnsnames.ora网络服务名配置:

注意:网络服务名包含4个参数,分别是:

1. 访问协议-----TCP

2. 服务器IP地址 ------localhost

3. 服务器监听端口------1521

4. 服务器端的哪个数据库实例-------orcl

一般来说,安装好oracle服务器软件后不需要配置监听器和网络服务名,特殊情况下,如果被电脑上其它软件破坏了默认的配置信息,则可以使用Oracle中的

Net Configuration  Assistant或 Net Manager工具来配置监听器和网络服务名

7 Oracle主要技能点

7.1交互式操作:SQL语句

  • 数据库表   table
  • 索引 index
  • 视图 view
  • 序列 sequence
  • 同义词 synonym
  • 表空间 tablespace
  • 存储过程 procedure
  • 函数 function
  • 触发器 trigger
  • 包  package

7.2批处理操作:PL/SQL编程

7.3 其他内容

事务 、安全、 备份和恢复 、系统优化

7.4 SQL语言

常用的SQL语言有如下三类

  • DQL(数据查询语言)  select
  • DML(数据操作语言)insert、update、delete
  • DDL(数据定义语言)create、alter、drop

注意:数据操作语言针对表中的数据,而数据定义语言针对数据库对象(表、索引、视图、触发器、存储过程、函数、表空间等)。最基本的是DQL和DML,内容最多最复杂的是DQL

8 SQL语言基础(掌握)

先睹为快:

--  查询数据

select * from emp;

select * from emp order by sal desc ;

--  插入数据

insert into student (id,name,age) values(2,'lkl',45);

--  修改数据

update student set score=88 where id=2;

--  删除数据

delete from student where id=2;

--  创建用户

CREATE USER bjsxt IDENTIFIED BY bjsxt;

--  授予用户权限

GRANT  connect,resource TO bjsxt;

8.1 什么是SQL语言

结构化查询语言(Structured Query Language)(发音?es kju??)

SQL是最重要的关系数据库操作语言,是所有关系数据库管理系统的标准语言

许多数据库厂商在使用SQL的同时,都对SQL进行了扩展,比如ORACLE的PL/SQL语言,MS SQL-Server的T-SQL语言

SQL语言是一种非过程化语言,只需要提出”做什么”,而不需要指明“怎么做”

8.2 SQL可以做什么

  • 数据库数据的增删改查操作(CRUD)
  • 数据库对象的创建,修改和删除操作
  • 用户权限/角色的授予和取消
  • 事务控制

8.3 SQL语言分类

SQL语言共分为五大类,分别如下:

1)     DQL(数据查询语言)   select

2)     DML(数据操作语言)insert、update、delete

3)     DDL(数据定义语言)create、alter、drop

4)     DCL(数据控制语言)grant、revoke

5)     TCL(事务控制语言)  ROLLBACK、SET TRANSACTION ,COMMIT

数据操作语言针对表中的数据,而数据定义语言针对数据库对象(表、索引、视图、触发器、存储过程、函数、表空间等)

8.4 练习表介绍

Oracle数据库安装成功后,scott用户共有4张表:

以后我们就把这4张表作为练习表,分别如下:

  1. Dept 部门表
  2. Emp 员工表
  3. Salgrade 工资等级表
  4. Bonus 奖金表

以上每个表的表结构如下:

表和表之间的关系:员工属于某个部门,emp表引用dept表

8.5 关系型数据库的基本概念

  1. 关系:整个行和列的二维表
  2. 关系名:表格名称
  3. 元组:表的一行数据,又叫一条记录
  4. 属性:表的列,又叫字段
  5. 主键:唯一确定一行的字段(关键字段)
  6. 域:属性的取值范围

8.6 Select单表查询

8.6.1 最简单的单表查询

语法:select 字段1,字段2,字段3...  from 表

特殊:如果要查询表的所有字段,则用*代替,例如:

Select *  from emp;   //查员工的全部信息

select empno, ename,sal  from emp;   //只查员工编号,姓名和月薪

8.6.2使用算术表达式

在Select语句中,对数值型数据可以使用算术运算符创建表达式,例如:

select empno, ename, sal, sal*12 from emp;

select empno, ename, sal, sal*12 +5000 from emp;

8.6.3 使用字段别名

可以为字段取个别名,方便更直观的显示查询结果,增强可读性。

给字段取别名的语法:字段  [as]  别名,as可省略。例如:

select empno as 员工编号, ename 员工姓名,sal 月薪, sal*12 年薪 from emp;

注意:别名如果含有空格或其他特殊字符或大小写敏感,需用双引号引起来。

AS可以省略 ,例如:

select empno as 员工编号, ename 员工姓名,sal 月薪, sal*12  "Total Salary" from emp;

select empno as 员工编号, ename 员工姓名,sal 月薪, sal*12 +5000  "全年收入(年薪加年终奖)" from emp;

8.6.4 连接运算符

连接运算符‘||’可以把列与字符、或其它表达式连接在一起,得到一个新的字符串,实现‘合成’列的功能。例如:

select ename||' is a '|| job from emp;

select empno, ename||' ''s total salary is '||sal*12 from emp;

8.6.5 去除重复行

缺省情况下,查询结果中包含所有符合条件的记录行,包括重复行。例如:

select deptno from emp;

使用DISTINCT关键字可从查询结果中清除重复行。例如:

select distinct deptno from emp;

select distinct  job from emp;  //查询所有的职位

注意:DISTINCT的作用范围是后面所有字段的组合

select, distinct deptno job from emp;

8.6.6 order by子句

使用order by 子句对查询结果进行排序

排序方式包括升序(asc,缺省)和降序(desc)两种:

select empno, ename, sal from emp order by sal;

select empno, ename, sal from emp order by sal desc ;

  按多个字段排序:

select  deptno, empno, ename, sal from emp order by deptno, sal

  使用字段别名排序:

select empno, ename, sal*12 totalSal from emp order by totalSal

Oracle总结一的更多相关文章

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  3. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  4. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  7. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  8. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  9. 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

    概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...

  10. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

随机推荐

  1. google guava Multimap的学习介绍

    1.https://blog.csdn.net/gongxinju/article/details/53634434

  2. DevExpress--TreeList节点添加图片

    这个过程相对来说比较简单,网上也有不少资料,但是自己在做过之后为了记住,算是给自己写一个博客吧. 下面直接上具体的流程 1.前提 控件使用的都是DevExpress和winform的原生控件两种: 2 ...

  3. springboot学习笔记-thymeleaf

    Thymeleaf的介绍 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下三个极吸引人的特点: ...

  4. javascript知识整理之this

    js中的this是一个头疼的问题,尤其对于笔者这种初级的菜鸟来讲,下面梳理下this的知识,可以当做是初级进阶也好入门也罢,总归输出的才是自己掌握的: Js中this不是由词法作用域决定的 而是调用时 ...

  5. C3P0连接池、DBCP连接池

    C3P0连接池: 配置文件:c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c ...

  6. mybatis-plus代码生成器

    public class MyBatisPlusGenerator { public static void main(String[] args) throws SQLException { //1 ...

  7. Linux - 结合正则表达式使用grep命令

    Grep with Regular Expression grep命令基本用法 grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名参数说明: ...

  8. Python函数学习——作用域与嵌套函数

    全局与局部变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数. 当全局变量与局部变量同名时,在定义局部变量的函数内 ...

  9. 异步与并行~CancellationTokenSource对线程的作用

    返回目录 说起CancellationTokenSource我们应该不会陌生,对于Thread,Task来说,我们启动一个线程去做一些事,如果希望它在某个阶段去被动的停止,可以使用这个Cancella ...

  10. 自动化测试 | UI Automator 入门指南

    自动化测试的定义,这里先引用一段维基百科的定义: 在软件测试中,测试自动化(英语:Test automation)是一种测试方法,使用特定的软件,去控制测试流程,并比较实际的结果与预期结果之间的差异. ...