維護資料庫的完整性
一般有三種 約束 ,觸發器 ,應用程式(過程,函式),其中約束具有較高的效能
約束包括 not null,unique,primary key, foreign key ,check 共五種
unique 不能重複,但可以為空
乙個表可以有乙個主鍵,但可以有多個unique
create table goods
(goodsid char(8) primary key,
goodname varchar2(30),
unitprice number(10,2) check(unitprice>0),
category varchar2(8),
provider varchar2(30)
)create table customer
(customerid char(8) primary key,
name varchar2(50) not null,
address varchar2(50),
email varchar2(50) unique,
*** char(2) default '男' check(*** in ('男','女')),
cardid char(18)
)create table purchase
(customid char(8) references customer(customerid),
goodid char(8) references goods(goodsid),
nums number(10) check(nums between 1 and 30)
)alter table goods modify goodname not null;
alter table customer add constraint customer_indentity unique(cardid);
alter table customer add constraint address_check check (address in ('東城','西城'));
alter table customer drop primary key cascade;
--顯示約束資訊
select * from user_constraints t where t.table_name ='goods';
select * from user_cons_columns t where t.constraint_name ='sys_c0011152';
--修改表的約束
alter table goods modify goodname not null;
alter table customer add constraint customer_indentity unique(cardid);
alter table customer add constraint address_check check (address in ('東城','西城'));
alter table customer drop primary key cascade;
--顯示約束資訊
select * from user_constraints t where t.table_name ='goods';
select * from user_cons_columns t where t.constraint_name ='sys_c0011152';
---行級別約束定義
create table department
(departmentid number(10) constraint pk_depart primary key ,
name varchar2(50),
loc varchar2(50)
)---表級別約束定義
create table employee
(empid number(10),
departid number(10),
ename varchar(50),
constraint employee_pk primary key (empid),
constraint employee_fk foreign key(departid)
references department(departmentid)
)-- 單索引
create index emp_name_index on employee(ename);
--復合索引
create index emp_name_category on (name,catagory);
--使用原則
--1.在大表上建立資料
--2.不能再經where 字句和連線條件經常出現的列
--3.索引的層次不能超過四層
索引的缺點
1.建立索引,系統要占用大約為表1.2倍的硬碟和記憶體坑技安來儲存索引。
2.更新資料的時候,系統必須要有額外的時間來同時對索引進行更新,以維持資料和索引的一致性
實踐證明 ,不恰當的索引不但於事無補,反而會降低系統的效能,因為大量的縮影在進行插入,修改和刪除操作時 比沒有索引時 要花費更多的時間
比如在如下欄位上建立索引應該是不恰當的
1.很少或從不應用的字段
2,,邏輯型的字段如男或女(是或否)等,綜上所述提高查詢效率是以消耗一定的系統資源為代價的,索引不能盲目的建立,這個是考驗dba 是否優秀的
乙個重要標準
索引的分類
唯一性可以分為唯一索引和非唯一索引
select * from user_indexes t where t.table_name='employee';
select * from user_ind_columns t where t.index_name='emp_name_index'
資料庫包括系統許可權和物件許可權
檢視所有許可權(sysdba(
select * from dba_roles;
select * from dba_roles;
create user ken identified by ken;
grant create session,create table ,create view to ken with admin option;
create user tom identified by tom;
revoke create view from ken;
grant create session to ken with admin option;
grant create view to ken;
select * from dba_tab_privs;
物件許可權
授予物件
create user monkey identified by monkey;
grant create session to monkey;
---scott 使用者
grant select on emp to monkey;
grant select on emp to monkey;
grant update on emp to monkey;
grant delete on emp to monkey;
grant insert on emp to monkey;
grant alter on emp to monkey;
grant execute on dbms_transation to monkey;
---把所有使用者許可權付給 monkey
grant all on emp to monkey;
只能獲得 某一列的值
grant all on emp(ename,sal) to monkey
系統許可權 --》 a->b->c a b **b ,c 有許可權
物件許可權 --》;a->b-》c b **b ,c 沒許可權
grant select on emp to monkey with grant option;
revoke select on emp from monkey
介紹一下索引
根據資料庫的功能,可以在 資料庫設計器中建立四種索引 普通索引 唯一索引 主鍵索引和 聚集索引。有關資料庫所支援的索引功能的詳細資訊,請參見資料庫文件。普通索引 這是最基本的索引型別,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式建立 建立索引,例如create index 索引的名字 o...
簡單介紹一下OGraph
摘要 該引擎的目標在於能夠渲染3d場景,和視覺化複雜網路 並且支援方便的資料介面,遊戲一般的互動體驗。引擎嵌入python為使用者提供api,編寫python 讀取處理資料後提交到渲染介面,即可實時渲染。使用瀏覽器核心向使用者展示ui,管理場景物件樹 物件屬性。使用者也可以自己重新編寫html頁面自...
簡單介紹一下Alienware
alienware是一家專門製造一些不計成本的超發燒級pc的北美電腦公司,當然在即使在北美這樣的公司也並不多見,除了 alienware之外還有voodoopc與另外一家相類似的品牌公司。alienware成立於1996年,公司總部在美國邁阿密,它的產品線包括高階遊戲台式電腦,遊戲膝上型電腦,工作站...