由于工作原因,近期可能会开始多复习一些数据库相关的知识了,想深入了解的,也可以一起复习.学习~

前期先巩固一下基础操作,后期会一点点的加深向运维方向深入。开篇主要介绍一些数据库理论知识,不感兴趣的可以向后翻阅;如果你是开发人员可以简单看看基础就够了。废话不多说,开始我们的学习吧!

数据库版本Oracle 11g

Oracle 11g提供了多种数据库管理工具,SQL*PLUS、OEM(企业管理器)、DCA(数据库配置助手),本次复习对数据库操作使用的是SQL*PLUS,其实用什么无所谓,主要是学会使用就好了,继续吧~

要使用好Oracle,我觉得应该先了解一下它:

一》 开篇--Oracle介绍

Oracle官网链接:https://www.oracle.com/index.html

①Oracle是著名的Oracle(甲骨文)公司的数据库产品,Oracle属于关系型数据库的一种,

常见的关系型数据库还包括MySQL、SQL Server、DB2;

非关系型数据库:NoSQL、MangoDB、Memcache、Redis等等

②那么什么是关系型数据库呢?就是建立在关系模型基础上的数据库。简单理解就是将现实中各个实体(事物)及其之间的各种联系,通过数学概念和方法进行处理,以关系模型进行展现。

③数据库的E-R模型,说到模型就要提到关系型数据库设计了,设计之初首先要建立逻辑模型。

关系型数据库的逻辑模型可以通过实体(事物)和实体关系组成的图形来表示,也就是常用的E-R图,E-R图表示的逻辑模型就是E-R模型。标准的E-R模型主要由三部分组成:实体、属性和联系。而这三部分也正是我们在项目开发中,数据库设计阶段需要深入研究和合理设计数据表的重要三部分。

想要朝着项目经理方向发展的小伙伴,对于项目中数据库的设计还是需要深一步的了解的,这方面还是要通过实践去多加锻炼的。建议:自己模拟一些场景进行设计练习

二》设计范式

关系型数据库的设计范式有第一范式、第二范式、……第六范式、BCNF范式等等,通常的数据库满足前三种范式就足够了。任何关系型数据库都应该满足第一范式,不满足的数据库,则不是关系型数据库。在关系型数据库中,一般称一行数据为一个元组,而列表示的是属性,第一范式是第二、第三范式的基础;;

第一范式:数据库表的每一列都是不可分割的原子数据项,也就是说,实体中的某个属性有多个值时,必须拆分为不同的属性;

比如:班级:计算机系3班,这种就需要再进行数据拆分;

第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性

比如:员工工资表,以员工编号、岗位为复合主键,属性还有姓名、年龄、学历、基本工资、绩效工资、奖金;

这种情况下,员工编号决定的是姓名、年龄和学历,而基本工资是由岗位决定的,不符合第二范式的要求。

一般设计表时,可以设计成三张表:员工管理表、岗位工资表、员工工资表,这样就可以了;

第三范式:任何非主属性不依赖于其它非主属性(在第二范式基础上消除传递依赖)

传递依赖就是如果存在关键字段A决定非关键字段B,而非关键字段B决定非关键字段C,则称非关键字段C传递依赖于关键字段A。

比如:员工编号→员工姓名、年龄、部门编号、部门经理;

这种情况下,员工编号决定部门编号,而部门编号决定部门经理;不符合第三范式

处理方式就是拆分表格:员工信息表和部门信息表;

一般我们使用的大部分都只是满足前三种范式,后几种有感兴趣的可以自行查阅,这里不再细说;我们进行数据库设计时,都希望能够消除数据冗余、更新异常、插入异常和删除异常,那就需要我们按照“规范化”的原则去存储数据。

三》数据库基本操作

Oralce操作类型中一共分为DDL(数据定义语言)、DML(数据操纵语言)、TCL(事务控制语言)、DQL(数据查询语言)、DCL(数据控制语言)

