Oracle数据库操作---入门(一)
由于工作原因,近期可能会开始多复习一些数据库相关的知识了,想深入了解的,也可以一起复习.学习~
前期先巩固一下基础操作,后期会一点点的加深向运维方向深入。开篇主要介绍一些数据库理论知识,不感兴趣的可以向后翻阅;如果你是开发人员可以简单看看基础就够了。废话不多说,开始我们的学习吧!
数据库版本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数据库操作---入门(一)的更多相关文章
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- Oracle数据库基础入门《一》Oracle服务器的构成
Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...
- C语言与数据库操作入门
https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...
- C语言与数据库操作入门(Win版)
C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...
- Oracle数据库从入门到精通 单行函数问题
视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 Oracle数据库从入门到精通-单行函数 在数据库中,为了方便用户的数据开发,往往会提供一系列的支持函数 ...
- 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具
基于OCILIB的oracle数据库操作总结 1. 类图 2. 基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* ----- ...
- C# Oracle数据库操作类实例详解
本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...
- (转)C# Oracle数据库操作类
原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...
- C# Oracle数据库操作类
using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...
随机推荐
- ASP.NET判断是否为手机登录
protected void Page_Load(object sender, EventArgs e) { MobileHandle(); } 页面加载时候判断是否为手机登录 protected v ...
- .net core Area独立成单独的dll文件
以前做MES项目遇到过这个情况,一个项目有7到8个大模块,生产.质量.物耗.电子看板.设备等,每个模块都有大量业务,这样使用mvc结构如果所有模块放在一个目录中,那么势必会产生很多问题,各模块代码不好 ...
- 最值得拥有的免费Bootstrap后台管理模板
在PHP开发项目中,后台管理因为面向群体相对比较固定,大部分以实现业务逻辑和功能.使用Bootstrap后台模板可以让后端开发很轻松的就展现给客户一个响应式的后台,节约前端开发的时间.下面PHP程序员 ...
- 【BZOJ1053】 反素数ant
BZOJ1053 反素数ant 我们先考虑唯一分解定理求出约数个数: \(x=a_1^{p_1}a_2^{p_2}a_3^{p_3}...a_k^{p_k}\) 然后\(num=\Pi_{i=1}^k ...
- [转]高端又易学的vbs表白程序了解一下
第一个. 打开txt文件,复制以下代码粘贴进去(可以修改中文部分,其它代码不要动!).保存并关闭txt文件. msgbox("做我女朋友好吗?") msgbox("房产证 ...
- 整理的开源项目(全c#)
NPOI:读写office办公软件(不需要安装office软件) http://npoi.codeplex.com/downloads/get/70099 消息中间件:DotNetMQ http:// ...
- 【disruptor】2、disruptor中生产者线程与消费者之间的协调
由于ringbuffer是一个环形的队列,那么生产者和消费者在遍历这个队列的时候,如何制衡呢? 1.生产快,消费慢,数据丢失? 生产者速度过快,导致一个对象还没消费完,就循环生产了一个新的对象要加入r ...
- VirtualBox下Ubuntu虚拟机共享文件夹、自动挂载相关配置
VirtualBox Ubuntu 共享文件夹的自动挂载: 一些基本的操作步骤: 首先,我们想要实现VirtualBox虚拟机与windows系统之间的通信,我们必须也应该正确的安装虚拟机系统. 其次 ...
- sql server 2012 打开提示无效的许可证数据。需要重新安装
重装什么的没有用,需要下载Visual Studio 2010 Isolated Shell (zh-CN) ,重新安装后就好了 下载地址 Visual Studio 2010 Isola ...
- ASP.NET Core 中使用 GrayLog 记录日志
使用 UDP 协议发送日志 自定义好的查询 key 存储数据,尽量不要使用 graylog2-server 服务端格式化日志再存储 Ubuntu 安装服务端 sudo apt-get update & ...