一、什么是数据库?
   数据库(Database---DB)按照组织、储存和管理数据的仓库。(理解以下三个概念)
     数据(Data)用来描述事物的记录都可称数据,如文字音乐图像。
     数据库系统(DateBase Sydtem,DBS )由硬件(储存设备)和软件(操作系统和应用程序)组成。
    数据储存结构:数据库服务器(数据管理程序)管理多个数据库(每个数据库对应一个应用程序),每个数据库中会穿件多个表(用来存储和描述数据的逻辑结构),记录实体数据。
 
二、Oracle数据库的结构和数据类型
    Oracle数据库是一种大型的分布式数据库系统。
      oracle会默认创建如下账户:
        SYS用户:oracle数据库的超级用户,主要用来维护系统信息和管理实例。数据库中所有的数据字典表和数据都存储在SYS模式中。
          SYSTEM用户:默认的系统管理用户,拥有DBA权限,管理Oracle数据库的用户、权限和存储。
        SCOTT用户:一般为普通用户。
 
      oracle数据库服务器的结构体系:主要由数据库和实例(INSTANCE)组成。
 
        实例:指数据库服务器的内存以及相关后台程序-----也称为Oracle数据库引擎。
            Oracle数据库的内存结构分为:系统全局区 和  程序全局区          
             系统全局区:System Global Area,SGA。
                 是Oracle数据库存放系统信息的一块内存区域。
                 是Oracle数据库为一个数据库实例分配的一组共享内存缓冲池,多个进程可以同时对SGA中的数据进行访问和相互通信。
              SGA有三个关键部件:
               数据高速缓冲区:存放着oracle数据库系统最近使用过的数据库数据块,用户进程查看的数据必须首先驻留在数据高速缓冲区。
               共享池:所有用户程序都存放在共享池,也是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。
               重做日志缓冲区:用于缓存在对数据进行修改的操作过程中生成的重做记录。
             程序全局区:Program Global Area,PGA 。用户进程私有的内存区域,不能共享。
                 包含的单个进程或的单个后台进程的数据和控制信息,有进程会话变量即内部数组等。
 
            进程结构:一般分为用户进程、服务器进程、后台进程
              用户进程:在客户端负责将用户的SQL语句传递给服务器进程,并从客户端取回查询数据。
              服务器进程:由Oracle数据库系统创建,用来处理用户进程提出的请求,根据请求进行实际操作,将操作结果返回给用户进程。
              后台进程:
                 数据库写入进程(DBWR):管理数据缓冲区和字段缓冲区的内容,分批将修改后的数据块写回数据库系统。可以拥有多个该进程。
                 日志写入进程(LGWR):用于将联机重做日志缓存区的内容写到联机重做日志文件中,唯一一个读写日志文件进程
                 系统监控进程(SMON):检查数据库的一致性,在数据库系统启动时执行恢复性工作的强制进程,对有故障的CPU或实例进行恢复。
                 进程监控进程(PMON):用于恢复失败的数据库用户的强制性进程。
                 归档进程(ARCM):在数据库设置为归档日志模式下,在每次日志切换时,把已满的日志组进行备份或归档。
                 检查点进程(CKPT):确保缓冲区内的内容隔一定时间对数据文件进行一次更新。否则数据库发生毁损时,只能从日志文件的记录中还原。 
 
        数据库的作用是保存数据。其存储结构分为逻辑存储结构和物理存储结构。
 
            物理存储结构:描述oracle数据库外部及其所处的操作系统环境中使用何种文件组织和管理数据的方式。
               oracle物理文件主要分为三种:数据文件、控制文件、重做日志文件。
            数据文件:存储数据库中的数据,一个数据文件只能属于一个数据库,每个数据文件由若干个物理块组成,其中包括各种数据。
            控制文件:用于记录和维护整个数据库的物理结构,是二进制文件,扩展名为 .ctl 。
               数据库启动时,先找到控制文件,然后根据控制文件设定的数据库文件、日志文件等物理文件的信息来检查数据库的状态是否正常。
            重做日志文件:用于记录数据库所做的全部变更(增、删、改)。
               当数据库发生故障时,用它对数据库进行恢复。  
          
             逻辑存储结构:描述oracle数据库从逻辑上如何组织和数据(如表、索引)管理的方式。
                数据块:是oracle数据库从磁盘读/写数据的最小存储单元,也是数据库输入/输出的最小单元。常见2KB或4KB。
                  OS块:是操作系统从磁盘读/写的最小单元。
                数据区间:由一组连续的数据块构成,是数据库系统为存储空间分配的一个逻辑单位。
                数据段:由若干数据区间构成。
                  数据段:用于存放表中的记录。----------建表时会创建
                  索引段:用于存放索引数据。 ----------创建索引时会创建
                  回滚段:用于存放数据被修改之前的旧值。----------系统可利用该段进行回滚操作
                  临时段:执行SQL语句,用于存放中间的结果和数据。-------一旦执行完毕,临时占用的空间归还给系统
                逻辑对象:指用户可操作的数据库对象。包括表、索引、视图、簇、同义词、触发器、过程、函数等21种对象。
                表空间:Oracle数据库通过表空间来组织数据。本质是组织红素局文件的一种方式。
                数据库:由若干的表空间构成。
 
        Oracle数据字典由一组表和视图组成,可以把数据字典划分为静态数据字典和动态性能表两大类。
 
   在Oracle数据库中相关管理操作:
      权限管理:当创建新用户时,权限域为空,权限管理分为两种---授予权限--收回权限。
         1.系统权限授权 ----GRANT system_pri | role TO user [WITH ADMIN OPTION ]
            system_priv|role: 要授予的系统权限。
            WITH ADMIN OPTION:把想其他用户授权的能力传递给被授予者。
         2.对象权限授权  ----GRANT object_priv ON object_name TO user [WITH ADMIN OPTION ]
            object_priv:表示具体为某个对象,如视图、表。。
            WITH ADMIN OPTION:把想其他用户授权的能力传递给被授予者。
         3.收回权限 -----REVOKE system_priv|role FROM user [WITH ADMIN OPTION ]
            system_priv|role: 要收回的系统权限。----可以使用关键字ALL或ALL PRIVILEGES将所有权限收回。
 
      Oracle数据库中的数据类型:
          数值型-----number[(P,R)]-----用于存储整数和实数。p--精度,R---刻度范围,在-84,127内取值。
          字符型-----char(n)----用于存储定长的字符串---实际值不够以空格填充
             -----varchar2(n)----描述变长字符串----按实际长度分配空间
             -----Long----存储高达2GB的可变字符串
               -----nchar、nvarchar2---国家字符集--使用方法与char、varchar2相同
          日期型------Date---存储时间信息,用于存储固定长度的日期和时间数据,占7个字节。
             ------times tamp(n)---时间戳,允许存储小数形式的秒值。n表示秒的小数位数
               ------interval year to month----存储以年份和月份表示的时间段。
             ------interval day to second----存储以天数、小时数、分钟数和秒数表示的时间段。
          LOB型-----用来存储数据库字段,最大可存储4GB
             -----CLOB--character lob ,能存储大量字符数据
             -----NCLOB---用来存储可变长度的Unicode字符数据
             -----BLOB---binary lob(二进制LOB) 可以存储较大的可变长度的二进制对象,如图形、视频、声音文件
               ------BFILE--binart file(二进制文件),用于存储指向二进制格式文件的定位器。
          REW----类似于char,存储二进制数据
          LONG REW---类似于long,存储二进制数据
          行类型---ROWID--又称伪列类型,用于数据库内部保存表中的每条记录的物理地址。
             ---UROWID--行标识符,用于表示索引化表中行的逻辑地址
 
 三、Mysql数据库简介
    Mysql数据库:是一个多用户、多线程的小型数据库服务器,具有免费、跨平台性等特点。      
      mysql只有一个登陆用户-------------与oracle数据库不同---权限不同。
        mysql虽然只有一个登陆用户,但用户的权限分为ROOT用户和普通用户。ROOT用户为超级管理员,具有所有权限。而普通用户只拥有被赋予的权限。
      在MYSQL中存在一个名为mysql的数据库,该数据库中的表均为权限表,其中USER表是最为重要的一张表。
        USER表有诸多列,主要分为四种,用户列--权限列--安全列--资源控制列。这些列记录着每个用户的详细信息,修改某些列情况。
   理解:mysql的安装目录:
        bin目录:用于放置一些可执行文件。
        data目录:用于存放一些日志文件。
        include目录:用于放置一些头文件。
        lib目录:用于放置一系列的库文件。
        share目录:用于存放字符集、语言目录
        my.ini:是Mysql数据库中使用的配置文件。
        my-huge.ini:适合超大型数据库的配置文件
        my-large.ini:适合大型数据库的配置文件。
     注意:一般情况读取my.ini配置文件,其他的配置文件适用于不同的数据库模板。
 
    数据类型:不同的数据类型决定了MySQL存储数据方式的不同。

      整数型  TINYINT   1字节        迷你整型
           SMALLINT  2字节  小整型
           MEDIUMINT 3字节   中整型
           INT     4字节        标准整型
           BIGINT    8字节        大整型      
      浮点数类型  DOUBLE     8字节
                FLOAT      4字节  精度有限,会丢失精度。超出部分,系统四舍五入。 

      定点数类型  DECIMAL(M,D)M+2   M表示数据的长度,D表示小数点后的长度,默认10,2。小数点固定,精度固定 。       
 
      时间和日期类型  YEAR     1字节   表示年份。                
               DATE   4字节   表示日期
               TIME   3字节  表示时间值HH:MM:SS
               DATETIME   8字节  表示日期和时间 格式YYYY-mm-dd:ii:ss有0值;
               TIMESTAMP  4字节   表示日期和时间。可CURRENT_TIMESTAMP输入系统当前时间)
      

      字符串和二进制类型
                 CHAR       表示固定长度的字符串
            VARVHAR   表示可变长度的字符串
                 BINARY     表示固定长度的二进制数据
                 VARBINARY  表示可变长度的二进制数据
                 BOLB           表示二进制大数据
                TEXT                表示大文本数据
                 ENUM              表示枚举类型,只能储存一个枚举字符串值
              (数据格式ENUM(‘值1’,‘值2’,‘值3’,…))
                 SER         表示字符串对象,可以有零或多个值
                 BIT         表示字段类型
    注意:不同的字节用法不同
 
