2019-06-17


 数据库的使用

什么是数据库

所谓的数据库其实就是数据的集合。用户可以对集合中的数据进行新增、查询、更新、删除等操作。 数据库是以一定方式储存在一起、 能与多个用户共享、 具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

为什么要用数据库

为了完善系统文件:安全性问题,不利于查询和对数据的管理,利于存放海量数据,在程序中控制不方便的问题,创造了数据库。

数据库作用:

数据库:高效的存储和处理数据的介质(介质主要是两种:磁盘和内存)。

数据库是以数据结构的形式组织数据的,数据库是用户层面的,是由用户后来去实现的。而文件系统则是内核层面的,是操作系统自带的。(不知道我有没有说清楚)这是这两个的不同。我们可以通过结构化查询语言,即SQL语句,去操纵数据,进行一些我们想要的改变。

数据库类型:关系型(Oracle,Mysql,PostgreSQL,DB2,Microsoft SQL Server,Microsoft SQL Server,Microsoft Access)和非关系型(Redis,Mongodb,Big Table)

关系型数据库与非关系型数据之间的区别

关系型数据库:特点:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。支持事务一致特性。

优点:1.易于维护:都是使用表结构,格式一致;

2.使用方便:SQL 语言通用;

3.复杂操作:支持 SQL,可用于一个表以及多个表之间非常复杂的查询;

缺点:

1.性能差:读写性能比较差,尤其是海量数据的高效率读写,传统关系型数据库来说,硬

盘 I/O 是一个很大的瓶颈;

2.存储方式不灵活:固定的表结构,灵活度稍欠;

非关系型数据库 :特点:非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。不支持事务一致特性。

优点

1.格式灵活:存储数据的格式可以是 key,value 形式、文档形式、图片形式等等;

2.高扩展性:基于键值对,数据没有耦合性,容易扩展;

3.速度快:无需经过 sql 层的解析,读写性能很高;

缺点

1.不支持 SQL:不提供 sql 支持,学习和使用成本较高;

2.不支持事务:无事务处理能力;

3.不支持复杂查询:数据结构相对复杂,复杂查询方面稍欠、

Oracle的使用:

Oracle 数据库其实就是一组文件的集合。Oracle 数据库分别由:数据文件、控制文件、日志文件所构成。

数据文件(.DBF)

数据文件是一个二进制文件,是用于保存用户应用程序数据和 Oracle 系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件。Oracle 在创建表空间的同时会创建据文件。

控制文件(.CTL)

控制文件是一个二进制文件,它主要记录数据库的名称、数据库的数据文件存放位置等息。一个控制文件只能属于一个数据库。如果控制文件丢失,这数据库就无法操作。

日志文件(.LOG)

日志文件在 Oracle 数据库中分为重做日志(Redo Log File)文件和归档日志文件两种。重日志文件是 Oracle 数据库正常运行不可缺少的文件。重做日志文件主要记录了数据库操过程。用于备份和还原数据库,以达到数据库的最新状态。

什么是Oracle实例

实例就是数据库启动后分配的内存和建立的后台进程. 数据库关闭后,物理上的文件还存在,但实例(分配的内存和建立的进程)就没有了

3Oracle实例与数据库的关系

实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。

Oracle版本说明

Oracle 8i  Oracle 9i  :代表 Internet。8i 版本开启对 Internet 的支持。所以,在版本号之后,添加了标识 i。

Oracle 10g  Oracle 11g:代表 Grid 网格。10g 加入了网格计算的功能,因此版本号之后的标识使用了字母g。

Oracle 12c:代表云(cloud)计算设计。12c版本表示对云计算的支持

Oracle的安装与卸载

安装较简单不说明

Oracle卸载步骤

1停止使用Oracle的服务

2运行卸载Oracle数据库

3删除使用Oracle的服务

4删除注册表中Oracle相关项

5删除Oracle环境变量

6删除“开始”菜单中 Oracle目录

7.重新启动计算机

8.删除ProgramFiles\Oracle目录

9删除Oracle安装目录

Oracle目录结构与系统用户

admin目录

记录 Oracle 实例的配置,运行日志等文件。每个实例一个目录。SID:System IDentifier 的缩写,是 Oracle 实例的唯一标记。在 Oracle 中一个实例只能操作一个数据库。如果安装多个库那么就会有多个实例,我们可以通过实例 SID 来区分。由于Oracle中一个实例只能操作一个数据库的原因oracle中也会使用SID来作为库的名称。

