Oracle命令實踐(1)

2021-06-29 13:52:04 字數 3303 閱讀 8440

oracle命令實踐(1)

開篇:本學期開了一門實驗課oracle,上學期開的是sqlserver,但是我在實習公司的時候學的是mysql,所以非常雜,這裡就有必要深入點了。於是想將學過的命令語句蒐集起來便於複習,老師教的是用sqlplus進行的操作,我在自己的電腦上進行了相應的練習操作。

在此之前先進行一下關於sqlplus的操作,:

一、sqlplus執行環境的設定

1.      set命令

1.set linesize 300      //設定每行顯示的長度

2.set pagesize 30      //設定每頁顯示條數,解決上面命令操作後出現行重複的問題。

3. column field_name format a40   //修改每列顯示的顯示寬度(每次都要執行)

4. col filed_name for a40       //簡寫

5. set time on  //設定時間

6. clear scr    //清除螢幕上的命令,命令太多就用這一條吧

7. desc object_name //顯示表結構,或者顯示檢視結構

8. spool d:\fcs.txt   //將要執行的命令儲存到d盤下fcs.txt中,該路徑要包括檔名,副檔名。

9. spool off // 將執行過的命令儲存到8中的路徑檔案下。,執行這條語句後就會在相應檔案中檢視剛剛執行過的命令和執行過程。

10.

二、實戰方面

1.使用者和許可權管理

在oracle中有系統使用者和普通使用者的區別,在系統使用者下有很多操作是普通使用者不能操作的,也就是普通使用者需要經過系統使用者的授權才能進行某些操作,具有部分或全部系統使用者的許可權。

1.createuser  username  identified by password    //建立乙個名為username,密碼為password的使用者。

2.create profilepro1 limitfailed_login_attempts 3 password_lock_time 2  //建立概要檔案,指定登陸使用者只能最多輸入3次密碼,。

說明:當建立使用者的時候,如果沒有指定profile,那麼oracle會把名字叫default的profile賦予給使用者。

其中, failed_login_attempts:用於指定練習登陸的最多次數。

password_lock_time:用於指定賬戶被鎖定的天數。

3.create user aaidentified by aa profile prol.      //建立屬於pro1的使用者

4.alter usertest1 profile prol;     //修改使用者的profile檔案

5.授權(在sys使用者下進行授權)

5.1.系統許可權:

1.grant create session to username;  //此系統許可權允許使用者連線到資料庫上

2.grant create table to username;   //賦給使用者以建立表的系統許可權

3.grant unlimited tablespace tousername;  此系統許可權允許使用者使用任意表空間。

5.2物件許可權

1.grant select onscott.emp to    username ;  //授予使用者查詢scott.emp的查詢許可權。

1. grant connect,resource to username;   //授予使用者resource許可權,connect許可權。

說明 :擁有resource許可權的使用者只可以建立實體,不可以建立資料庫結構。

擁有connect許可權的使用者只可以登入oracle,不可以建立實體,不可以建立資料庫結構。  還有乙個許可權dba許可權:

dba:擁有全部特權,是系統最高許可權,只有dba才可以建立資料庫結構。

一般:對於普通使用者授予connect,resource許可權

.對於dba管理使用者授予connect,resource,dba許可權。

擴充套件:系統許可權只能由dba使用者授出,sys,system(最開始只能是這兩個使用者),普通使用者通過授權可以具有與system相同的使用者許可權。

3.grant create any table to username;        //授予使用者建立表的許可權

4.grant select any table to username;        //授予使用者查詢表的權利

實驗過程中出現了一些問題:

1.      關於number型別與int型別的轉換:

oracle中本來沒有int型別,為了相容別的資料庫,新增加了int型別作為number型別的子集,

int只能儲存整數。number可以儲存浮點數,和整數,

number(8,1)  :儲存小數字1,總長度為8的浮點數,如果小數字數不足,則用0補全。

int 相當於number(22),儲存總長度為22的整數。

number的效能:對於大多數應用來說是最佳的選擇,尤其是金融行業,因為狗精確,不過,number會帶來效能的影響,因為oracle number型別是一種軟體資料型別,是在愛oracle燃機本身中實現,我們不能使用固有硬體操作將兩個number型別相加,這要在軟體中模擬,所以效能有很大影響。

其中將varchar 轉換成int型別,需要將varchar轉換成number,再轉換成int,不過並不是所有varchar型都能轉換成int型別。

我建立乙個表字段有sage ,型別number(10), 現在將其改為int型別:

這是我的操作過程:

1.      修改約束條件

現在有乙個表中的字段sage 的約束性檢查為 18-40之間,現在要將其改為18-40之外的數字範圍。

如何修改呢,這是我的操作過程:

1.      刪除表中的字段

注意這乙個操作在上面的圖中第一句已經實現了,這是在普通使用者下的操作,但是如果是普通使用者  as sys ,或者as sysdba ,則沒有刪除表的許可權。

注意drop後面要新增column,否則可能報錯

2.      建立備份表,或者複製表。

我們在實驗過程中是先建立表,插入資料。但是沒有在這些有資料的表上進行操作,而是重新複製乙個表,在複製的表中進行操作。

可以使用如下語句建立乙個新的表,帶有資料:

create  table student(select * from student1)  ;//其實就是將查詢的結果作為建立表的開始

oracle入門命令(1)

1.連線命令 conn ect 使用者名稱 密碼 as sysdba sysoper 用什麼角色登入 但用特權使用者身份登入是必須帶上as sysdba或as sysoper 示例 sql conn sys oracl as sysdba 已連線。sql 2.disc onnect 斷開與當前資料庫...

Oracle 實踐操作

1.獲取系統時間 select sysdate from dual select to char systimestamp,yyyy mm dd hh24 mi ss.ff3 from dual 顯示毫秒 2.系統時間 1天 1小時 1分鐘 1秒 1毫秒 select sysdate 1 from ...

oracle常用命令1

1 連線到oracle sql plus system manager 2 顯示當前連線使用者 sql show user 3 檢視系統擁有哪些使用者 sql select from all users 4 新建使用者並授權 sql create user a identified by a 預設建...