Oracle教程-01
Posted 程序缘之家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle教程-01相关的知识,希望对你有一定的参考价值。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种;
不同的数据库是按不同的数据结构来联系和组织的。
将反映和实现数据联系的方法称为数据模型。
层次结构模型实质上是一种有根结点的定向有序树,按照层次模型建立的数据库系统称为层次模型数据库系统;
按照网状数据结构建立的数据库系统称为网状数据库系统;
关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式),由关系数据结构组成的数据库系统被称为关系数据库系统。
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据。数据库管理系统是数据库系统的核心,是管理数据库的软件。
数据库的概念
1, 起源,发展,现状
1977年,Oracle 诞生了,它是使用汇编语言开发的,但它的出现并没有引起太多的关注
1982年,Oracle公司推出了Oracle 3,这是第一个能够运行在大型和小型机上的关系型数据库
1997年,Oracle公司又推出了基于Java语言的Oracle 8
2001年6月,Oracle公司发布了Oracle 9i
2007年7月12日,Oracle公司推出Oracle 11g,Oracle 11g中的“g”代表“网格”
Oracle数据库系统主要包含以下4个特点
支持大数据库、多用户、高性能的事务处理
数据安全性和完整性方面性能优越
网格计算
具有可移植性、可兼容性
2, 数据库的类型 :
1,关系型数据库 oracle数据库 mysql SQLServer DB2,SyBase。
如何选择数据库:
3,数据库开发语言:
DCL,DML,DDL,DQL,TCL
数据定义(Data Definition Language,DDL)
用于创建、修改和删除数据库对象,如CREATE TABLE、ALTER TABLE、DROP TABLE等。DDL语句会自动提交事务
数据操纵语言(Data Manipulation Language,DML)
用于操纵数据库,包括INSERT、UPDATE、DELETE、SELECT等
数据控制语言(Data Control Language,DCL)
用于执行授予权限和撤销权限的操作,包括GRANT(授予权限)、REVOKE(撤销权限)两条命令。DCL语句会自动提交事务
事务控制语言(Transactional Control Language,TCL)
用于维护数据的一致性,包括COMMIT(提交事务)、ROLLBACK(回滚事务)和SAVEPOINT(设置保存点)3条语句
oracle数据的安装和配置
1,服务器端
解锁scott账号密码tiger
sys用户 超级管理员权限最高他的角色DBA
system用户系统管理员 角色dbaoper
sys和system比较
sys具有create database权限,而system没有 其他功能类似,在日常对oracle管理过程中
使用system就够了
Oracle 11g数据库的组成
Oracle的整体架构:
上图示;
一般Oracle数据库管理系统由:实例和数据库两部分组成。
1、数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);
Oracle数据库由操作系统文件组成,这些文件也称为数据库文件,为数据库信息提供实际物理存储区。
Oracle数据库包括逻辑结构和物理结构。数据库的物理结构包含数据库中的一组操作系统文件。
数据库的逻辑结构是指数据库创建之后形成的逻辑概念之间的关系,如表、视图、索引等对象。
2、实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。
Oracle可以创建多个oracle数据库,一个oracle数据库将又由实例和数据库构成。如默认安装时创建的orcl数据库外还可再创建其它数据库。创建的数据库将在$oracleHome/oradata/数据库名 目录下以一个个的*.DBF文件体现出来。
oracle 数据库后台服务的介绍
xxxListener
xxxService
OracleServiceOrcl 数据库服务
创建一个数据库就会有一个数据库名称的服务,
Oracle 11g数据库服务
Oracle * VSS Writer Service -- Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
OracleDBConsole* -- Oracle数据库控制台服务;在运行Enterprise Manager(企业管理器EM)的时候,需要启动这个服务;此服务被默认设置为自动开机启动的(非必须启动)
OracleJobScheduler* -- Oracle作业调度服务。此服务被默认设置为禁用状态(非必须启动)
OracleMTSRecoveryService -- 服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。恢复、闪回需要开启该服务(非必须启动)
OracleOraDb11g_home1ClrAgent -- Oracle数据库.NET扩展服务的一部分。 (非必须启动)
OracleOraDb11g_home1TNSListener -- 监听器服务,服务只有在数据库需要远程访问或使用SQL Developer等工具的时候才需要,此服务被默认的设置为开机启动(非必须启动)
OracleService* -- 数据库服务,是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常操作。此服务被默认的设置为开机启动。(必须启动)
2,客户端:
命令行: sqlplus,
图形:sqldeveploper,pl/sql devploper
SQL Plus 设置与常用命令
显示设置
-- 设置每行显示的最长字符数
set linesize 120
-- 设置一页显示的行数
set pagesize 20
-- 设置是否显示一页的记录数
set feedback on/off
-- 打开或取消oracle自带的输出方法dbms_output,并输出内容
set serveroutput on/off
-- 格式化列的内容:将列名对应的列的值格式化为四位数值长度
col 表中对应的列名 for 9999
column 表中对应的列名 format 9999
【示例】
-- 表明将empno列名对应的列值格式为4位长度的数值型
col empno for 9999
-- 格式化列的内容:将列名对应的列的值格式化为10位字母长度
col 表中对应的列名 for a10
【示例】
-- 表明将ename列名对应的列值格式为10位长度的字符型
col ename for a10
常用命令
命令 |
说明 |
show all |
查看系统所有变量值 |
show user |
显示当前连接用户 |
show error |
显示错误 |
desc 表名 |
显示表的结构;如:desc emp |
/* */ -- |
多行注释 单行注释 |
/ |
执行缓冲区中的语句 |
ed |
打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑(如果提示没有afiedt.buf请使用管理员身份打开SLQ Plus);常用于语句比较长需要修改时。 |
spool off |
假脱机命令;将命令行的内容(从设置后开始的命令行内容)记录到文本。添加append的意思是在原有的文本内容上追加后续的命令行的内容;需要注意的是所有的这些内容都将在spool off之后才记录。如: spool d:\itcast\itcast.txt spool d:\itcast\test.sql append spool off |
clear screen 或者 host cls |
清屏 |
exit |
退出SQL Plus |
1,链接数据库
超级管理员(sys)登录 链接后面必须加上as sysdba
用户名:sys as sysdba;
密码;xxx
普通用户: conn 用户名/密码;
2,显示当前用户 show user;
3, 修改用户名的密码
alter user 用户名 identified by 新密码;
如果账号已经锁定:
alter user 用户名identified by 密码 account unlock;
4,接触用户锁定
1)不登陆方式启动。
在命令控制符窗口中键入sqlplus /nolog
2) 使用connect命令以sysdba身份连接数据库
connect / as sysdba
3) 如果要锁定帐户
alter user username account lock
4) 对应的,解锁帐号
alter user username account unlock
5,创建表空间
create tablespace 表空间名称 datafile ‘表空间文件路径’ size 64M autoextend on next 扩展大小 maxsize 最大大小;
不指定maxsize,则不限制
解释oracle数据库和其他数据库表空间的概念
6,创建用户
create user 用户名 identified by 密码 default tablespace 表空间名称;
7,用户授权
一般新用户赋予权限 connect, create any view (创建视图),resource
grant connect,resource to 用户名; --表示把 connect,resource权限授予指定用户
grant dba to 用户名; --表示把 dba权限授予给news用户
收回权限:
revoke [<权限> | <角色>] from<用户>;
8,数据库:导出 导入
导出
–Exp 用户名/密码@数据库实例 file=D:\文件名.dmp full=y
–用户模式:
–Exp 用户名/密码@orcl file=D:\文件名.dmp owner=用户名
–表导出:
– exp 用户名/密码@数据库实例 file=D:\文件名.dmp tables=(表1,表2)
导入
–imp 用户名/密码@数据库实例 file=D:\文件名.dmp full=y ignore=y
–用户模式:
–imp 用户名/密码@orcl file=D:\文件名.dmp fromuser=用户名 touser=用户名
–表导入:
– imp 用户名/密码@数据库实例 file=D:\文件名.dmp owner=用户名 tables=(表1,表2)
图形化客户端配置
PL/SQL Deveploper
配置oracle环境变量
•ORACLE_HOME----D:\app\Administrator\product\11.2.0\dbhome_1
•TNS_ADMIN-----D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
–NLS_LANG-----SIMPLIFIED CHINESE_CHINA.ZHS16GBK
PL/SQL客户端配置
数据库的设计
以网络购物商城为例
实体; 客观存在并可相互区别的事物
实体可以是具体的人、事、物,如一名学生、一门课程等;也可以是抽象的概念或联系,如一次选课、一场竞赛等。
属性(Attribute):实体所具有的一组特征或性质。
域(Domain):属性的取值范围。
键(Key):唯一标识实体的属性集称为键或关键字。工号就是职工实体的键。
实体间的关系
一对一联系 人和身份证
一对多联系 员工和公司,出版社和图书
多对多联系 学生和课程,订单和商品
E-R图-->数据库关系模型
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
ER图中有如下四个成分:
矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,在框中记入联系名。
椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
作图步骤
(1)确定所有的实体集合;
(2)选择实体集应包含的属性;
(3)确定实体集之间的联系;
(4)确定实体集的关键字,用下划线在属性上表明关键字的属性组合;
(5)确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明是1或n(多)来表示联系的类型
软件PowerDesigner设计数据库
使用PD设计E-R模型
关系模型生成数据库sql语句:
–配置所需生成数据库DBMS。
•此处选择oracle11g。
•操作步骤为:PowerDesigner→Database(数据库)→Change Current DBMS(改变当前DBMS),选择oracle11g 。
–由物理模型生成数据库。
•操作步骤为:PowerDesigner→Database(数据库)→Generate Database(生成数据库),即生成oracle数据库表结构的创建代码。
以上是关于Oracle教程-01的主要内容,如果未能解决你的问题,请参考以下文章
Linux服务器搭建Oracle 12c数据库 详细安装教程
实战篇:Oracle 配置透明网关访问 MySQL 详细教程
实战篇:Oracle 配置透明网关访问 MySQL 详细教程