Oracle表名和列的命名規則數據庫
必須以字母開頭,長度不能超過30字符,不能使用oracle保留字,只能使用字符 A-Z, a-z,0-9,$, # 等。安全
Oracle支持的數據類型session
字符型:
oracle
char : 定長, 最大2000字符;若是不夠長度,以空格補全。spa
爲什麼固定長度?查詢速度極快。好比以身份證爲查詢條件,最好用char(18)日誌
varchar2(20) : 變長,最大4000字符。 節省空間orm
clob (character large object) : 字符型大對象,最大4G對象
數字型:
圖片
a. number : 變長, -10的38次方 ~ 10的38次方,能夠表示整數,也能夠表示小數。
io
number(5,2) 表示一個小數有5位有效數,2位小數,範圍 -999.99 ~ 999.99
number(5) 表示一個五位整數, 範圍 -99999 ~ 99999
日期類型:
a. date : 包含年月日和時分秒, 通常來講足夠使用。
b. timestamp : oracle 9i針對date數據類型的擴展,精度更高,毫秒級。
圖片:
a. blob : 二進制數據,能夠存放圖片、聲音, 4G。
通常若是對安全性要求不高,會將圖片或聲音存放一個文件夾下,將路徑存放在數據庫。
Oracle 表管理(建表、刪表、修改表):
建表:
create table student (
xh number(4),
xm varchar2(20),
sex char(2),
birthday date,
sal number(7,2)
)
刪表:drop table student;
表修改:
修改表名:rename student to stu;
添加字段:SQL> alter table student add (classId number(2));
修改字段長度/類型:SQL> alter table student modify (xm varchar2(30)); / modify (xm char(30)); 修改字段類型不能有數據。
刪除字段:SQL> alter table student drop column sal;
添加數據:(所有字段)SQL> insert into student values (1, 'xiaoming', 'm', '1991-08-25', '12');
(部分字段)SQL> insert into student (xh, xm, birthday) values (1, '小明', '1991-08-25');
這裏有個日期格式的問題,修改oracle的日期格式:
SQL> alter session set nls_date_format = 'yyyy-mm-dd';。
在建表的同時添加數據:利用查詢結果做爲新建表的記錄
SQL> create table tableNameA (columnName, columnName, columnName) as select columnName, columnName, columnName from tableNameB;
修改數據:
SQL> update student set xh = '11' where name='xiaoming';
SQL> update student set xh = '11', birthday='1988-01-24' where name='xiaoming';
刪除數據:
SQL> delete from student; 刪除表中全部記錄,表結構還在,寫日誌,能夠恢復的,速度慢。
SQL> drop table student; 刪除表的結構和數據,不可恢復。
SQL> truncate table student; 刪除表中全部記錄,表結構還在,不寫日誌,沒法找回記錄,速度快。
以一張52W條記錄的表爲例, 第一條語句執行耗時 6.739 s,第三條語句執行耗時 1.653 s。
oracle 保存點: oracle數據庫管理員通常會在工做開始前作一個savepoint aa,若是在工做中有重要數據丟失,能夠rollback回保存點,回到初始狀態。Oracle支持多個保存點。若是不作處理,保存點只能保存一個,舊的保存點會被覆蓋掉。
SQL> savepoint aa;
SQL> rollback to aa;