Oracle数据库

这篇具有很好参考价值的文章主要介绍了Oracle数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ⅰ 数据库

  ①层次型数据库
  ②网状型数据库
  ③关系型数据库(主要介绍)

E-R图:属性(椭圆形),实体(矩形),联系(菱形-一对一、一对多、多对多)
注:有的联系也有属性

关系型数据库的设计范式:

  第一范式(1NF):属性不可再分,字段保证原子性
  第二范式(2NF):在满足1NF的基础上,要求表中的每条记录必须被唯一的区分
  第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

Oracle数据库:
  三大概念:实例、数据库、数据库服务器
  实例:指一组Oracle后台进程以及在服务器中分配的共享内存区域;
  数据库:由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合;
  数据库服务器:指管理数据库的各种软件工具(比如,sqlplus、OEM等)和实例及数据库三个部分。
  实例与数据库两者联系:实例用于管理和控制数据库,而数据库为实例提供数据;
一个数据库可以被多个实例装载和打开,而一个实例在其生存期内只能装载和打开一个数据库。

Oracle数据库的逻辑存储结构  

     Oracle数据库

 

Ⅱ 表空间管理

  一)创建表空间

   语法:

  create [smallfile小文件 | bigfile大文件表空间] tablespace 表空间名 datafile 存放路径 size ***k/m reuse -【options】-如下
  本地化管理方式:extent management local [autoallocal自栋扩展 |uniform size **k/m 等同大小进行]
  自动扩展:autoextent [on | off] next **k/m  ##若自动,则设置next的值
  在线/离线:online | offline
  永久/临时表空间:permanent | temporary
  是否产生日志:logging | nologging  ##默认产生
  //代码示例//
  --查询表空间
  select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name; 

  --创建表空间   
create tablespace tbs_test1 datafile 'D:\oracle_service\oracle_tablespace\tbs_test1.DBF' size 10m reuse   extent management local autoallocate;   select * from v$datafile;
  --重命名   
alter tablespace tbs_test rename to tbs_test1;
  --查询数据文件   
select tablespace_name,file_name,bytes,autoextensible from DBA_DATA_FILES;
  --添加数据文件   
alter tablespace tbs_test1 add datafile 'D:\oracle_service\oracle_tablespace\tbs_test2.DBF' size 10M reuse   autoextend on next 2m maxsize unlimited;

  --删除数据文件   
alter tablespace tbs_test1 drop datafile 'D:\oracle_service\oracle_tablespace\tbs_test2.DBF';

  --修改数据文件为自动扩展   
alter database datafile 'D:\oracle_service\oracle_tablespace\tbs_test1.DBF' autoextend on next 2m maxsize unlimited;

  二)撤销表空间

  create undo tablespace avatar_undo datafile ..
  alter system set undo_tablespace=avatar_undo

  作用:使读写一致、可回退事务、事务恢复、闪回操作

  参数:
    undo_tablespace
    undo_management
    undo_retention

  三)临时表空间:(磁盘空间)

  create temporary tablespace tablespace_name datafile ..

Ⅲ Oracle用户管理

 一)【用户】

  查询用户

  select * from dba_users;
  select * from all_users;
  select * from user_users;

  创建一个用户peppa,密码peppa,默认表空间

  create user peppa identified by peppa;

  创建用户yclhj,密码yclhj,表空间为users表空间

  create user yclhj identified by yclhj default tablespace users;

  查询系统权限和对象权限【权限】

  select * from system_privilege_map;
  select * from table_privilege_map;

  查看角色【角色】

  select * from dba_roles;

  直接给peppa用户授予登录权限create session

  grant create session,alter session to peppa with admin option;

  通过角色来添加用户权限

  grant connect,resource to peppa;
  grant connect,resource to yclhj; 

 二)【用户与角色】

  用户拥有的角色

  select * from dba_role_privs;
  select * from user_role_privs;
  select * from role_role_privs;

 三)【用户与权限】

  用户拥有的系统权限:

  select * from dba_sys_privs;
  select * from user_sys_privs;

  用户拥有的对象权限:

  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;
  select * from dba_col_privs;
  select * from all_col_privs;
  select * from user_col_privs;