cfgtoollogs目录

下面子目录分别存放当运行 dbca,emca,netca 等图形化配置程序时的 log。

checkpoints目录

存放检查点文

diag目录

Oracle11g新添加的一个重组目录。其中的子目录,基本上 Oracle 每个组件都有了自己

单独的目录,在 Oracle10g中我们一直诟病的 log 文件散放在四处的问题终于得到解决,无

论是 asm 还是 crs 还是 rdbms,所有组件需要被用来诊断的 log 文件都存放在了这个新的目

录下。

flash_recovery_area(闪回区)目录

闪回区:分配一个特定的目录位置来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。闪回区可存储完全的数据文件备份、增量备份、数据文件副本、当前的控制文件、备份的控制文件、spfile 文件、快照控制文件、联机日志文件、归档日志、块跟踪文件、闪回日志。

oradata目录

存放数据文件。

数据库中的文件介绍

1.CONTROL01.CTL

Oracle 数据库的控制文件。

 EXAMPLE01.DBF

Oracle 数据库表空间文件。

 REDO01.LOG

Oracle 数据库的重做日志文件。

 SYSAUX01.DBF

11g新增加的表空间。 主要存储除数据字典以外的其他数据对象。 由系统内部自动维护。

SYSTEM01.DBF

用于存放 Oracle 系统内部表和数据字典的数据。比如,表名、列名、用户名等。

TEMP01.DBF

临时表空间文件。

 UNDOTBS01.DBF

撤销表空间文件。用来保存回滚数据。

USERS01.DBF

用户表空间。

product目录

Oracle RDBMS 的软件存放目录。RDBMS 即关系数据库管理系统(Relational DatabaseManagement System)

sys用户:sys 是 Oracle 中的超级账户,拥有的权限最大。可以完成数据库的所有管理任务。system用户

system:没有 sys 权限大,通常用来创建一些用户查看管理信息的表或视图。不建议使用 system 用户来创建一些与管理无关的表或者视图。

二者在登录时的区别

sys 和 system 在登录 Oracle 时, sys 只能以系统管理员 (sysdba) 或系统操作员 (sysoper)的权限登录,而 system 可以直接登录(normal)。

scott用户

scott:是 oracle提供的示例用户,提供了一些学习 oracle 操作的数据表。如:emp、dept、salgrade、bonus 表

Oracle启动

Oracle 是通过系统的服务来启动的。

1.1OracleServiceORCL(必须启动)

OracleServiceORCL:数据库服务(数据库实例),是 Oracle 核心服务该服务是数据库启动的基础,只有该服务启动,Oracle 数据库才能正常启动。

OracleOraDb11g_home1TNSListener(必须启动)

OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候

或者使用 PL/SQL Developer 等第三方工具时才需要。

Oracle ORCL VSSWriter Service(非必须启动)

Oracle ORCL VSS Writer Service:Oracle 卷映射拷贝写入服务,VSS(Volume Shadow CopyService)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝shadow copy)。 它可以在多卷或者单个卷上创建映射拷贝, 同时不会影响到系统的系统能。

OracleDBConsoleorcl(非必须启动)

OracleDBConsoleorcl:Oracle 数据库控制台服务,orcl 是 Oracle 的实例标识,默认的实例为 orcl。在运行 Enterprise Manager(企业管理器 OEM)的时候,需要启动这个服务。

OracleJobSchedulerORCL(非必须启动)

OracleJobSchedulerORCL:Oracle 作业调度(定时器)服务,ORCL 是 Oracle 实例标识。

OracleMTSRecoveryService(非必须启动)

OracleMTSRecoveryService:服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。、

Oracle关闭

关闭 Oracle 只需要将服务停止即可。

Oracle客户端工具介绍

Oracle自带客户端工具SQL Plus


输入sys 用户登录命令: sys as sysdba|sysoper

system 用户登录命令:system

Oracle第三方工具PL/SQL Develope

 常用命令窗口1.CommandWindow:

2.SqlWindow

Oracle的表空间:

永久表空间

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。

临时表空间

Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。 临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间。

创建永久表空间命令

create tablespace 永久表空间名称 datafile '永久表空间物理文件位置' size 15M autoextend on next 10M permanent online;

创建用户

通过PL/SQL Developer工具创建用户


分配用户权限:

对象权限(Object privileges)

