oracle 總結第二篇,主要總結了oracle的表管理中相關註意的問題 ...
原創作品,轉載請在文字開頭明顯位置註明出處:https://www.cnblogs.com/sunshine5683/p/10067872.html
接著上一篇,繼續總結!
五、oracle表管理
首先,在開頭說一下sys用戶和system用戶的區別:sys用戶是超級管理員,許可權最大,system是系統管理員,許可權次之,一般在管理系統時使用system足以。
1、命名規則:
1> 表名必須以字母開頭
2> 長度不能超過30字元
3> 不能使用oracle的保留字
4>只能使用A-Z、a-z、0-9、$、#等
2、數據類型:
char:固定大小,占記憶體,比如char(10)中存放兩個字元,那麼其餘的8個字元就用空字元占用,也在占記憶體
varchar2:可變大小,占空間小,查詢速度相對char慢,比如存放兩個字元,其餘的位置不占用,也就是只要不超過定義的範圍,實際用多少占多少,最大4000個字元
number:可以表示小數,也可以表示整數,大小在-10的38次方到10的38次方
number(3,2):表示一個數有3位有效數字,其中小數位占兩位,即-9.99----9.99
number(5):表示一個五位整數,即-99999---99999
date:時分秒
blob:二進位數據,可以存放圖片、聲音,最大4G
3、建表
新建一張表,語句:
給一個表增加一個欄位
修改欄位的長度:
alter table student modify(xm varchar2(30));
刪除一個欄位:
alter table student drop column sal; 該操作風險,註意慎用
修改表名字
rename student to stu;
刪除表
drop table student;
查詢表;
select * from student;
添加數據:
insert into student values('A001','黎明','男','01-05月-2018','3.03',12); 註意日期格式,預設日月年
修改日期預設格式:
alter session set nls_date_format='yyyy-mm-dd';
這時候insert into student values('A001','黎明','男','01-05月-2018','3.03',12); 語句就會報錯,必須改為
insert into student values('A001','黎明','男','2018-05-01','3.03',12);
插入部分欄位:
insert into student (xh,xm,sex) values ('A002','jonn','男')
插入空值:
insert into student (xh,xm,sex,birthday) values('A003','marry','男',null);
此時要查詢出生日期為null的欄位:
select * from student where birthday is null;
查詢出生日期不為空的欄位:
select * from student where birthday is not null;
修改欄位值
update student set sal = sal/2 where sex='男';
修改多欄位:
update student set sal=sal/2,classId=4 where sex='男';
刪除數據
delete from student ; //刪除了所有的記錄,表結構保存,進行了寫日誌,可以快速回覆
恢復:在刪除之前創建回滾點:savepoint xx;
然後刪除數據
然後:rollback回滾,數據恢復完成,但是再刪除後還未commit的時候起作用,一旦commit了,就無效了,如下過程
刪除表的結果和數據:
drop table student
刪除表中的所有記錄,表結構還在,不寫日誌,無法找回(速度快):
truncate table student
六、oracle的表查詢(下次繼續總結....)