Oracle基础以及一些‘方言’(一)

1、什么是Oracle

  • ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
  • ORACLE 通常应用于大型系统的数据库产品。

    ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

  •  英文官网:Database | Oracle

     中文官网:数据库 | Oracle 中国

------ 来自百度百科

2、DB-Engines排名

3、ORACLE 体系结构

  • 数据库

    • Oracle 数据库是数据的物理存储,是一组存储数据的文件。 这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。

    • 其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个全局的数据库,这一点和MySQL不太一样。

  • 实例

    • 一个Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。是管理数据库文件的。一个数据库可以有 n 个实例。但通常情况下,一个实例对应一个数据库

  • 数据文件(dbf)

    • 数据文件是数据库的物理存储单位。也就是说最终数据落到磁盘上是以文件形式存在的,这个文件就叫做数据文件,后缀名是dbf

    • 数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后, 就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

  • 表空间

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

    • 每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。表空间下还有进一步的逻辑划分。

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

    • 注:表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。

  • 用户

    • 用户是在表空间下建立的。用户登陆后只能看到和操作自己的表, ORACLE的用户与 MYSQL 的数据库类似,每建立一个应用需要创建一个用户
    • MySQL中是一个用户可以查看、管理操作多个数据库,不同的应用创建不同的数据库
    • Oracle是一个数据库下可以创建不同的用户,每个用户可以操作属于自己的表。正好和MySQL的概念是反过来的

4、Oracle语法之DDL操作:创建表空间、用户以及用户赋权

  • 创建表空间

    • SQL语句:
    • --1、查看已有表空间的存储路径
      select name from v$datafile;--2、创建表空间
      create tablespace sql50
      datafile '/home/app/oracle/oradata/orcl/sql50.dbf'
      size 100m
      autoextend on
      next 10m;
      
    • 解释:
    • sql50             为表空间名称
      datafile          用于设置物理文件名称
      size              用于设置表空间的初始大小
      autoextend on     用于设置自动增长,如果存储量超过初始大小,则开始自动扩容
      next              用于设置扩容的空间大小
      
  • 创建用户

    • SQL语句:
    • --1、查看当前所有用户
      select username from all_users;--2、创建新用户
      create user sql50_user
      identified by 123456
      default tablespace sql50;
      
    • 解释:
    • sql50_user            为创建的用户名。
      identified by         用于设置用户的密码
      default tablesapce    用于指定默认表空间名称
      
  • 用户赋权

    • SQL语句:
    • -- 给用户赋予dba权限
      grant dba to sql50_user;-- 给用户对某个表(table_name)的select权限:
      grant select on table_name to sql50_user;-- 授予创建会话权限   
      grant create session to sql50_user;-- 授予使用表空间的权限(这里假设表空间名为sql50)   
      grant unlimited sql50 to sql50_user;-- 授予对teachers表的SELECT和INSERT权限  
      grant select, insert on teachers to sql50_user;-- 提交更改  
      COMMIT;
    • 解释:
    • 系统权限:控制用户对数据库的整体访问,如CREATE SESSION(创建会话)、CREATE TABLE(创建表)等
      对象权限:控制用户对特定数据库对象(如表、视图、序列等)的访问,如SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)等
      如果需要授予多个权限,可以在一个GRANT语句中列出所有权限,或使用多个GRANT语句。
    • 注意事项:
      • 权限最小化原则:为了避免安全风险,建议只授予用户所需的最小权限。
      • 权限撤销:如果需要撤销用户的权限,可以使用REVOKE语句,语法与GRANT相似,但关键字为REVOKE。
      • 权限传递:Oracle还支持权限的传递,即用户A可以将权限授予用户B,用户B又可以将权限授予用户C,但需要注意权限传递的限制和安全性问题。
      • 角色管理:Oracle中的角色是权限的集合,可以将一组权限授予一个角色,然后将角色授予多个用户,从而简化权限管理。

