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_student
數據庫對象 -- 索引【索引的作用:用來加速檢索數據的】
索引是被動使用的,如果某些字段被檢索的頻率比較高,那么就可以根據該字段生成對應的索引,來加速針對該字段的檢索的速度
--索引的創建方式:
--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必須動態地更新索引。
③限制表中索引的數目。索引越多,在修改表時對索引做出修改的工作量越大
④并非所有數據都適合于索引。唯一性不好的數據(如省)從索引得到的好處不比具有更多可能值的數據(如姓名)從索引得到的好處多
⑤索引用于數據過濾和數據排序。如果你經常以某種特定的順序排序數據,則該數據可能是索引的備選。
⑥可以在索引中定義多個列(如省加城市),這樣的索引只在以省加城市的順序排序時有用。如果想按城市排序,則這種索引沒有用處。
小總結
1、約束
①域完整性約束:非空 not null 檢查 check
②記錄完整性約束:主鍵 primary key 唯一 unique
③參照完整性約束:外鍵 foreign key
④表級約束、列級約束(not null,只能列級)
2、刪除主表的記錄的時候,關于從表對主表字段引用的處理的方式
①受限制的 restrict 不允許刪除。
②cascade:從表一并刪除
③set null: 設置為null
3、序列:Sequence oracle 特有的數據庫對象。
nextval(自增并返回)、currval(返回序列當前值)
4、index 索引。被動使用。為了加快 檢索數據的速度。
①自動創建:主鍵 primary key + unique 。擁有這兩種約束的字段,自動會給每一個數據創建對象的索引。
②會降低,DML操作。
③如果重復的數據比較多(不建議)
轉載于:https://www.cnblogs.com/cao-yin/p/10502937.html
總結
以上是生活随笔為你收集整理的SQL语句复习【专题八】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盒模型的实际尺寸
- 下一篇: 规模-复杂世界的简单法则---熵