Oracle 序列及表的數據管理和操作

一、Oracle數據類型

字符串常用 varchar2類型
在這裏插入圖片描述

二、表的管理

  1. 建表
    在這裏插入圖片描述
---創建一個person表
create table person(
       pid number(20),
       pname varchar2(10)
);

(2)表刪除

DROP TABLE 表名

(3)修改表結構
在這裏插入圖片描述

---添加一列
alter table person add (gender number(1));
---修改列類型,char 類型和varchar的區別是char是固定長度,後面指定多少就是多少
alter table person modify gender char(1);
---修改列名稱
alter table person rename column gender to sex;
---刪除一列
alter table person drop column sex;

三、表數據的更新

因爲 oracle 的事務對數據庫的變更的處理,我們必須做提交事務才能讓數據真正的插入到數據庫中,在同樣在執行完數據庫變更的操作後還可以把事務進行回滾,這樣就不會插入到數據庫。如果事務提交後則不可以再回滾。

(1)INSERT(增加)
在這裏插入圖片描述

---查詢表中記錄
select * from person;
----添加一條記錄
insert into person (pid, pname) values (1, '小明');
--凡是增刪改操作,需要手動提交事務,才能保存 
commit;

(2)UPDATE(修改)
在這裏插入圖片描述

----修改一條記錄
update person set pname = '小馬' where pid = 1;
--凡是增刪改操作,需要手動提交事務,才能保存 
commit;

(3)DELETE(刪除)

DELETE FROM 表名 WHERE 刪除條件;
--刪除表中全部記錄
delete from person;
--刪除表結構
drop table person;
--先刪除表,再次創建表。效果等同於刪除表中全部記錄。
--在數據量大的情況下,尤其在表中帶有索引的情況下,該操作效率高。
--索引可以提供查詢效率,但是會影響增刪改效率。
truncate table person;

四、序列

在很多數據庫中都存在一個自動增長的列,如果現在要想在 oracle 中完成自動增長的功能,則只能依靠序列完成,所有的自動增長操作,需要用戶手工完成處理。

因爲如果每次添加記錄都指定序號,那多個人操作同一個數據庫時,容易造成混亂,所以設定爲自增長,讓數據庫自動控制。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

----序列不真的屬於任何一張表,但是可以邏輯和表做綁定。
----序列:默認從1開始,依次遞增,主要用來給主鍵賦值使用。防止多人操作,如果都賦值序號,造成混亂
----dual:虛表,只是爲了補全語法,沒有任何意義。
create sequence s_person;
--插入序列
select s_person.nextval from dual;
--查詢當前序列
select s_person.currval from dual;

此時如果再添加數據就直接指定序號即可

----添加一條記錄,使用序列代替原來的序號,這樣不用指定序號,序號會依次遞增
insert into person (pid, pname) values (s_person.nextval, '小明');
commit;
select * from person;

在實際項目中每一張表會配一個序列,但是表和序列是沒有必然的聯繫的,一個序列被哪一張表使用都可以,但是我們一般都是一張表用一個序列。序列的管理一般使用工具來管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章