0x01.什么是Oracle数据库

  • ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之一。比如SilverStream 就是基于数据库的一种中间件。ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

0x02.Oracle相关的概念

1.数据库

  • Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。

2.实例

  • 一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 多 个实例。

3.用户

  • 用户是在实例下建立的。
  • 注意:不同实例可以建相同名字的用户。

4.表空间

  • 表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射
  • 一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。

5.数据文件(DBF、ORA)

  • 数据文件是数据库的物理存储单位。
  • 数据库的数据是存储在表空间中的。
  • 一个数据文件只能属于一个表空间,而一个表空间可以由一个或多个数据文件组成。
  • 表空间会随机把这些表数据放到一个或者多个数据文件中。
  • 注意:一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

6.与MySQL区别

  • oracle 是由用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。
  • 因为不同用户可以在同一个表空间建立同一个名字的表,这里的唯一区分就是用户了。
  • 而MySQL数据库是以表来进行管理和存放的。

0x03.表空间和用户的创建

1.表空间的创建与删除

--创建表空间
create tablespace test1
--文件存放位置
datafile 'D:\HouDuanTools\Orcle-datas\test1.dbf'
--初始默认大小
size 50m
--不够时每次拓展5m
autoextend on
next 5m;--删除表空间
drop tablespace test1;

2.用户的创建与切换

  • 创建了用户之后,需要对其授权。

  • 三种Oracle的角色:

    • connect --基本角色,拥有最基本的权限。

      • ALTER SESSION --修改会话
      • CREATE CLUSTER --建立聚簇
      • CREATE DATABASE LINK --建立数据库链接
      • CREATE SEQUENCE --建立序列
      • CREATE SESSION --建立会话
      • CREATE SYNONYM --建立同义词
      • CREATE VIEW --建立视图
    • resource --开发者角色,在有上述基本的权限后,还有下列权限:

      • CREATE PROCEDURE --建立过程
      • CREATE TABLE --建表
      • CREATE TYPE --建立类型
      • CREATE TRIGGER --建立触发器
    • dba --超级管理员角色,拥有全部权限。

--创建用户
create user test
--密码
identified by atfwus
--初始的表空间
default tablespace test1;--给用户授权grant dba to test;
  • 执行完上述sql语句后,就可以退出,然后重新使用test用户的身份进行登录。

0x04.Oracle数据类型

序号 数据类型 具体描述
1 Varchar,varchar2 字符串类型
2 NUMBER 数字类型
3 DATA 日期类型
4 CLOB 大文本数据类型,最多可存 4G
5 BLOB 二进制数据,最多可存 4G
  • 说明:

    • NUMBER(n)表示一个整数,长度是 n 。
    • NUMBER(m,n):表示一个小数,总长度是 m,小数是 n,整数是 m-n 。
    • Varchar是定长度,varcahr是可变长度。

0x05.表管理

1.建表

  • 语法:
Create table 表名(字段 1 数据类型 [default 默认值],字段 2 数据类型 [default 默认值],... 字段 n 数据类型 [default 默认值]
);
  • 示范:
--创建一个student表
create table student (id number(16),name varchar2(20));

2.删表

  • 语法:
DROP TABLE 表名
  • 示范
DROP TABLE student

3.修改表结构

添加列:
  • 语法:
ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型[DEFAULT 默认值]...)
  • 示范:
--给表增加一列
alter table student add (gender varchar2(5));
删除列:
  • 语法:
ALTER TABLE 表名称 DROP COLUMN 列名;
  • 示范:
ALTER TABLE student DROP COLUMN sex;
修改列:
  • 语法:
ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型[DEFAULT 默认值]...)
  • 示范:
--修改一列
alter table student modify gender number(1);
修改列名:
  • 语法:
ALTER TABLE 表名称 RENAME COLUMN 列名 1 TO 列名 2
  • 示范:
--修改列名
alter table student rename column gender to sex;

0x06.表数据的更新

  • 注意:必须手动提交事务,才能完成真正的更新。

1.增(INSERT)

  • 语法:
INSERT  INTO 表名[(列名 1,列名 2,...)]VALUES(值 1,值 2,...) ;-- 这种写法必须按照表中的字段的顺序来插入值,而且如果有为空的字段使用 null
INSERT  INTO 表名 VALUES(值 1,值 2,...) ;
  • 示范:
--插入一条数据
insert into student (id,name,sex) values(1,'ATFWUS',1);

2.删(DELETE)

  • 在删除语句中如果不指定删除条件的话就会删除所有的数据
  • 语法:
 DELETE FROM 表名 WHERE 删除条件;
  • 示范:
DELETE FROM student WHERE id=1;

3.改(UPDATE)

  • 在更新语句中如果不指定条件的话就会默认更新所有的数据
  • 语法:
UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改条件;
  • 示范:
--更新数据
update student set name='AAA' where id=1;

0x07.序列

  • 在 oracle 中完成自动增长的功能, 只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。
  • 序列:从1开始,依次递增,主要用来给主键赋值。
  • 序列不属于任何一张表,但在逻辑上可以和表做绑定。
  • 序列的创建语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
  • 使用序列:

    • nextval :取得序列的下一个内容
    • currval :取得序列的当前内容
  • dual是一张伪表,目的是为了补全语法。

create sequence s_student;
select s_student.currval from dual;
  • 使用序列增加表数据:
