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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章