Oracle基础知识

3 篇文章 0 订阅
3 篇文章 0 订阅

Oracle简介

一.Oracle服务器
  • 是一个数据管理系统(RDBMS),他提供开放的,全面的,近乎完整的信息管理
  • 由一个oracle数据库和多个oracle实例组成

Oracle数据库的主要特点如下

  1. 支持多用户,大事务量的事务处理
  2. 在保持数据安全性和完整性方面性能优越
  3. 支持分布式数据处理,将分布在不同物理位置的数据用通信网络连接起来,在分布式数据
  4. 库管理系统的控制下,组成一个逻辑上统一的数据库,完成数据处理任务
  5. 具有可移植性。Oracle可以在Windows,Linux等多个操作系统平台上使用,可以在不同
  6. 操作系统间移植数据库。而SQL Server只能在Windows 平台上运行
二.Oracle基本概念
1.数据库和实例
  1. 数据库是一-堆磁盘文件(数据文件、日志文件、控制文件、临时文件)
  2. 实例是数据库服务运行时os中的进程+内存区
  3. 数据库和实例的关系,类似于oop中的类和对象的关系
2.全局数据库名

全局数据库名是用于区分一个数据库的标识,在安装数据库,在创建新数据库,创建控制文件,修改数据库结构,利用RMAN备份时都需要使用.

  1. 用于集群(多实例)的时候。
3.数据库实例名 (又叫Instance_Name丶SID)

每个启动的数据库都对应一个数据库实例,由这个实例来访问数据库中的数据,简单的理解为硬盘上的文件,具有永久性,则数据库实例就是通过内存共享运行状态的一组服务器后台进程

  1. 一般老版本使用SID
  2. 一般情况下,和数据库名一样,集群模式(RAC)模式下可能不同
4.数据库服务名(Service_Name)

一般情况下,和数据库名一样。对于同- -个数据库,可以配置多个服务名供外界访问。

一般新版本使用服务器名

5.模式(Schema)和对象用户

所有的对象都属于某个Schema(用户)

6.表空间
  1. 逻辑上,数据属于某个表
  2. 物理.上,数据存放在磁盘的某个文件中,哪个表空间的哪个数据文件
  3. 一个数据库可以有1到N个表空间。普通用户的表默认放在USERS表空间
  4. 一个表空间可以由1到N个表文件(DBF) 组成。
  5. 一个表空间可以放1到N个表。
三.Oracle数据类型

在这里插入图片描述

四.SQL语言简介
  1. DDL(Data Definition Language)数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用DDL,我们可以创建,删除和修改数据库和表结构。
  2. DML(Data Manipulation
    Language)数据操作语言,我们用它操作和数据库相关的记录,如增加、删除、修改数据表中的记录。
  3. DCL(Data Control Language)数据控制语言,我们用它来定义访问极限和安全级别。
  4. DQL(Data Query Language)数据查询语言,我们用它查询想要的记录,它是SQL语言的

在这里插入图片描述
表信息:
在这里插入图片描述
创建表:

CREATE TABLE employee
	(	empno NUMBER(4) NOT NULL,
		ename VARCHAR2(10),
		job VARCHAR2(9),
		mgr NUMBER(4),
		hiredate DATE,
		sal NUMBER(7,2),
		comm NUMBER(7,2),
		depthon NUMBER(2)
	);

插入数据:

-- 	利用 SCOTT.EMP的数据插入到employee表
	INSERT INTO employee 
	 SELECT * from SCOTT.EMP;

追加两列和删除两列:

-- 创建两个列
ALTER TABLE employee
ADD (empTel_no VARCHAR2(12),
		empAddress VARCHAR2(20));
-- 		删除两个列
ALTER TABLE employee DROP (empTel_no,empAddress)

创建临时表,分页,删除临时表:

-- 创建临时表
create table temp as 
SELECT *
  FROM (SELECT  * FROM employee  ORDER BY SAL DESC);
 
--  查询分页
SELECT *
  FROM (SELECT ROWNUM r, a.* FROM temp a WHERE ROWNUM < 10 ORDER BY SAL DESC)
 WHERE r >= 5;
--  删除临时表
DROP TABLE temp;

使用 DENSE_RANK()函数:

-- 查询每个部门薪水第二高的员工信息
SELECT * 
FROM 
(SELECT employee.* ,
        DENSE_RANK() OVER (PARTITION BY depthon ORDER BY sal DESC) "DENSE_RANK"
 FROM employee) 
WHERE DENSE_RANK=2;

使用ROUND函数,四舍五入和TO_CHAR转换字符串功能

-- 查询入职年份
SELECT ename "姓名" ,TO_CHAR(ROUND(hiredate,'yyyy'),'YYYY')||'年度' "入职年度"
  FROM employee

(DISTINCT) 不重复显示:

-- 内容全部相同行,只保留一行
SELECT DISTINCT depthon
  FROM employee;
五.SQL函数

1.转换函数

  1. TO_CHAR(date/number,‘format’):按照指定格式format将number或date类型转换为字符串。9代表一个数字,0强制显示0,¥货币符号,L本地货币符号,.小数点,,千分号。
  2. TO_NUMBER(char):将包含了数字的字符串转换为number格式。
  3. TO_DATE(string,‘format’):按照format格式将string转换为日期格式。format的格式:YYYY,YY,MONTH,MON,MM,DAY,DD,HH,MI,SS。

2.分析函数
4. row_number() row_number可以通过over 根据某字段排序完之后进行组内(如果有partition by)排序。
5. rank() rank()是排名的函数,该函数组内排序后会进行跳号,分数相同的作为并列。
6. dense_rank() dense_rank()该函数不会跳号,分数相同为并列第一,下一个是第二

3.其他函数

  1. 单行函数

  2. 聚会函数

  3. 分组函数
    在这里插入图片描述


点击查看 Oracle 表空间,序列,索引,分区表的应用.~~~~~~~~~~~

点击查看 Navicat连接Oracle数据库的操作跟错误详解~~~~~~~~~

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值