Ⅳ SQL语句

  1)DML语句(数据操作语言)

    Insert / Update / Delete/merge

  2)DDL语句(数据定义语言)

    Create / Alter / Drop / Truncate(删除数据立即生效)

  3)DCL语句(数据控制语言)

    Grant(赋于权限 ) / Revoke(回收权限 )

  4)事务控制语句

    Commit / Rollback / Savepoint

  5)查询语句

    简单查询 / 条件查询 / 连接查询

  6)约束

    NOT NULL 约束:确保某列不能有 NULL 值。
    DEFAULT 约束:当某列没有指定值时,为该列提供默认值。
    UNIQUE 约束:确保某列中的所有值是不同的。
    PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
    CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

  7)单行函数

    使用语法:
      函数名称(操作的列 | 具体的数值 [,若干参数])
    1.字符串函数

  大小写转换:UPPER()、LOWER()
  首字母大写:INITCAP()
  替换:REPLACE()
  长度:LENGTH()、
  截取:①SUBSTR(str,index)     ②SUBSTR(strbegin,size)
  连接:CONTACT()

    2.数值函数

  round()函数: 表示的是四舍五入,而且是带小数点的
  trunc()函数: 直接截取,不再进行四舍五入了('+'是指小数点后,'-'是指小数点前,表示一个方向)
  mod()取余

    3.转换函数

  TO_CHAR() #转换为字符串
  TO_DATE() #转换为日期形式
  TO_NUMBER() #转换为数字型

    4.日期函数
    当前系统时间:【sysdate】

  SELECT SYSDATE FROM dual;

    三大计算公式:
    日期 – 数字 = 日期;
    日期 + 数字 = 日期;
    日期 – 日期 = 数字(天数)

  MONTHS_BETWEEN(日期1,日期2):求出两个日期之间的月数;
  ADD_MONTHS():求出几个月之后的日期;
  NEXT_DAY():求出下一个的今天;
  LAST_DAY():求出给定日期的最后一天。

    5.聚合函数

  COUNT():统计数据量;
  SUM():求和;
  AVG():求平均;
  MAX():最大值;
  MIN():最小值; 

    6.通用函数

  ①nvl(): 如果第一个参数为空,就取第二个参数的值,如果不为空就去第一个参数的值
  ②decode() : 多条件判断
    语法:

    DECODE(列 | 值,判断条件1,输出结果1,判断条件2,输出结果2,.....)

  8)子查询

  SQL执行的顺序

    1.FROM先确定从哪个表中获取数据
    2.WHERE对条件加以限定
    3.GROUP BY ...HAVING
    4.聚合函数
    5.SELECT字段筛选
    6.ORDERBY

  语法:

  SELECT 查询的字段,(
    SELECT 查询的字段
    FROM 表名称1 别名,表名称2 别名,....
    [WHERE 条件(s)]
    [GROUP BY 分组字段]
    [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ;
  )
  FROM 表名称1 别名,表名称2 别名,.... (
    SELECT 查询的字段
    FROM 表名称1 别名,表名称2 别名,....
    [WHERE 条件(s)]
    [GROUP BY 分组字段]
    [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ;
  )
  [WHERE 条件(s) (
    SELECT 查询的字段
    FROM 表名称1 别名,表名称2 别名,....
    [WHERE 条件(s)]
    [GROUP BY 分组字段]
    [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ;
   )]
  [GROUP BY 分组字段]
  [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ;

  9)分页查询

  rowid:代表该条记录的物理地址
  rownum :为生成的数据的编号,使用分页需要使用到rownum

  select * from emp order by sal;
  select rowid,rownum,emp.* from emp;
  示例:
  --
每页显示3条记录,查询第一页   select * from emp where rownum<=3;   --查询第二页记录   select * from emp where rownum>3 and rownum <=6; --rownum>*不存在,条件满足不了   --解决问题:使用子查询先生成rownum,然后再基于生成的rownum进行分页   select empno,ename,sal,comm,job   from (select rownum a,empno,ename,sal,comm,job from emp)r   where r.a>3 and r.a<=6;   --按照sal排序   --正确顺序:先排序,再生成rownum   select rownum,empno,ename,sal,comm,job   from (select empno,ename,sal,comm,job from emp order by sal);   --完整语句   select empno,ename,job,sal,comm
  from (select rownum r,empno,ename,job,sal,comm
      from (select empno,ename,job,sal,comm from emp order by sal))   where r>3 and r<=6;

 

 

 

 文章来源地址https://www.toymoban.com/news/detail-710703.html

 

到了这里,关于Oracle数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】日常使用PL/SQL 登录ORACLE 数据库查询数据

    一、PL/SQL 登录方式 username: ##访问数据库的账号 password: ##访问数据库的密码 Databse: ##数据库IP地址/实例名 数据库集群心跳地址/实例名 Connect as : ##Normal,如果使用sysdba账户登录选择SYSDBA 二、PL/SQL使用SQL语句查询 点击上方导航栏,New,选择SQL Window,即可再次输入要查询的

    2024年02月19日
    浏览(70)
  • 【Oracle】收集Oracle数据库内存相关的信息

    【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) Oracle数据库包含多个内存区域,每个区域都包含多个子组件。 Oracle Database Memory Structures 根据具体问题的需要,可以通过如下命令收集Oracle数据库内存相关的信息。 例: 注:SET

    2024年01月21日
    浏览(70)
  • Oracle数据库面试题 精选 Oracle 面试题

    1.解释冷备份和热备份的不同点以及各自的优点 冷备份 发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法。适用于所有模式的数据库。 优点 1. 是非常快速的备份方法(只需拷贝文件) 2. 容易归档(简单拷贝即可) 3. 容易恢复到某个时间点上(只

    2024年02月05日
    浏览(104)
  • ORACLE数据库 开窗函数

    开窗函数 2.1开窗函数的定义及语法 开窗函数(又名:分析函数,窗口函数,OLAP函数) 聚合函数:将数据按照一定的规则分组,统一分析各组的某项情况,每个分组返回一行结果 开窗函数:将数据按照一定的规则分组,统一分析各组的某项情况,每行数据返回一行结果 (

    2024年02月11日
    浏览(50)
  • Oracle大型数据库技术

    sqlplus 记录实验过程的方法: 开启相关服务 oracleserviceORCL 控制面板–管理–服务–找到后开启 命令行方法: cmd–net start|stop oracleserviceorcl 常用操作 显示当前用户名 常用的用户名和口令 :dba用户,默认口令:change_on_install,Oraclell,必须以sysdba或者sysoper身份登录 system: 普通管

    2024年02月19日
    浏览(51)
  • 快速监控 Oracle 数据库

    Oracle 数据库在行业内应用广泛,通常存放的非常重要的数据,监控是必不可少的,本文使用 Cprobe 采集 Oracle 监控数据,极致简单,分享给大家。 安装配置 Oracle 简单起见,我使用 Docker 启动 Oracle,命令如下: 如上命令启动之后,Oracle 的监听端口是 1521,用户名/密码是 syst

    2024年01月20日
    浏览(51)
  • Oracle数据库概念简介

    一般意义上的数据库包含两个部分 库:就是一个存储一堆文件的文件目录 数据库管理系统:管理库的系统 数据库管理系统(Database Management System),是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS ; 它对数据库进行统一的管理和控制,以保证数

    2024年02月09日
    浏览(51)
  • oracle数据库巡检脚本

    用于Oracle数据库巡检的示例脚本: 

    2024年02月14日
    浏览(63)
  • 数据库(二) Oracle篇

    概述 SQL函数有单行函数和多行函数,其区别为: 单行:输入一行,返回一行,如字符、数字、转换、通用函数等 多行:输入多行,返回一行,也称为分组函数、组函数、聚合函数, 且多行函数会自动滤空 字符函数 CONCAT( X,Y): 连接字符串X和Y INSTR(X,STR) : 后面STR在前面字符串X第一次

    2024年02月10日
    浏览(56)
  • Oracle数据库完整卸载

    进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止。 快捷键:ctrl+shift+esc打开任务管理器 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 单击“卸载产品”,选中除“Or

    2024年01月16日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包