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 ...
随机推荐
- 单片机编译器Keil提供的sprintf有点问题
AduC70xx系列,Keil提供的sprintf函数不太好用,好像有时会引起内存泄漏,造成不可预知的死机情况出现.
- Page_Load是怎样被执行的
关于Asp.Net的生命周期的文章,很多很多,不管是管道生命周期,还是页面生命周期,图文并茂的文章并不少,我就不说了,我只是在复习这些知识点的时候,想具体知道一个页面的Page_Load方法到底是怎么 ...
- PKI信息安全知识点
1. 什么是X.509? X.509标准是ITU-T设计的PKI标准,他是为了解决X.500目录中的身份鉴别和访问控制问题设计的. 2. 数字证书 数字证书的意义在于回答公钥属于谁的问题,以帮助用户安 ...
- [ActionScript 3.0] 加载子swf需要指定应用程序域
var ldr:Loader = new Loader(); ldr.load(new URLRequest("assets/test.swf")); 如上,如果在flash帧上写 ...
- 利用Knockoutjs对电话号码进行验证
问题来源 最近在项目中前端使用Knockoutjs,验证模块自然也是使用Knockoutjs来进行表单验证了,比较头痛,因为没有使用过Knockoutjs,更加别说要去用它做表单验证了,于是乎恶补了一 ...
- MySQL 主从复制相关参数
列举了MySQL主从复制主要的相关参数 binlog server_id 服务器在集群中唯一标识符 log_bin[=binlog_name] 启动二进制日志 log_bin_index 二进制日志索 ...
- centOS7.10 KDE桌面字体设置推荐
安装完centOS7.10的KDE桌面后,第一次使用觉得字体太难看了,特别是终端,看着很难受,调整多次后觉得如下设置舒服很多,分享出来以供参考. 其中等宽字 这样整体看着就会舒服很多 ******** ...
- github 最新项目快报
http://www.open-open.com/github/view/github2016-10-17.html
- Docker 镜像安装 GitLab 中文社区版
docker run \ --detach \ --publish : \ --publish : \ --name gitlab \ --restart unless-stopped \ --vol ...
- CentOS6.7-64bit编译hadoop2.6.4
1.下载maven(apache-maven-3.3.3-bin.tar.gz) http://archive.apache.org/dist/maven/maven-3/3.3.3/binaries ...