数据库:

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

数据库分类:

  关系型数据库

  非关系型数据库

数据库

类型

特性

优点

缺点

关系型数据库

SQLite、Oracle、mysql

1、关系型数据库,是指采用了关系模型来组织数据的数据库;

2、关系型数据库的最大特点就是事务的一致性;

3、简单来说,关系模型指的就是二维表格模型,

而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;

2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;

3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;

4、支持SQL,可用于复杂的查询。

1、为了维护一致性所付出的巨大代价就是其读写性能比较差;

2、固定的表结构;

3、高并发读写需求;

4、海量数据的高效率读写;

非关系型数据库

MongoDb、redis、HBase

1、使用键值对存储数据;

2、分布式;

3、一般不支持ACID特性;

4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

1、无需经过sql层的解析,读写性能很高;

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

3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

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

2、无事务处理,附加功能bi和报表等支持也不好;

Oracle的常见版本

  Oracle8、Oracle8i,i表示开始支持internet

  Oracle9i,8的稳定版

  Oracle10g,g表示Oracle开始基于网格计算

  Oracle11g,Oracle10g的稳定版

  Oracle12c,c表示云计算

Oracle用户

  超级管理员 sys

  次级管理员 system

  普通用户 scott

  大数据用户 (实例方案数据库) sh

Oracle基础

表空间:

  Oracle数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的

表空间分类:

永久表空间

  用来存放表的数据, 视图, 存储过程或者函数等需要永久保存的对象的空间

临时表空间

  用来存放查询结果等临时数据的空间

UNDO表空间

用于存放回滚数据, 已经删除数据等对象的表空间

Oracle基础数据类型

  字符型:字符串

    char(最大2000)--->固定长度,

    nchar(最大1000, 支持unicode)--->固定长度

    varchar2(最大4000),

    nvarchar2(最大2000, 支持unicode)--->可变长度

    oracle中字符串的表示使用单引号:'字符串'

  数字类型:包括整数和小数

    number(有效数字, 总位数)---最大11;

    number

    number(8)

    number(5,2)---总位数5位, 小数点后2位

    ?float--->存储二进制类型的数据, 1-126位0.30103

  日期类型:时间

    date:取值范围:公元前4712年1月1号---公元9999年12月31号, 可以直接精确到秒

    timestamp(时间戳: 更精确的数据, 可以精确到毫秒)

    其它类型:大文本, 文件

    blob: 最大4g, 以二进制的形式来存放数据

    clob: 最大4g, 以字符串的形式存放

oracle运算符和表达式

  表达式类似于java, 可以是常量, 可以是变量, 也可以是表中的一个字段

  算术运算符(+ - * / 注意这个地方没有取余的运算符, 取余使用mod函数)

  比较运算符(> >= < <= = <>/!=)

  逻辑运算符(and or not)

  字符串连接符(||)

sql语句四种类型:

  数据定义语言(ddl)、

  数据操作语言(dml)、

  数据控制语言(dcl)

  事务控制语言(tcl)。

data definition language(ddl)

ddl使我们有能力创建或删除表格。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
create database - 创建新数据库
alter database - 修改数据库
create table - 创建新表
alter table - 变更(改变)数据库表
drop table - 删除表
create index - 创建索引(搜索键)
drop index - 删除索引

data manipulation language(dml)

供用户实现对数据的追加、删除、更新、查询等操作。
select - 从数据库表中获取数据
update - 更新数据库表中的数据
delete - 从数据库表中删除数据
insert into - 向数据库表中插入数据

data control language(dcl)

grant - 授权
revoke - 撤销授权
deny - 拒绝授权

transaction control language(tcl)

savepoint - 设置保存点
rollback - 回滚
commit - 提交

oracle数据库约束:

定义规则
定义要输入的这个值是一个什么样的值, 或者是哪个范围内的值

作用: 确保完整性, 确保精确性

  1, 非空约束
记录一条信息的时候如果用户名和密码没有被记录, 那么这条记录是没有实际意义的, 创建表的时候默认是可以为空的
  2, 主键约束
确保表中每一行的数据的唯一性
非空, 唯一
一个表中只能有一个主键, 但是这个主键可以由多个字段(联合主键, 复合主键)来构成
可以在建表的时候写上设置为主键的关键字, primary key
或者写个表前约束设置
constraint 主键名称 primary key(字段名1, 字段名2)

  3, 外键约束