对象权限是指在指定的表,视图,序列上制定执行动作的权限或权利。

角色权限(Role privileges)

角色是可以授予用户的相关权限的组,该方法使权限的授予,撤回更加容易管理。

系统权限(Systemprivileges)

为用户分配创建表、创建用户、创建视图、创建存储过程等权限。

分配链接权限


分配系统权限


分配无限制权限:


Oracle的链接配置

文件位置

Oracle 目录\product\11.2.0\dbhome_1\NETWORK\ADMIN

sqlnet.ora

名称解析。通过这个文件来决定怎么样找一个连接中出现的连接字符串。

如:sqlplus bjsxt/oracle@orcl

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

用在 oracle client 端,用户配置连接数据库的别名参数,就像系统中的 hosts 文件一样。

listener.ora

用在 oracle server 端,可配置 Oracle 的监听端口

Net Configuration Assistant 工具

配置如下:

Oracle中的数据类型:

1.字符类型

字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种。

CHAR类型

CHAR 类型,定长字符串,会用空格填充来达到其最大长度。非 NULL 的 CHAR(12)总是包含 12 字节信息。CHAR 字段最多可以存储 2,000字节的信息。如果创建表时,不指定 CHAR 长度,则默认为 1。

VARCHAR2类型

可变长字符串,与 CHAR 类型不同,它不会使用空格填充至最大长度。VARCHAR2 最多可以存储 4,000字节的信息。

NVARCHAR2 类型

这是一个包含 UNICODE 格式数据的可变长字符串。 NVARCHAR2 最多可以存储 4,000字节的信息。

2数字类型

NUMBER类型

NUMBER(P,S)是最常见的数字类型。P 是 Precision 的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过 38个有效数字。S是 Scale 的英文缩写,表示小数点数字的位数。

INTEGER类型

INTEGER 是 NUMBER 的子类型,它等同于 NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

3浮点数

BINARY_FLOAT类型BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少 6 位精度,每个BINARY_FLOAT 的值需要 5 个字节,包括长度字节。

BINARY_DOUBLE

BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE的值需要 9 个字节,包括长度字节。

4日期类型

DATE类型DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息, 但是日期数据类型具有特殊关联的属性。 为每个日期值, Oracle存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用 7 个字节的存储空间。

TIMESTAMP类型

这是一个 7字节或 12 字节的定宽日期/时间数据类型。它与 DATE 数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的 TIMESTAMP 在小数点右边最多可以保留 9 位。

TIMESTAMPWITH TIME ZONE 类型

这是 TIMESTAMP 类型的变种,它包含了时区偏移量的值。

TIMESTAMPWITH LOCAL TIME ZONE 类型

将时间数据以数据库时区进行规范化后进行存储

5LOB类型

CLOB 类型(Character Large Object)

二进制数据,存储单字节和多字节字符数据。最大长度 4G。

BLOB类型(Binary Large Object)

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。最大长度 4G。

NCLOB 数据类型

存储 UNICODE 类型的数据 ,最大长度 4G。

LONG & RAW& LONG RAW类型

6.LONG类型

它存储变长字符串(超长字符串),最多达 2G 的字符数据(2GB 是指 2千兆字节, 而不是 2 千兆字符)。

LONG RAW 类型

能存储 2GB 的原始二进制数据,可存放多媒体图象声音等。

RAW类型

用于存储二进制或字符类型数据,必须制定长度。这种数据类型存储的数据不会发生字符集转换。可存放多媒体图象声音等。

在Oracle中创建表

Oracle表名命名规则

必须以字母开头

长度不能超过 30个字符

避免使用 Oracle 的关键字

只能使用 A-Z、a-z、0-9、_#$

使用带有特殊符号的表名Oracle 在创建表时,表名会自动转换大写。Oracle 对表名大小写不敏感。如果在定义表名时含有特殊符号, 或者用小写字母来定义表名则需要在表名两侧添加双引号。

数据库中的约束

约束的作用

约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。

约束类型

主键约束(Primay Key Constraint)

唯一性,非空性。

唯一约束 (Unique Constraint)

唯一性,可以空,但只能有一个。

检查约束 (Check Constraint)

对该列数据的范围、格式的限制(如:年龄、性别等)。

非空约束 (Not Null Constraint)

该列不允许包含空值。

外键约束 (Foreign Key Constraint)

需要建立两表间的关系并引用主表的列。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容