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了,就無效了,如下過程
六、oracle的表查詢(下次繼續總結....)