数据库的名称不可修改 / 修改数据库仅限于库选项:字符集和校对集(校对集依赖字符集)charset / collate   
Mysql中注意:永远不要使用“UTF-8”的格式。-----------Mysql中的“utf-8”实际不是真正的UTF-8,“uft-8”只支持每个字符最多三个字节,
  而真正的UTF-8每个字符最多能支持4个字节。因此会出现编码问题---------这时候应该使用字符集“utf8mb4” 。 

  字符串与日期的值一般用单引号中。添加数据时,非数值数据都需要引号包裹。

笔记摘抄书籍----《Oracle数据库系统应用开发使用教程》

          《Mysql数据库入门》

数据库----ORACLE和MYSQL数据库简介的更多相关文章

  1. 在oracle配置mysql数据库的dblink

    本文介绍如何在oracle配置mysql数据库的dblink:虽然dblink使用很占资源:俗称“性能杀手”.但有些场景不得不使用它.例如公司使用数据库是oracle:可能其他部门或者CP合作公司使用 ...

  2. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  3. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  4. 怎样将Sqlserver数据库转成mysql数据库

    手上有一个网站之前是用asp.net做的,所使用的数据库是sqlserver,现在打算用PHP+MYSQL架构.因原来的站点有一定排名,直接改版的话,会导致产生很多错误页,网站排名和收录结果要恢复过来 ...

  5. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  6. Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令

    Vc数据库编程基础MySql数据库的常见操作 一丶数据库常见的库操作 1.1查看全部数据库 命令:  show databases 1.2 创建数据库 命令: Create database 数据库名 ...

  7. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...

  8. MySQL数据库迁移与MySQL数据库批量恢复

    目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...

  9. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