5、Oracle语法之DML操作:表的创建、修改与删除

  • 创建表

    • SQL语法:

    • ​
      CREATE TABLE table_name (column1 datatype [DEFAULT expression] [constraint],column2 datatype [DEFAULT expression] [constraint],...
      );
    • 解释:

    • table_name:表的名称。
      column1, column2, ...:列的名称。
      datatype:列的数据类型,如 VARCHAR2, NUMBER, DATE 等。
      DEFAULT expression:为列指定默认值。
      constraint:为列添加约束,如 PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK 等。
      
    • 数据类型:

    • 1.  字符型(1)CHAR :    固定长度的字符类型,最多存储 2000 个字节(2)VARCHAR2    :可变长度的字符类型,最多存储 4000 个字节(3)LONG :  大文本类型。 最大可以存储 2 个 G
      2.数值型NUMBER :  数值类型例如:NUMBER(5)      最大可以存的数为 99999NUMBER(5,2)    最大可以存的数为 999.99
      3.日期型(1)DATE:日期时间型,精确到秒(2)TIMESTAMP:精确到秒的小数点后 9 位
      4.二进制型(大数据类型)(1)CLOB :  存储字符,最大可以存 4 个 G(2)BLOB:存储图像、声音、  视频等二进制数据,最多可以存 4 个 G
    • 实例:

    • -- 创建 Student 学生表
      CREATE TABLE Student
      (
      s_id VARCHAR(20),
      s_name VARCHAR(20) NOT NULL,
      s_birth VARCHAR(20) NOT NULL,
      s_sex VARCHAR(10) NOT NULL,
      PRIMARY KEY(s_id)
      );-- 创建 Course 课程表
      CREATE TABLE Course
      (
      c_id VARCHAR(20),
      c_name VARCHAR(20) NOT NULL,
      t_id VARCHAR(20) NOT NULL,
      PRIMARY KEY(c_id)
      );
    • 注意:如果需要给表添加注释,需要额外的语句实现
  • 修改表

    • 增加字段

      • 增加字段语法:

      • ALTER TABLE 表名称  ADD(列名1  类型  [DEFAULT  默认值],列名2  类型 [DEFAULT  默认值]...)
      • 示例:

      • -- 我们给学生表中添加身高和体重两个字段
        ALTER TABLE student ADD
        (s_height number,s_weight number
        );
        
    • 修改字段

      • 修改字段语法:

      • ALTER TABLE 表名称 MODIFY(列名1  类型  [DEFAULT  默认值],列名2  类型 [DEFAULT  默认值]...
        );
        
      • 示例:
      • -- 这是修改字段的示例
    • 修改字段名

      • 修改字段名语法:

      • ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名;
      • 示例:

      • -- 这是修改字段名示例
    • 删除字段名

      • 删除字段名语法:

      • -- 删除一个字段
        alter table 表名称 drop column 列名;-- 删除多个字段
        alter table 表名称 drop (列名1, 列名2 ...);
        
      • 示例:

      • -- 这是删除字段名的示例
        ALTER TABLE student DROP
        (s_height,s_weight
        );
        
  • 删除表

    • SQL语法:
    • DROP TABLE 表名;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/44248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue使用 “xlsx-style“: “^0.8.13“ 报错

