小型資料庫:access、foxbase
中型資料庫:mysql、sql server、informix
大型資料庫:sybase、oracle、db2(負載:sybase < oracle < db2)
使用哪種資料庫考慮因素:
安裝過程不描述,網上有教程。
oracle 安裝會自動的生成 sys 使用者和 system 使用者:
sys 使用者是超級使用者,具有最高許可權,具有 sysdba 角色,有 create database的許可權,該使用者預設的密碼是 change_on_install ;
system 使用者是管理操作員,許可權也很大。具有 sysoper 角色,沒有 create database 的許可權,預設的密碼是 manager ;
一般而言,對資料庫維護使用 system 使用者登入就可以了。
這兩個使用者最大的區別在於有沒有 create database 許可權。
sql * plus 的常用命令 :
連線命令
1. conn[ect]
用法:conn 使用者名稱/密碼@網路服務名[as sysdba/sysoper]
當用特權使用者身份連線時,必須帶上 as sysdba 或是 as sysoper。
2. disc[onnect]
說明: 該命令用來斷開與當前資料庫的連線 。
3. passw[ord]
說明: 該命令用於修改使用者的密碼,如果要想修改其它使用者的密碼,需要用 sys/system 登入。
4. show user
說明: 顯示當前使用者名稱
5. exit
說明: 該命令會斷開與資料庫的連線,同時會退出 sql * plus
檔案操作命令
1. start 和 @
說明: 執行 sql 指令碼
案例: sql>@ d:\a.sql 或是 sql>start d:\a.sql
2. edit
說明: 該命令可以編輯指定的sql指令碼
案例: sql>edit d:\a.sql,這樣會把 d:\a.sql 這個檔案開啟
3. spool
說明: 該命令可以將sql*plus螢幕上的內容輸出到指定檔案中去。
案例: sql>spool d:\b.sql 並輸入 sql>spool off
互動式命令
1. &
說明:可以替代變數,而該變數在執行時,需要使用者輸入。
select * from emp where job='&job';
2. edit
案例:sql>edit d:\a.sql
3. spool
說明:該命令可以將 sql * plus 螢幕上的內容輸出到指定檔案中去。
spool d:\b.sql 並輸入 spool off
顯示和設定環境變數
1. linesize
說明:設定顯示行的寬度,預設是80個字元
show linesize
set linesize 90
2. pagesize 說明:設定每頁顯示的行數目,預設是14,用法和 linesize 一樣,其它環境引數的使用也是大同小異。
oracle 使用者的管理
使用者名稱scott,密碼預設 tiger,預設狀態是被鎖定, dba 使用者執行
alter user scott account unlock; 可以解鎖登陸;
scott 是個演示使用者,學習用的;
建立使用者
概述:在 oracle中 要建立乙個新的使用者使用 create user 語句,一般是具有 dba (資料庫管理員)的許可權才能使用。
create user 使用者名稱 identified by 密碼;
(oracle密碼必須以字母開頭,否則不會建立使用者)
給使用者修改密碼
概述:如果給自己修改密碼可以直接使用
password 使用者名稱
如果給別人修改密碼則需要具有dba的許可權,或是擁有alter user的系統許可權
sql> alter user 使用者名稱 identified by 新密碼
刪除使用者
概述:一般以dba的身份去刪除某個使用者,如果用其它使用者去刪除使用者則需要具有drop user的許可權。
比如 drop user 使用者名稱 【cascade】
在刪除使用者時,注意: 如果要刪除的使用者,已經建立了表,那麼就需要在刪除的時候帶乙個引數cascade;
使用者管理的綜合案例
概述:建立的新使用者是沒有任何許可權的,甚至連登陸的資料庫的許可權都沒有,需要為其指定相應的許可權。
給乙個使用者賦許可權使用命令 grant,**許可權使用命令 revoke。
舉例:
sql>conn stephen/stephen123;
error:
ora-01045: user stephen lacks create session privilege;
logon denied
警告: 您不再連線到 oracle。
sql> show user;
user 為 ""
sql> conn system/p;
已連線。
sql> grant connect to stephen;
授權成功。
sql> conn stephen/stephen123;
已連線。
注意:grant connect to stephen 準確的講,connect不是許可權,而是角色。
物件許可權
現在要做這麼件事情:
* 希望 stephen 使用者可以去查詢 emp 表
* 希望 stephen 使用者可以去查詢 scott 的 emp 表
grant select on scott.emp to stephen
* 希望 stephen 使用者可以去修改 scott 的 emp 表
grant update on scott.emp to stephen
* 希望 stephen 使用者可以去修改、刪除、查詢、新增 scott 的 emp 表
grant all on scott.emp to stephen
* scott希望收回 stephen 對 emp 表的查詢許可權
revoke select on emp from stephen
許可權的維護
* 希望 stephen 使用者可以去查詢 scott 的 emp 表,還希望 stephen 可以把這個許可權繼續給別人。
--如果是物件許可權,就加入 with grant option
grant select on emp to stephen with grant option
操作過程:
sql> conn scott/tiger;
已連線。
sql> grant select on scott.emp to stephen with grant option;
授權成功。
sql> conn system/p;
已連線。
sql> create user bobi identified by bobi123;
使用者已建立。
sql> grant connect to bobi;
授權成功。
sql> conn stephen/stephen123;
已連線。
sql> grant select on scott.emp to bobi;
授權成功。
--如果是系統許可權。
system 給 stephen 許可權時:
grant connect to stephen with admin option;
如果 scott 把 stephen 對 emp 表的查詢許可權**,那麼 bobi 會怎樣? 被**。
操作過程:
sql> conn scott/tiger;
已連線。
sql> revoke select on emp from stephen;
撤銷成功。
sql> conn bobi/bobi123;
已連線。
sql> select * from scott.emp;
select * from scott.emp
第 1 行出現錯誤:
ora-00942: 表或檢視不存在
結果顯示:bobi 受到牽連。
今天就複習到這,後續更新。
oracle學習筆記 一
oralce 開發 1,自增長序列 方法一 建表,建序列 create table mytable id number primary key,name char 14 char 2 check 1 or 0 mark varchar2 1000 create sequence xok autoin...
Oracle學習筆記(一)
系統要求 作業系統最好為windows2000 記憶體最好在256m以上 硬碟空間需要2g以上 進入資料庫 1.開始 sql plus 2.執行輸入命令 sqlplusw 3.dos下操作oracle工具 執行輸入命令 sqlplus 工具 pl sql developer sql plus常用命令...
oracle學習筆記一
表 基本的資料儲存物件,以行和列的形式存在,列 也就是字段,行也就是記錄 資料字典 也就是系統表,存放資料庫相關資訊的表 約束條件 執行資料校驗,保證了資料完整性的 檢視 乙個或者多個表資料的邏輯顯示 索引 用於提高查詢的效能 同義詞 物件的別名 資料庫物件的命名規則 1 物件名稱必須以字母開頭 2...