Oracle基础 之 最基础提要
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基础 之 最基础提要相关推荐
- 初学Oracle的笔记(2)——基础内容(实时更新中..)
续 初学Oracle的笔记(1)--基础内容(实时更新中..) 1.oracle中创建一张表,写法与sql server中的一样. SQL> create table Course 2 ( cn ...
- oracle表和对象基础维护笔记
一 oracle表和对象基础维护笔记 1.1 常见概念 1.2 创建表 1.3 表常见字段 1.4 增加或删除字段 1.5 更新字段 1.6 重命名表 1.7 改变表存储表空间和存储参数 1.8 删除 ...
- oracle PL/SL编程基础
.了解PL/SQL数据类型 .掌握PL/SQL控制结构 .了解PL/SQL中异常处理 .掌握游标的使用 Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言 ...
- 《OCA认证考试指南(1Z0-061):Oracle Database 12c SQL基础》
2019独角兽企业重金招聘Python工程师标准>>> <OCA认证考试指南(1Z0-061):Oracle Database 12c SQL基础> 旨在帮助读者备战Or ...
- Oracle学习篇章一——基础
Oracle学习一--总体基础 一.数据库分类 1.1.数据库分类 1.2.项目中如何合理地使用数据库,可以依据如下三个方面入手 1.3.不同规模类型的数据库区别 二.Oracle概念 三.Oracl ...
- ORACLE甚而,PL/SQL基础
Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用 ...
- oracle基础之sql基础知识
1. sql(Structured Query Language)是关系型数据库的基本操作语言. 包括数据库查询(Data Query),数据操纵(Data Manipulation),数据定义(Da ...
- python编程零基础-编程零基础应当如何开始学习 Python?
看到问题关于<编程零基础应当如何开始学习 Python?>,其实是在Python未来会很火的一个基础条件下,但是我觉得光光说学习Pyhon这件事,你首先得明白三件事: --如何判断你学习编 ...
- Docker基础镜像操作系统基础镜像对比(参考官方文档),优化docker镜像
目录: 一. 选择Docker基础镜像 操作系统基础镜像 1. busybox 2. Alpine 3. CentOS 4. Ubuntu 5. Debian 二.编程语言基础镜像 应用基础镜像 其它 ...
- SQL数据库基础中的基础
SQL数据库基础中的基础 1.数据库操作 0.0 提前准备 再开始操作之前,需要有数据库,如果没有安装的可以看我上一篇的内容.以下所有操作均在数据库上操作. 1.1 DDL操作 1.1.1 数据库操作 ...
最新文章
- 硅谷精英的薪水大揭秘,你和他们差距有多大?
- jupyter 魔法函数
- mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
- windows10 vscode 构建最强大的 Mingw C++ gcc 编译环境
- ASP.NET工作笔记014---用VB.NET封装服务器端控件
- debian修改主机名
- GNN + Zero-shot
- 微信小程序超市购物+后台管理系统|前后分离VUE
- Intellij IDEA--配色方案/主题/风格/样式--自定义/配置
- 扫雷android设计思路,Flash扫雷游戏设计思路与步骤(4)
- 如何开好项目kickoff会议
- mysql column specified twice_Mysql抛出Column 'descriptions' specified twice异常解决方法
- LINUX IIO子系统分析之四 IIO EVENT介绍
- 干货分享 | 用Pyecharts绘制20钟不同风格的炫酷交互式图表,建议收藏
- Java腐烂的橘子leetcode
- UE4 令Actor对象在Editor下执行Tick
- mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
- Cython 是什么?为什么会有 Cython?
- 工具系列——XMind 8 Update 7的破解步骤
- 使用X-NUCLEO-GFX01M1 开发板快速进行 GUI 开发