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一樣