Oracle資料庫操作大全(十三) 約束,索引

2021-06-26 03:23:52 字數 2808 閱讀 2257

索引——在查詢表慢的時候,說先要想到建索引

維護資料的完整性:

***約束:

經典案例:

建表:

create table

goods

(goodsid char(8) primary key,--主鍵

goodsname 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('男','女')),//***預設為男,其只可在『男』或『女』範圍內.

alter table goods modify goodsname not null;//修改表goods中goodsname欄位使其不為空。

alter table customer add constraint

aaunique(cardid);//增加身份證不為空,其中陰影標記為約束名自定義即可

alter table customer add constraint

bbcheck (address in ('東城','西城'));//增加客戶住址約束

顯示約束資訊:

表級定義和列級定義:

管理索引:

為什麼新增索引會加快查詢速度?

****乙個圖書館書圖書沒有進行分類存放

****乙個圖書館書圖書進行按類別(且按序)存放,

去借書可先在電腦查詢書的具體位置,可快速的找到要看的書。(電腦相當於建立的索引)

索引的建立:

***簡單索引建立

create index nameindex on customer(name);//nameindex為索引名,自定義;

customer為表名,name為列

***單列索引

***復合索引

create index emp_isx1 on emp(ename,job);//表示先按ename查詢,然後按job查詢

create index emp_isx2 on emp(job,ename,);//表示先按job查詢,然後按ename查詢

知識小提:

在利用select語句查詢時,如:select * from customer wherejob='clerk' and ename='smith';

一般把檢索範圍小(更容易檢索出結果)的放在後(ename),比較大的放在前(job);(因為sql語句為從後往前掃瞄)

索引使用原則:

Oracle 資料庫常用操作語句大全

文件摘自 一 oracle資料庫操作 1 建立資料庫 create database databasename 2 刪除資料庫 drop database dbname 3 備份資料庫 exp demo demo orcl buffer 1024 file d back.dmp full y dem...

Oracle 資料庫常用操作語句大全

轉 一 oracle資料庫操作 1 建立資料庫 create database databasename 2 刪除資料庫 drop database dbname 3 備份資料庫 exp demo demo orcl buffer 1024 file d back.dmp full y demo 使...

Oracle資料庫(十三) 函式

函式是通過return語句返回資料 只能作為乙個可執行語句的一部分執行。如果沒有引數,可以不用寫括號 函式能返回任何的資料型別,但是不能返回乙個異常 function shema.name parameter parameter.return return datatype authid defin...