資料庫基礎知識

2021-09-01 15:19:12 字數 4250 閱讀 8595

以下純屬個人看書概括的一些oracle知識,方便日後檢視

資料庫主要物件:

1、ddl語句包括create/alter/truncate/drop等命令,分別用來建立、修改、擷取、刪除資料庫物件。

2、number(p,s):p表示數字的總位數,s表示小數點後的位數。

3、date預設顯示格式為dd-mon-rr,timestamp預設顯示格式為dd-mon-rr hh12.mi.ss am。儲存大批量字元用clob、long/longraw,二進位制的大資料用blob、bfile。

4、oracle的sql環境下沒有布林型別,只能用char或數字「1」、「-1」代替。

5、表的欄位名稱長度最多為30個字元,且不允許有空格和符號「*」。

6、資料字典資訊:(1)dba_**:指整個資料庫包含的物件資訊;如 dba_tables(資料庫中全部資料表)、dba_objects(資料庫中全部物件)、dba_data_files(資料庫的資料檔案資訊)

(2)all_**:指使用者可以訪問的物件資訊;all_tables(資料庫中使用者能夠訪問的資料表)、all_indexes(資料庫中使用者能夠訪問到的索引物件)、all_objects(資料庫中使用者能夠訪問到的所有物件)

(3)user_**:指使用者自己方案的物件資訊,user_tables(資料庫中使用者自己方案下的資料表)、user_views(資料庫中使用者方案下的檢視)、user_objects(資料庫中使用者方案下的所有物件)。

user_tables指登入使用者自己方案中的表,all_tables指使用者可訪問的表,dba_tables指資料庫中全部的表。

7、查詢資料字典用dict,如:select table_name,comments from dict where table_name like '%constraint%';

8、在其他使用者下建錶用create table 使用者名稱.表名{},但該使用者必須具備create any table的許可權。

表:9、建立表時給某欄位指定預設值用default,如:*** char(2) default '女'。

10、根據子查詢建立表,(1)當資料型別與子查詢中的列相同時用"create table 新錶名 as select 源欄位名 from 源表名";(2)當它們不相同時"create table 新錶名(新欄位名,……) as select 源欄位名 from 源表名"。

11、給表增加列用"alter table 表名 add",修改列用"alter table 表名 modify",刪除列用"alter table 表名 drop"。

12、修改列名用"alter table 表名 rename column 欄位名 to 新欄位名",修改表名用"rename 表名 to 新錶名"。

13、truncate table:刪除表資料,保留表結構,不可恢復,會清除表中所有資料,這個操作不能撤銷;

delete table:刪除表資料,可恢復,每次刪除都會在事務日誌中記錄刪除動作,在undo segment中儲存刪除的資訊;drop table:刪除表,不可恢復。

14、給表加注釋:"comment on table 表名 is '某某表'";給列加注釋:"comment on column 表名.欄位名 is '要寫的注釋'"。

15、資料字典可以檢視資料表資訊,如查詢資料字典user_objects:"select object_name from user_objects where object_type = 'table'"。

約束:16、約束條件是依附於表,可以在建表時建立,也可以在建表後建立,名字可以由使用者指定,oracle系統預設按照sys_cn的格式命名,n是一串數字。分為列級約束和表級約束。

17、列級約束是跟在列定義後邊的約束,非空只能定義在列級,如:name varchar2(30) not null;其他可以定義在列級或表級。

18、非空(not null):用於確保字段值不為空;唯一(unique):該列的值不允許重複,但允許是null值;主鍵(primary key):不允許有空值,也不允許有重複值;外來鍵(foreign key):用於維護表間的

關聯關係;檢查(check):用於強制欄位上的值滿足所定義的限制條件。

19、給表建立主鍵約束條件:(1)建表同時建列級主鍵約束(在列名後),系統會自動給該約束命名,如create table 表名(欄位名 字段型別 primary key)。

(2)建表同時建表級主鍵約束(在建表結構最後一行),自定義約束名,如create table 表名(欄位名,……,constraint 表名_欄位名_pk primary key(欄位名))。

