3、Oracle表的管理

  1. Oracle表名和列的命名規則數據庫

    必須以字母開頭,長度不能超過30字符,不能使用oracle保留字,只能使用字符 A-Z, a-z,0-9,$, # 等。安全

  2. Oracle支持的數據類型session

     字符型:
    oracle

    1. char : 定長, 最大2000字符;若是不夠長度,以空格補全。spa

      爲什麼固定長度?查詢速度極快。好比以身份證爲查詢條件,最好用char(18)日誌

    2. varchar2(20) : 變長,最大4000字符。 節省空間orm

    3. 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。

             通常若是對安全性要求不高,會將圖片或聲音存放一個文件夾下,將路徑存放在數據庫。

  3. Oracle 表管理(建表、刪表、修改表):

    1. 建表:

      create table student (

      xh number(4),

      xm varchar2(20),

      sex char(2),

      birthday date,

      sal number(7,2)

      )

    2. 刪表:drop table student;

    3. 表修改:

      • 修改表名: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;

    4. 添加數據:(所有字段)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';

    5. 在建表的同時添加數據:利用查詢結果做爲新建表的記錄

      SQL> create table tableNameA (columnName, columnName, columnName) as select columnName, columnName, columnName from tableNameB;

    6. 修改數據:

      SQL> update student set xh = '11' where name='xiaoming';

      SQL> update student set xh = '11', birthday='1988-01-24' where name='xiaoming';

    7. 刪除數據:

      SQL> delete from student;  刪除表中全部記錄,表結構還在,寫日誌,能夠恢復的,速度慢。

      SQL> drop table student; 刪除表的結構和數據,不可恢復。

      SQL> truncate table student; 刪除表中全部記錄,表結構還在,不寫日誌,沒法找回記錄,速度快。

      以一張52W條記錄的表爲例, 第一條語句執行耗時 6.739 s,第三條語句執行耗時 1.653 s。

    8. oracle 保存點: oracle數據庫管理員通常會在工做開始前作一個savepoint aa,若是在工做中有重要數據丟失,能夠rollback回保存點,回到初始狀態。Oracle支持多個保存點。若是不作處理,保存點只能保存一個,舊的保存點會被覆蓋掉。

      SQL> savepoint aa;    

      SQL> rollback to aa;

相關文章
相關標籤/搜索