insert into student (s_student.nextval,name,sex) values(1,'ATFWUS',1);

0x08.Scott用户

  • scott是一个系统已经新建好的普通用户

    • 用户名scott
    • 密码默认tiger
    • 默认状态是被锁定,DBA用户执行
  • scott是给初学者学习的用户,学习者可以用Scott登录系统,注意scott用户登录后,就可以使用Oracle提供的数据库和数据表,这些都是oracle提供的,学习者不需要自己创建数据库和数据表,直接使用这些数据库和数据表练习SQL。

解锁:

  • DBA用户执行:
-- 解锁scott用户
alter user scott account unlock;
--解锁scott用户的密码【也可重置用户的密码】
alter user scott identified by tiger;
  • 退出后,就可以重新以scott登录。

ATFWUS --Writing By 2020–05-04

Oracle基础 之 最基础提要相关推荐

  1. 初学Oracle的笔记(2)——基础内容(实时更新中..)

    续 初学Oracle的笔记(1)--基础内容(实时更新中..) 1.oracle中创建一张表,写法与sql server中的一样. SQL> create table Course 2 ( cn ...

  2. oracle表和对象基础维护笔记

    一 oracle表和对象基础维护笔记 1.1 常见概念 1.2 创建表 1.3 表常见字段 1.4 增加或删除字段 1.5 更新字段 1.6 重命名表 1.7 改变表存储表空间和存储参数 1.8 删除 ...

  3. oracle PL/SL编程基础

    .了解PL/SQL数据类型 .掌握PL/SQL控制结构 .了解PL/SQL中异常处理 .掌握游标的使用 Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言 ...

  4. 《OCA认证考试指南(1Z0-061):Oracle Database 12c SQL基础》

    2019独角兽企业重金招聘Python工程师标准>>> <OCA认证考试指南(1Z0-061):Oracle Database 12c SQL基础> 旨在帮助读者备战Or ...

  5. Oracle学习篇章一——基础

    Oracle学习一--总体基础 一.数据库分类 1.1.数据库分类 1.2.项目中如何合理地使用数据库,可以依据如下三个方面入手 1.3.不同规模类型的数据库区别 二.Oracle概念 三.Oracl ...

  6. ORACLE甚而,PL/SQL基础

    Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用 ...

  7. oracle基础之sql基础知识

    1. sql(Structured Query Language)是关系型数据库的基本操作语言. 包括数据库查询(Data Query),数据操纵(Data Manipulation),数据定义(Da ...

  8. python编程零基础-编程零基础应当如何开始学习 Python?

    看到问题关于<编程零基础应当如何开始学习 Python?>,其实是在Python未来会很火的一个基础条件下,但是我觉得光光说学习Pyhon这件事,你首先得明白三件事: --如何判断你学习编 ...

  9. Docker基础镜像操作系统基础镜像对比(参考官方文档),优化docker镜像

    目录: 一. 选择Docker基础镜像 操作系统基础镜像 1. busybox 2. Alpine 3. CentOS 4. Ubuntu 5. Debian 二.编程语言基础镜像 应用基础镜像 其它 ...

  10. SQL数据库基础中的基础

    SQL数据库基础中的基础 1.数据库操作 0.0 提前准备 再开始操作之前,需要有数据库,如果没有安装的可以看我上一篇的内容.以下所有操作均在数据库上操作. 1.1 DDL操作 1.1.1 数据库操作 ...

最新文章

  1. 硅谷精英的薪水大揭秘,你和他们差距有多大?
  2. jupyter 魔法函数
  3. mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
  4. windows10 vscode 构建最强大的 Mingw C++ gcc 编译环境
  5. ASP.NET工作笔记014---用VB.NET封装服务器端控件
  6. debian修改主机名
  7. GNN + Zero-shot
  8. 微信小程序超市购物+后台管理系统|前后分离VUE
  9. Intellij IDEA--配色方案/主题/风格/样式--自定义/配置
  10. 扫雷android设计思路,Flash扫雷游戏设计思路与步骤(4)
  11. 如何开好项目kickoff会议
  12. mysql column specified twice_Mysql抛出Column 'descriptions' specified twice异常解决方法
  13. LINUX IIO子系统分析之四 IIO EVENT介绍
  14. 干货分享 | 用Pyecharts绘制20钟不同风格的炫酷交互式图表,建议收藏
  15. Java腐烂的橘子leetcode
  16. UE4 令Actor对象在Editor下执行Tick
  17. mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
  18. Cython 是什么?为什么会有 Cython?
  19. 工具系列——XMind 8 Update 7的破解步骤
  20. 使用X-NUCLEO-GFX01M1 开发板快速进行 GUI 开发

热门文章

  1. 一次全部更改ppt中的字体
  2. 借钱的原则和向别人借钱的技巧
  3. PS怎么添加一个图片叠加在另一个上面
  4. webpack的热重载/热更新HMR是如何实现的
  5. 银联支付需要的证书(下载和导出以及上传流程)
  6. 【Project】Need for Cube魔方比赛系统
  7. 如何拍出来好看的Vlog,必备小技能(五)?
  8. 用UIWebview、UILabeL、UITextView加载html富文本,图片太大显示不全的解决
  9. 2022-2028年中国体育俱乐部行业市场发展潜力及投资策略研究报告
  10. CAD梦想画图中“全图白色显示与彩色显示”如何设置