SQL語句複習【專題八】

SQL語句複習【專題八】數據庫

序列 Sequence。數據庫對象是 oracle 專有的。
做用:能夠將某一列的值使用序列,來實現自動增加的功能。
訪問序列的值。【序列有兩個屬性 nextval currval】
得到序列的下一個自增(默認自增1)以後的值。每訪問一次nextval 序列的值都會自增一次。

---建立序列:
create sequence seq_student
select seq_student.nextval from dual
--得到序列當前值 currval 在建立 序列開始,不能直接訪問,必須訪問一次 nextval 屬性以後才能訪問 currval
select seq_student.currval from dual
--使用序列的值
select * from student
insert into student values (seq_stu.nextval,'dilraba'||seq_stu.currval,30,'女','000002',null);
--設置序列的詳細的屬性
create sequence seq_stu
increment by 2 --設置自增量
start with 100
maxvalue 100000
minvalue 100
cycle --| nocycle
--drop 刪除序列
drop sequence seq_studentoracle

數據庫對象 -- 索引【索引的做用:用來加速檢索數據的】
索引是被動使用的,若是某些字段被檢索的頻率比較高,那麼就能夠根據該字段生成對應的索引,來加速針對該字段的檢索的速度
--索引的建立方式:
--1:自動建立:primary key unique 類,oracle會自動的針對該類的數據生成索引。
--2:手動建立
---建立索引
create index index_student_sname on student(sname)
--索引一旦建立自動使用
truncate table student
--帶索引的檢索
select * from student where sname='小白200'--0.016
--刪除索引
drop index index_student_sname
性能

使用索引的要點:
①索引數據可能要佔用大量的存儲空間。
②索引改善檢索操做的性能,但下降數據插入、修改和刪除的性能。在執行這些操做時,DBMS必須動態地更新索引。
③限制表中索引的數目。索引越多,在修改表時對索引作出修改的工做量越大
④並不是全部數據都適合於索引。惟一性很差的數據(如省)從索引獲得的好處不比具備更多可能值的數據(如姓名)從索引獲得的好處多
⑤索引用於數據過濾和數據排序。若是你常常以某種特定的順序排序數據,則該數據多是索引的備選。
⑥能夠在索引中定義多個列(如省加城市),這樣的索引只在以省加城市的順序排序時有用。若是想按城市排序,則這種索引沒有用處。spa

小總結
一、約束
①域完整性約束:非空 not null 檢查 check
②記錄完整性約束:主鍵 primary key 惟一 unique
③參照完整性約束:外鍵 foreign key
④表級約束、列級約束(not null,只能列級)
二、刪除主表的記錄的時候,關於從表對主表字段引用的處理的方式
①受限制的 restrict 不容許刪除。
②cascade:從表一併刪除
③set null: 設置爲null
三、序列:Sequence oracle 特有的數據庫對象。
nextval(自增並返回)、currval(返回序列當前值)
四、index 索引。被動使用。爲了加快 檢索數據的速度。
①自動建立:主鍵 primary key + unique 。擁有這兩種約束的字段,自動會給每個數據建立對象的索引。
②會下降,DML操做。
③若是重複的數據比較多(不建議)rest

相關文章
相關標籤/搜索