oracle sql基礎學習篇《一》

來源:互聯網
上載者:User

  每個RDBMS都基於標準sql走出了屬於自己的sql特色。oracle也不例外。現起,我們來學習oracle sql。
  學習sql,於開發人員,實現優秀的商務邏輯;於管理者,完成資料庫的調優。

  oracle sql可分:
  a)select
  b)DML:update,insert,delete,merge
  c)DDL:create,alter,drop
  d)DCL:grant,revoke
  e)TCL:commit,roolback,savepoint

  oracle 資料類型共有:
  1)整數類型
  oracle中沒有專門的整數類型,因此,需要使用number(10)來表示整形。
  2)數實值型別
  number(m,n)
  m:所有有效數位位元
  n:小數點後的位元
  3)字元類型
  char(m):定長
  varchar2(m):變長,max為m
  4)日期時間類型
  date:日期時間資料
  timestamp:時間戳記(是具有法律效益的電子憑證)
  5)二進位類型
  blob:儲存視頻,圖片等

  在寫sql語句時,建議分行來寫,因為RDBMS是根據行號來提示錯誤資訊的。而且,也可以提高可讀性。在使用主鍵時,最佳實務是使用邏輯主鍵而不是業務主鍵。所以,避免使用聯合主鍵,因為,聯合主鍵基本都是有業務含義的。而且,聯合主鍵也不適合建立外鍵約束。

  外鍵是關係型資料庫的第三維。定義:foreign key (欄位名) references 目標表名 (被參照的欄位名)。複雜的業務便是通過外鍵約束來實現的。

  修改已有資料表
  增加欄位:alter table table_name add 欄位名 欄位類型;
  刪除欄位:alter table table_name drop 欄位名;

  如果在表之間存在外部索引鍵關聯,對被參考資料表執行drop table table_name時會報錯。必須先刪除參考資料表!

  對於一些受限操作,我們可採取建立表來變通我們想要的功能。

  上面談的都是對錶的操作。接下來,我們來聊聊對資料的操作。

  使用外鍵約束,所插入的資料必須在被參考資料表中存在。更新表,set後可多列同時更新,用逗號分隔。加上where子句可過濾所需的行。

  delete from table_name where ...,是吃光碗裡的飯;drop table...則是吃光碗裡的飯還將碗給砸了。

  oracle很少涉及到雙引號。列別名,就是其中一例。通過雙引號,我們可以控制列名的輸出格式。

  NULL幾乎不佔儲存。如果在null和0選,建議儲存null,而非0.

  對於_或%打頭的欄位,模糊查詢時須轉義。如:
  like '\%%' escape '\'
  like '\_%' escape '\'

  彙總函式count使用上的小區別。如:
  count(*):統計結果集的總條數
  count(name):統計結果集中name不為null的記錄的總條數

  對於order by的多個定序,order by首先按照第一個定序進行排序,如果第一個定序無法區分兩條記錄的順序,則按照第二個定序進行排序,如果第二個定序無法區分兩條記錄的順序,則按照第三個定序進行排序,以此類推。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.