唯一一个涉及两个表中的字段约束
插入数据的时候, 从表中的关联关系的字段, 要么是一个主表主键的关联, 要么是一个空值

  4, 唯一约束(unique)
保证字段值的唯一性
与主键的区别: 唯一约束可以为空值, 唯一约束可以有多个
使用语句创建唯一约束只能写多条语句, 类似于insert into
  5, 检查约束
作用: 使表当中的值更具有实际意义
比如定义一个值的范围
checks(sno>0 and sno<1000)

常用关键字

insert into---插入数据
delete---删除数据
update---更新一条数据
select---实际工作中尽量不要写*
where---给执行的语句加限制条件
in---在某个范围内
like(%, _)---模糊查询, %表示任意个字符, _表示单个字符
order by---(列名或者写索引:1, 2)
group by---按照某几列分组
having---分组之后的过滤
case...when...---类似于分支
set---设置某些属性
distinct---去除重复
between...and(闭合区间, 即包括前面的数, 也包括后面的数)
all---表示一个集合中所有的元素
any/some---表示一个集合中任意一个元素

通过SQLPLUS登录数据库

  运行-sqlplus-用户名-密码

  即可连接到数据库

  

  

使用plsql操作

查询

--查询数据库所有信息
select t.*, t.rowid from P_DEPT t
select *, t.rowid from P_DEPT
--查询数据库中dname的值为SALES的数据的deptno信息
select t.deptno from P_DEPT t where t.dname='SALES'

*代表所有

t代表给数据的一个别名,或者说id,在查询较多时便于区分

t.rowid

where后面是查询条件

增加

--增加信息
insert into p_dept(deptno,dname,loc)
,'ceshi','ceshi');
commit;
insert into p_dept
,'ceshi','ceshi');
commit;
insert into p_dept(deptno)
);
commit;

向表中增加信息,注意:表明后面的列名要和values后面的值对应起来,也可以表名后面不写列名,这样在values后面就要写全部的列的内容

更新 / 修改

--修改deptno为60的数据dname为ceshi2

删除数据

--删除数据
;
commit;

Oracle数据库常用命令整理:

--查询当前系统中的所有用户
select * from all_users

--查当前用户下所有的表:
select * from tab where tname not like '%$%'

--查看当前用户下所有的表(详细信息)
select * from user_tables

--查数据库中所有的表
select * from all_tables

--创建一个用户(进行这项操作的当前用户必须拥有DBA权限)
create user 用户名 identified by 密码

--创建表空间
create tablespace ts_mytest
logging
datafile 'f:\oracle_xe_datafile\mytest.dbf'
size 32m
autoextend on next 10m maxsize unlimited

--删除表空间
drop tablespace hoteldata including contents and datafiles;

/*
用户分三种类型
  sys;//系统管理员,拥有最高权限
  system;//本地管理员,次高权限
  scott;//普通用户,密码默认为tiger,默认未解锁
    新建用户未授权全部为普通用户
*/

--删除用户(级联)
drop user testuser cascade

--授予该用户权限(进行这项操作的当前用户必须拥有DBA权限)
grant connect, resource to 用户名

--connect角色是授予最终用户的典型权利,最基本的
  --修改会话
    alter session
  --建立会话
    create session
  --建立聚簇
    create cluster
  --建立数据库链接
    create database link
  --建立序列
    create sequence
  --建立同义词
    create synonym
  --建立视图
    create view

--resource角色是授予开发人员的
  --建立聚簇
    create cluster
  --建立存储过程
    create procedure
  --建立序列
    create sequence
  --建表
    create table
  --建立触发器
    create trigger
  --建立类型
    create type 

--修改用户口令格式
alter user 用户名 identified by 密码

--锁定 / 解锁oracle用户
alter user 用户名 account unlock
alter user 用户名 account lock

--更改表的结构:
))

--查询所有用户默认表空间
select username, default_tablespace from dba_users

--查看某一个用户使用了哪些表和表空间
select t.table_name, t.tablespace_name from dba_all_tables t where t.owner='COLLEGE'

--查询当前用户连接
select count(*) from v$session

--查看当前用户权限
select * from session_privs; 

--添加主键
alter table test add constraint pk_test primary key (userid);

--删除主键
alter table 表名 drop constraint 主键名

--查看当前数据库所有用户
select * from dba_users

--添加外键
alter table 表2 add constraint 外键名 foreign key(表2中需要建外键的字段) references 表1

--删除外键
alter table test2 drop constraint fk_test2