(3)建表後建表級主鍵約束(在建表結構的外面一行),自定義約束名,如create table 表(欄位名);alter table 表名 add constraint 表名_欄位名_pk primary key(欄位名)。

20、聯合主鍵:多個欄位的組合不允許重複且為能為空,如:alter table 表名 add constraint 表名_欄位名_pk primary key(first_name,last_name)。。

21、外來鍵約束條件的兩個資料約束:(1)子表上定義的外來鍵的列值,必須從主表被參照的列值中選取,或者為null;

(2)當主表參照列的值被子表參照時,主表的該行記錄不允許被刪除。

22、檢查(check),如:alter table employees add constraint employees_salary_check check (salary>800)。

23、禁用約束條件:批量匯入資料時,為了避免約束檢查影響匯入速度,可以暫時讓約束失效,禁用約束,如alter table 表名 disable constraint ……;啟用約束,如enable constraint ……。

24、修改約束名用"alter table 表名 rename constraint 約束名 to 新約束名",刪除約束條件用"alter table 表名 drop constraint ……"。

檢視25、檢視本身並不包含資料,它只是基表資料的邏輯對映。檢視作用:如果經常在多個表上執行複雜查詢,就可以基於這個複雜查詢建立檢視,此後查詢檢視即可。

26、rownum用於返回標識行資料順序的數字;rowid用於唯一的標識行,間接給出表中記錄的物理位置;它們都被稱為偽列。

27、建立檢視:"create view 檢視名(列名) as……";修改檢視:"create or replace view 檢視名";刪除檢視:"drop view 檢視名"。

索引28、索引相當於名單列表 ,便於查詢某個人。注意dml操作會導致oracle更新索引,相當於增加dml操作的處理時間,所以並不是表上的索引越多越好。

29、表中定義了主鍵約束或者唯一約束,oracle會在相應的約束列上自動建立唯一索引。

30、復合索引也叫多列索引,是基於多個列的索引,如"create index 索引名 on 表名(列名1,列名2……)"。

31、建立索引:"create index 索引名 on 表名(列名)";重建索引:"alter index 索引名 rebuild";刪除索引:"drop index 索引名"。

序列32、序列通常按遞增或遞減順序來自動產生表的主鍵值。序列中有兩個偽例nextval和currval,分別用來獲取序列的下個值和當前值,建立序列後,第一次只能用nextval,以後才能用currval。

33、建立序列:"create qequence 序列名 start with 起始資料 increment by 步進";修改序列:"alter sequence 序列名 increment by 步進 maxvalue 最大值";刪除序列:"drop sequence 序列名"。

同義詞34、同義詞是為了資料庫物件的安全建立別名,作用:(1)簡化sql查詢;(2)隱藏資料庫物件的資訊。

35、建立公共同義詞:"create public synonym 同義詞名 for 表名";建立私有同義詞:"create synonym 同義詞名 for 表名";刪除公共同義詞:"drop public 同義詞名"。

36、sql/plus中檢查檢視的結構和表使用desc。

37、資料字典中檢視檢視,如:"select object_name from user_objects where object_type='view'"。檢視索引,如:"select index_name from ind where table_name='表名'。

檢視序列,如:"select min_value,max_value,increment_by,cache_size from seq where sequence_name='表名'"。檢視同義詞,如:"select synonym_name,table_owner,table_name from syn"。

資料庫基礎知識

資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...

資料庫 基礎知識

e r模型 實體 聯絡模型 entity relationship model,e r模型 實體是指現實中區別於其他物件的一種 物體 或一件 事情 例如一名學生,乙個專案等等。同乙個型別中所有的實體被叫做實體集,對應於資料庫的一張表,乙個實體則對應於一條記錄。不同的任務之間,就是通過聯絡關係整合到一...

資料庫基礎知識

一 1 ddl 資料庫定義語句,建立資料表 dml 資料庫操作語言 dcl 資料控制語言 dql 資料查詢語言 2 資料查詢,sql語句 看課堂作業 查詢結果是表。3 聚集函式的一般格式 會使用 distinct all 列名 4 檢視 從乙個或幾個基本表 或檢視 匯出的表,與基本表不同,是乙個虛表...