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://xiahunao.cn/news/3225775.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

CSDN回顾与前行:我的创作之旅——2048天的技术成长与感悟

CSDN回顾与前行:我的创作之旅——2048天的技术成长与感悟 💖The Begin💖点点关注,收藏不迷路💖 前言 时光荏苒,岁月如梭。转眼间,从我在CSDN上写下第一篇技术博客《2-6 带头结点的链式表操作集…

从头开始学习扩散模型 Stable Diffusion

今天我们来揭开 Stable Diffusion 技术的神秘面纱。 1.稳定扩散原理 Stable Diffusion 在2022年发表,一种基于Latent Diffusion Models的新兴机器学习技术。它基于扩散过程,利用数学模型将机器学习中的高维度数据降低到低维度空间,并在该空间…

安卓 无线投屏 sink端 RTSP报 “505 RTSP Version not supported“

最近做安卓无线投屏的sink端,自己手搓RTSP协议,自己手搓容易出错,然后报了上面505,这个RTSP文档的意思是版本不一致,但是出现 "505 RTSP Version not supported"不一定是版本不一致,可能是 消息错…

AI究竟是在帮助开发者还是取代他们?来看大佬的观点你就明白了

AI(人工智能)在现代社会中扮演着越来越重要的角色,其在软件开发领域的应用也日益广泛。关于AI是在帮助开发者还是取代他们,V 哥个人认为,一半一半吧,为什么这么说,先不用噴,我们需要…

一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目

大家好,今天给大家分享一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目Wails。 Wails是一个允许开发者使用Go和Web技术编写桌面应用程序的项目。 它被设计为Go的快速且轻量的Electron替代品,旨在提供一个平台,让开发者可以利用Go…

excel PivotTable 透视表

开发数据导出excel功能,设置导出透视表 数据源: 透视表: 使用插件EPPlus 数据源: IF OBJECT_ID(tempdb..#temptable) IS NOT NULLDROP TABLE #temptable; CREATE TABLE #temptable ( [PROJECT] varchar(50), [PRODUCT_CODE] var…

Java NIO合并多个文件

NIO API java.nio (Java Platform SE 8 ) 直接上代码 package com.phil.aoplog.util;import lombok.extern.slf4j.Slf4j;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel;Slf4j public…

深入剖析C++的 “属性“(Attribute specifier sequence)

引言 在阅读开源项目源代码是,发现了一个有趣且特殊的C特性:属性。 属性(attribute specifier sequences)是在C11标准引入的。在C11之前,编译器特有的扩展被广泛用来提供额外的代码信息。例如,GNU编译器&…

无菌隔离器内操作规范性的验证之气流流型验证-北京中邦兴业

无菌隔离器在制药行业的使用愈加广泛,但已有的研究更多地聚焦于设计布局、物料状态等方面,对人员操作因素的影响方面关注较少。以冻干制剂生产车间为例,设计了一系列合理的无菌隔离器内干预操作,并在操作人员实行干预操作的基础上…

面试题 21:解释 Python 中的 help() 函数和 dir() 函数?

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

8.6结构体函数参数

代码 #include <iostream> using namespace std; #include <string>//结构体函数参数//定义学生结构体 struct student {string name;int age;int score; };//打印学生信息的函数 //1、值传递 void printStudent1(struct student s) {cout << "子函数1…

如何查看GD32 Keil和IAR工程的map文件

我们在设计调试程序时&#xff0c;往往需要知道一个函数或一个变量它在MCU中具体所在的地址以及所占用的空间大小&#xff0c;这时候就需要查看map文件。 那么什么是map文件呢&#xff1f;map文件是编译器编译工程后生成的一个文件&#xff0c;文件会有很多信息&#xff0c;比…

小米恢复联系人,跟着这2个步骤,让你的社交重回巅峰

当你突然发现小米手机里的联系人列表变得空空如也&#xff0c;是不是感觉就像失去了与外界沟通的“秘密武器”&#xff1f;别担心&#xff0c;这并不意味着你真的失去了他们。他们可能只是藏在了手机里的某个神秘角落&#xff0c;等待着你的召唤。接下来&#xff0c;小编将会介…

连续6年夺冠 6项细分领域第一,中电金信持续领跑中国银行业IT解决方案市场

7月9日&#xff0c;工信部赛迪顾问发布《2023年度中国银行业IT解决方案市场分析报告》&#xff08;简称《报告》&#xff09;。中电金信以7.38%的市场份额再度蝉联2023中国银行业IT解决方案市场份额第一&#xff0c;以显著优势持续领跑中国银行业IT解决方案市场。在细分领域&am…

园区电表4G/Lora远程无线通讯-安科瑞自助缴费系统

项目案例&#xff1a;张江高科产业园 背景 上海张江高科技园区自1992年成立以来&#xff0c;经过近二十年的开发&#xff0c; 园区构筑了生物医药创新链&#xff0c;集成电路产业链和软件产业链的框架。园区建有国家上海生物医药科技产业基地、国家信息产业基地、国家集成电路…

[leetcode] car-pooling 拼车

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool carPooling(vector<vector<int>>& trips, int capacity) {int to_max 0;for (const auto& trip: trips) {to_max max(to_max, trip[2]);}vector<int> diff(to_max 1);for…

CentOS 设置手动同步指定NTP时钟服务器

1. 文件上传至服务器 2.进入文件路径 3.查看文件名称 4.安装rpm包 注意执行顺序 1&#xff0c;3&#xff0c;2 5.启动ntp并设置开机自启 6.配置ntp配置文件 修改为时间服务器ip&#xff08;同时要删除或注释掉其他三个server开头的外网的配置&#xff0c;防止因为外网不通导致…

电脑怎样连接打印机?详细步骤告诉你!

在现代办公环境中&#xff0c;打印机是必不可少的设备之一。无论是打印文档、图片还是其他资料&#xff0c;连接打印机都是我们日常工作中的基本操作。然而&#xff0c;不同类型的打印机和连接方式可能会让人感到困惑。本文将介绍电脑怎样连接打印机的3种方法&#xff0c;帮助您…

捷配笔记-如何设计PCB板布线满足生产标准?

PCB板布线是铺设连接各种设备与通电信号的路径的过程。PCB板布线是铺设连接各种设备与通电信号的路径的过程。 在PCB设计中&#xff0c;布线是完成产品设计的重要步骤。可以说&#xff0c;之前的准备工作已经为它做好了。在整个PCB设计中&#xff0c;布线设计过程具有最高的极限…