--查询某个时间点的数据(可以用于恢复数据, 但是如果删除表中信息用的truncate, 就无法查询了)
select * from t_person as of timestamp to_date('2017-04-21 21:30:00','yyyy-mm-dd hh24:mi:ss');

Oracle数据库(一)概述、基础与简单操作的更多相关文章

  1. [转]Oracle数据库ASH和AWR的简单介绍

    在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容.       1.10g之前 用户的连接将产生会话,当 ...

  2. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

  3. Oracle数据库之SQL基础(一)

    主要内容:用户与表空间:表与约束:查询语句. 一.概述 Oracle安装:访问官网,下载 二.用户与表空间 在安装Oracle时在开始菜单里可以用sql puls登录oracle. ★1.系统用户 s ...

  4. Oracle 数据库中日期时间的插入操作

    Oracle 中如何插入日期时间类型的数据,首先为了演示, 新建数据表如下 create table t( mydate date); 插入日期时间 SQL> insert into t val ...

  5. Oracle数据库安装完成之后的启动操作

    由于是菜鸟,在 完成Oracle数据库的安装之后,不知道该怎么启动.在经过一番折腾之后明白了其中的一些道理,总结如下: 其实Oracle数据库和Mysql数据库的启动都是相同的原理. Mysql数据库 ...

  6. Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作

    https://www.jb51.net/article/125160.htm?utm_medium=referral  Python使用cx_Oracle调用Oracle存储过程的方法示例 http ...

  7. mysql、sql server、oracle数据库分页查询及分析(操作手册)

    1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...

  8. Oracle数据库之SQL基础(二)

    一.约束 ❤ 1.约束概述 约束作用: (1)定义规则 (2)确保完整性:包括数据的精确性.可靠性.以确保数据不会出错,或者尽量减少出错. 约束的类型: (1)非空约束 (2)主键约束 (3)外键约束 ...

  9. Oracle 数据库基本操作——实用手册、表操作、事务操作、序列

    目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...

随机推荐

  1. windows下忘记mysql的root密码解决方法(图文)

    在windows下忘记mysql的root密码对于很对新手来说,也是会经常遇到的,我也刚好遇到啦,参考网上的解决办法,自己又整理啦一下. 1.首先需要查看mysql的服务是否启动. 打开cmd窗口,输 ...

  2. formData实现图片上传

    前言 在 上一篇 已经实现了图片预览,那么如何上传图片呢?有两种思路: 1.将图片转化为dataURL(base64),这样就成为了一串字符串,再传到服务端.不过这样缺点很多,数据量比转换之前增加1/ ...

  3. 书籍推荐系列之一 -- 《凤凰项目:一个IT运维的传奇故事》

    博客已经完全更新了名字,新的名字,新的开始,想让自走向新的道路是很难的,走出舒适圈说了好久,也是时候开始行动了,今天就从写博客开始. 今天给大家推荐一本书,<凤凰项目:一个IT运维的传奇故事&g ...

  4. 4.2 例题: 统计字符数 poj2247

    问题描述 判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多 输入:第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组 成的字符串,每组 ...

  5. C语言之随机数

    #include<stdio.h>#include<stdlib.h>#include<time.h>int main(){ srand(time(0)); int ...

  6. 京东分布式缓存redis应用实战

    互联网应用特点三高:高并发.高可用.高性能,要达到这几个目标,好的方法方式是建立相应指标, 来进行准确描述,有了准确指标进行监控,方能易于实现我们设定目标. 先将指标介绍下,方便下面相关术语使用,qp ...

  7. 基于Flink秒级计算时CPU监控图表数据中断问题

     基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路:   一.问题现象       以SQL02为例,发现本来10秒一 ...

  8. docker-compose v3版本命令详解参考

    参考和指南 这些主题描述了Compose文件格式的第3版.这是最新的版本. Compose and Docker 兼容性矩阵 有几个版本的Compose文件格式 - 1,2,2.x和3.x.下表是快速 ...

  9. 51Nod 1289 大鱼吃小鱼 栈模拟 思路

    1289 大鱼吃小鱼 栈模拟 思路 题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 思路: 用栈来模拟 ...

  10. NYOJ 417 死神来了 鸽巢原理

    死神来了 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有一天,王小子在遨游世界时,遇到了一场自然灾害.一个人孤独的在一个岛上,没有吃的没有喝的.在他饥寒交迫将要死亡时 ...