随机推荐

  1. DevOps理论+实践之路

    DevOps理论+实践之路  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关注 ...

  2. Mybatis Plus 入坑(含最新3.X配置)

    简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 使用它可以简化单表的操作, 节省开发时间, 国人 ...

  3. jmeter命令行压测

    简介:使用非GUI模式,即命令行模式运行jmeter测试脚本能够大大缩减系统资源 1.配置jdk及添加环境变量 变量名:JAVA_HOME 变量值: C:\Program Files\Java\jdk ...

  4. 使用scrapy框架来进行抓取的原因

    在python爬虫中:使用requests + selenium就可以解决将近90%的爬虫需求,那么scrapy就是解决剩下10%的吗? 这个显然不是这样的,scrapy框架是为了让我们的爬虫更强大. ...

  5. Find- Linux必学的60个命令

    1.作用 find命令的作用是在目录中搜索文件,它的使用权限是所有用户. 2.格式 find [path][options][expression] path指定目录路径,系统从这里开始沿着目录树向下 ...

  6. PKUWC&SC 2018 刷题记录

    PKUWC&SC 2018 刷题记录 minimax 线段树合并的题,似乎并不依赖于二叉树. 之前写的草率的题解在这里:PKUWC2018 minimax Slay the Spire 注意到 ...

  7. Spring的自定义注解简单实现

    1.注解的示例为在方法入参上加后缀 注解代码示例: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documente ...

  8. 循环/闭包/setTimeout/Promise 综合

    控制台显示内容为? for (var i = 0; i < 5; i++) { console.log(i); } 控制台显示内容为? for (var i = 0; i < 5; i++ ...

  9. 微信小程序上传报错:以下文件没有被打包上传: · .gitignore

    简单粗暴的办法就是:找到gitignore文件,把该文件删除掉即可. 在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这 ...

  10. Python爬虫笔记【一】模拟用户访问之验证码清理(4)

    清理图片,对图片进行二值化,去边框,去干扰线,去点 from PIL import Image from pytesseract import * from fnmatch import fnmatc ...