关于jszip not a constructor报错配置config.js文件后可能还报错的问题: 在node_modules处找到node_modules\xlsx-style\xlsx.js 文件。 将 if(typeof jszip undefined) jszip require(./jszip).JSZip;(应该在xlsx.js文件1339行左右) 替换成 if(typeof jszip und…

高压线束屏蔽效能测试之管中管法、线注入法

一、引言 上期推文介绍了高压线束屏蔽效能测试方法三同轴法,本篇文章将继续介绍高压线束相关测试方法——管中管法和线注入法。 二、管中管法 1、一般要求 管中管法参照IEC62153-4-7标准对高低压连接器进行零部件级屏蔽效能测试。在测试时,通过金属延长管…

3、视图和模板

续上一篇,这一篇 着重于创建公共接口——“视图” 第三部分——3、视图和模板 1、概述2、编写更多视图原理——django依次访问了什么文件 3、写一个真正有用的视图一个快捷函数 render() render——渲染 4、抛出404错误一个快捷函数 get_object_or_404() 5、使用模…

实时数仓和离线数仓的区别是什么,企业该如何选择合适的数仓架构?

目录 一、离线数仓 1. 离线数仓是什么? 2. 离线数仓的特点 3. 离线数仓的适用场景 二、实时数仓 1. 实时数仓是什么? 2. 实时数仓的特点 3. 实时数仓的适用场景 三、由数仓需求变化带来的数据仓库架构的演变 1. 传统数仓架构 2. 离线大数据架构 3. Lambd…

tensorflow之欠拟合与过拟合,正则化缓解

过拟合泛化性弱 欠拟合解决方法: 增加输入特征项 增加网络参数 减少正则化参数 过拟合的解决方法: 数据清洗 增大训练集 采用正则化 增大正则化参数 正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w增加权重,…

点线面推进未来智造

如今,宁波拥有门类齐全的制造业体系,形成了以石油化工、汽车及零部件、电工电器、纺织服装等为支柱的产业集群。 宁波工业的发展并非一蹴而就,蓝卓总经理谭彰详细解读了宁波制造业的发展历程与当下目标,从工业小市到工业大市、工业…

基于Matlab和Python泰勒图的绘制

一、泰勒图介绍 泰勒图:泰勒图1常用于评价模型的精度,常用的精度指标有相关系数,标准差以及均方根误差(RMSE)。一般而言,泰勒图中的散点代表模型,辐射线代表相关系数,横纵轴代表标准差,而虚线代表均方根误差。泰勒图一改以往用散点图这种只能呈现两个指标来表示模型精度…

Python数据结构的库之Fuk使用详解

概要 fuk 是一个用于处理 Python 数据结构的库,全称为 "Fast and Uncomplicated Kit"。它提供了一系列高效、简洁的数据结构实现,以及对 Python 内置数据结构的扩展。通过使用 fuk,开发者可以更加方便地处理列表、集合、字典等数据类型,提高代码的执行效率和可读…

vite+vue3拍照上传到nodejs服务器

一:效果展示: 拍照效果 二:Nodejs后端接口代码: 三:前端完整代码:

Vue基础--v-model/v-for/事件属性/侦听器

目录 一 v-model表单元素 1.1 v-model绑定文本域的value 1.1.1 lazy属性:光标离开再发请求 1.1.2 number属性:如果能转成number就会转成numer类型 1.1.3 trim属性:去文本域输入的前后空格 1.2v-model绑定单选checkbox 1.3代码展示 二 …

esp8266+micropython+irsend红外发射调试记录

在网上搜索esp8266micropython的红外发射库,没找到,发现 接收库是有的,可以参考:基于MicroPython的ESP8266连接外设IO(二)_micropython 红外接收-CSDN博客 可惜没有发射,很不方便。 这里都有介…

PHP财务记账管理系统小程序源码

理财小能手必备!揭秘财务记账管理系统的魔力✨ 🌟 引入篇:告别糊涂账,拥抱财务自由 你是否曾为月底的账单头疼不已?是否觉得自己的钱总是莫名其妙地消失?别担心,财务记账管理系统来拯救你的钱…

【机器学习】必会数学知识:一文掌握数据科学核心数学知识点(下),收藏~

核心数学知识点 1、引言2、数据科学必会数学知识2.13 K均值聚类2.14 决策树2.15 随机森林2.16 梯度下降2.17 随机梯度下降(SGD)2.18 卷积2.19 拉普拉斯变换2.20 傅里叶变换2.21 信息论2.22 时间序列分析2.23 生成模型与判别模型2.24 支持向量机&#xff…

基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui

背景和意义 随着互联网和数字媒体行业的快速发展,视频网站作为重要的内容传播平台之一,用户量和内容丰富度呈现爆发式增长。本研究旨在设计并实现一种基于Python的哔哩哔哩数据分析系统,采用Flask框架、MySQL数据库以及echarts数据可视化技术…

NSObject‘s MetaClass 的 super_class 指向谁 ?

在 Objective-C 运行时系统中,NSObject 是所有类的根类。为了理解 NSObject 的元类(MetaClass)以及它的 super_class 指针指向谁,我们需要理解元类的继承关系。 类和元类的关系 每个类对象都有一个 isa 指针,指向其元…

46、lvs集群- 博客

1、lvs集群: lvs:linux virtual server----章文嵩发起的开源项目,阿里。linux的内核层面实现负载均衡的软件。 主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过负载均衡的算法将客户端的…

基于cmake为项目自动获取git分支tag的版本号和commitid

目录 1. 引言2. 实现过程2.1 工程目录规划2.2 c程序文件2.3 CMakeLists.txt2.4 GitVersion.cmake文件2.5 BuildNumber.cmake文件1. 引言 在项目构建的时候,我们经常会希望能够将git提交的分支信息和提交号(commitid)以及当前版本发布的tag信息作为版本号自动构建到程序里面,以…

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…

通过git将文件push到github 远程仓库

1.先git clone 代码地址 git clone htttp://github.com/用户名/test.git 2. 添加文件 例如:touch 1.txt 3.将文件添加到暂存区 git add 1.txt 4.提交 git commit -m "commit 1.txt" 5.与远程仓库建立关联 git remote add 远程仓库名 远程仓库…

LLM 研究方向(一): LLM Prompts--p-tuning、LoRA

目录 1. prompt-tuning background 2. Prompt Tuning 模型介绍 2.1 2021 prefix-tuning 2.2 2021 P-tuning v1 2.3 2021 Parameter-efficient prompt tuning (PET) 2.4 2022 P-tuning v2 2.5 2019 Adapter ​2.6 2021 LoRA (Low-Rank Adaptation) 2.7 2024 DoRA (…