① DDL给我的个人感觉是有全局眼光的领导层语言;为啥这样形容呢?它主要用于建立、修改、删除数据库对象,面向的对象不是条条的数据,而是整个数据库或者数据表。在数据库中删表删库的操作是属于DDL的,作为程序员的你值得好好关注,不为了去实施这些操作,但多了解一些总没有坏处。

   Create: 创建表或其他对象结构

  Alter:修改表或其它对象结构

   Drop:删除表或者其他对象结构

   Truncate:删除表数据,保留表结构

② DML追究完美做到极致的技术人员;用于改变数据表中的每条数据;他和事务是好兄弟,一般执行完后需要经过事务控制语句提交后才真正的将改变应用到数据库中

Insert :将数据插入到数据表中

Update:更新数据表中已经存在的数据

    Delete:删除数据表中的数据

③TCL 用于维护数据一致性的语句(事务后面会详细谈一下,这个是数据库比较重要的部分)

Commit:提交,确认已经进行的数据改变

RollBack:回滚,取消已经进行的数据改变

SavePoint:保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变

④DQL 用于查询数据   Select (开发最常用的)

⑤DCL 用于执行权限的授予和收回操作  (DBA的日常工作,开发者用不到)

   GRANT:授予,用于给用户或角色授予权限

   Revoke:用于收回用户或角色已有的权限

Create User 创建用户

先到这里吧!下一篇开始SQL语句的复习~

Oracle数据库操作---入门(一)的更多相关文章

  1. Oracle数据库基础入门《二》Oracle内存结构

    Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...

  2. Oracle数据库基础入门《一》Oracle服务器的构成

    Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...

  3. C语言与数据库操作入门

    https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...

  4. C语言与数据库操作入门(Win版)

    C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...

  5. Oracle数据库从入门到精通 单行函数问题

    视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 Oracle数据库从入门到精通-单行函数 在数据库中,为了方便用户的数据开发,往往会提供一系列的支持函数 ...

  6. 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

    基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* ----- ...

  7. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  8. (转)C# Oracle数据库操作类

    原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...

  9. C# Oracle数据库操作类

    using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...

随机推荐

  1. kotlin面向对象-笔记

  2. 【抄袭】VB.NET扩展WebBrowser,拥有跳转前获取URL的能力

    来自 http://www.cnblogs.com/yuanjw/archive/2009/02/09/1386789.html 我仅做VB化,并优化了事件消息 Imports System.Comp ...

  3. WPF DataGrid分组和排序

    之前一直用的Dev的GridControl,控件自带分组排序啥的.今天试了下在wpf自带的Datagrid控件上实现分组和排序. Datagrid上实现这些功能主要用到CollectionViewSo ...

  4. [Vue] vue-cli3.0安装

    1. node.js安装https://nodejs.org/en/download/ 2.npm的安装 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了.同样可以通过输入 &qu ...

  5. Swift5 语言指南(二十五) 自动引用计数(ARC)

    Swift使用自动引用计数(ARC)来跟踪和管理应用程序的内存使用情况.在大多数情况下,这意味着内存管理在Swift中“正常工作”,您不需要自己考虑内存管理.当不再需要这些实例时,ARC会自动释放类实 ...

  6. C#导出HTML到PDF组件 Pechkin

    C#导出PDF功能是开发中经常遇到的功能,我们采用第三方的组件,比如 iTextSharp, aspose等,还能搜到一些开源的类库, 但是对于一些内容复杂样式丰富的PDF,我们希望通过传入一个URL ...

  7. 微信公众平台主动推送消息(asp.net)

    /// <summary>        /// MD5 32位加密        /// </summary>        /// <param name=" ...

  8. DockerFile(保你会版本)(七)

    一.什么是dockerfile Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile自定义快速创建属于自己的镜像,Dockerfile是通过很多的参数指令编写的文件,通过do ...

  9. [每天解决一问题系列 - 0002] Xcopy cannot copy file with long directory

    现象: 当xcopy的文件的全名(包括目录和文件名)的长度超过255字符时,会copy失败,得到insufficient memory错误 解决方法: 在Server 版的OS中,有robcopy命令 ...

  10. 【原创】手动导入SQLServer数据到SQLCE方法

    我找到一个工具,可以很容易把SQLServer里的数据导入到SQLCE: 工具名:Export2SqlCe.exe, 下载路径: http://exportsqlce.codeplex.com/rel ...