一、Oracle數據類型
字符串常用 varchar2類型
二、表的管理
- 建表
---創建一個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;
在實際項目中每一張表會配一個序列,但是表和序列是沒有必然的聯繫的,一個序列被哪一張表使用都可以,但是我們一般都是一張表用一個序列。序列的管理一般使用工具來管理。