JavaEE學習日誌(九十九): oracle體系結構,oracle操作表空間,操作用戶,操作表

JavaEE學習日誌持續更新----> 必看!JavaEE學習路線(文章總彙)

oracle

oracle介紹

關係型數據庫,端口號:1521

優點:大型數據庫,效率高,安全(最大的特點)
缺點:收費

體系結構

1、數據庫:oracle只要一個數據庫。
2、實例:後臺運行的一個進程,一個庫可以有多個實例,但一般只有一個實例。
3、表空間:邏輯存儲單位,如cdef盤,就是邏輯分區。一個實例可以有多個表空間。
4、數據文件:物理存儲單位,就是物理存儲單位。一個表空間可以對應一個或多個數據文件。
5、用戶:oracle面向用戶管理,由用戶管理表空間,用戶向表空間添加數據,最終存儲到數據文件中。多個用戶管理一個表空間。

sys和system

  • sys:超級管理員,可以修改數據的靜態表
  • system:管理員,日常操作:用戶管理,表的管理,其他對象的管理

表空間

一、表空間的創建

create tablespace  表空間名稱
datafile '路徑/數據文件名稱.dbf或.ora'
size 200M --指定數據文件的存儲大小
autoextend on --開啓自動擴展 /off關閉
next 20M;  --每次的增長量

路徑:oracle服務所在電腦的的路徑
tabelspace:表空間關鍵字

示例

create tablespace itheima_331
datafile 'c:/itheima_331.dbf'
size 200M -- 指定數據文件的存儲大小
autoextend on -- 開啓自動擴展 /off關閉
next 20M;  -- 每次的增長量

二、刪除表空間

只能刪除邏輯單位,不能刪除物理單位

drop tablespace 表空間名; --只能刪除邏輯單位,不能刪除物理單位

要刪除邏輯單位和物理單位(需要慎重使用

drop tablespace 表空間名 including contents and datafiles;

用戶和權限

一、用戶的創建:新創建的用戶沒有任何的權限

create user 用戶名 identified  by 密碼 default tablespace 表空間名稱;

此時登錄時,會提示登錄失敗,沒有任何權限

二、權限管理

  • 賦予權限grant 權限列表 to 用戶列表;

  • 回收權限revoke 權限列表 from 用戶列表;

權限的分類
1、對象權限:對某用戶賦予某表的查詢操作,或刪除操作
2、系統權限:創建表,修改表,創建視圖的權限
3、角色權限:

  • 基礎權限:connect:create session
  • 開發人員權限:resource:創建表(包括對錶的操作),創建序列,創建存儲過程
  • dba權限:dba,接近於system

查詢當前用戶的所有權限

-- 查詢當前用戶所有的權限
select * from session_privs;

賦予權限

--賦予權限
grant connect to itheima_331;
grant resource to itheima_331;

回收權限

-- 回收權限
revoke resource from itheima_331;

三、修改用戶

修改用戶的密碼

alter user 用戶名 identified by 密碼

表的管理

一、數據類型

  • . 字符串類型
    varchar2:由oracle定義,承諾向後兼容
    varchar:可變長度字符串,最大長度:4000
    char:固定長度字符串,最大長度:4000
  • 數值類型
    number:整數類型,相當於mysql中的int
    number(m,n):浮點數類型,m:總位數,n:小數點後的位數
  • 日期類型
    date:與mysql的datetime類型一樣
    timestamp:時間戳類型,精確度非常高,精確到秒後的9位
  • 大數據類型:指數據的存儲量較大
    clob:字符大數據類型,最大存儲量4G
    blob:字節大數據類型,主要存儲視頻、音頻、圖片,最大存儲量4G(幾乎不用)

創建表和修改表

創建表

create table 表名(
	列名 類型 約束
)
create table customer(
       custId number,
       custName varchar2(20)
)

添加列

alter table 表名 add 列名 類型;
alter table customer add address varchar2(20);

修改列屬性

alter table 表名 modify 列名 類型 約束;
alter table customer modify address varchar2(200);

刪除列

alter table 表名 drop column 列名;
alter table customer drop column address;

修改列名

alter table 表名 rename column 原列名 to 新列名;
alter table customer rename column custName to cname;

約束

六大約束
非空:不能爲空
唯一:不能重複
默認:沒有指定,使用默認值
主鍵:唯一非空
外鍵:與表的關聯
檢查:檢查數據

注意:自增不是約束,且oracle沒有自增

create table customer(
       custId number,
       primary key(custId),
       custName varchar2(20) not null,
       address varchar2(40) unique,
       age number default 18 check(age between 1 and 150),
       sex char(2) check(sex in('男','女'))
)

如果添加數據時違反了什麼約束,可以將約束的name和報錯的屬性進行比對,看違反了什麼約束
可在這裏查看
在這裏插入圖片描述

sql語句的分類

DCL:數據庫控制語言:grant,revoke
DQL:數據庫查詢語言:select
DML:數據庫操作語言:insert,update,delete
DDL:數據庫定義語言:create,drop,alter

DML語句:和mysql一樣

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