1. 程式人生 > >數據庫的一些概念

數據庫的一些概念

add 字節 建表 rollback apr 關聯 truncate fault 事務

數據庫原理 、 SQL(DDL、DML)

  • 數據庫(Database,簡稱DB)是按照數據結構來組織、
    存儲和管理數據的倉庫.
  • 數據庫管理系統(Database Management System,簡稱
    DBMS):管理數據庫的軟件.

  • 數據庫引擎,數據庫範式(了解百科)

  • 表的概念
    一個關系數據庫由多個數據表(Tabe)組成,數據表是關系
    數據庫的基本存儲結構
    表是二維的,由行和列組成
    表的行(Row)是橫排數據,也被稱作記錄(Record)
    表的列(Column)是縱列數據,也被稱作字段(Field)
    表和表之間存在關聯關系

  • 主流關系型數據庫
  • Oracle是著名的Oracle(甲骨文)公司的數據庫產品

    DB2是IBM公司的關系型數據庫管理系統
    Sybase是美國Sybase公司的關系型數據庫系統
    Microsoft SQL Server是微軟的產品,運行在WindowsNT服 務器上
    MySQL是開發源代碼的小型關系數據庫管理系統,廣泛
    應用在中小型網站中,(目前也屬於Oracle)

  • SQL概述
    SQL:結構化查詢語言
    SQL是在關系數據庫上執行數據操作、檢索及維護所使
    用的標準語言,可以用來查詢數據,操縱數據,定義數據,
    控制數據
    所有的數據庫都使用相同或者相似的語言

  • SQL可分為:

    • 數據定義語言(DDL):Data Definition Language
    • 數據操縱語言(DML):Data Manipulation Language
    • 事務控制語言(TCL):Transaction Control Language
    • 數據查詢語言(DQL):Data Query Language
    • 數據控制語言(DCL):Data Control Language
  • DDL
    Data Definition Language
    用於建立、修改、刪除數據庫對象
    包括:

    • CREATE:創建表或其他對象的結構
    • ALTER:修改表或其他對象的結構
    • DROP:刪除表或其他對象的結構
    • TRUNCATE:刪除表數據,保留表結構
      DDL:數據定義語言
      DDL用於維護數據庫對象使用
      數據庫對象:表,視圖,索引,序列.
  • DML
    Data Manipulation Language

    用於改變數據表中的數據
    和事務相關,執行完後需要經過事務控制語句提交後才
    真正的將改變應用到數據庫中
    包括:

    • INSERT:將數據插入到數據表中
    • UPDATE:更新數據表中已存在的數據
    • DELETE:刪除數據表中的數據
  • TCL
    Transaction Control Language
    用來維護數據一致性的語句
    包括:

    • COMMIT:提交,確認已經進行的數據改變
    • ROLLBACK:回滾,取消已經進行的數據改變
    • SAVEPOINT:保存點,使當前的事務可以退到指定的
      保存點,便於取消部分改變
  • DQL
    Data Query Language
    用來查詢所需要的數據
    SELECT語句

  • DCL
    Data Control Language
    用於執行權限的授予和收回操作
    包括:

    • GRANT:授予,用於給用戶或角色授予權限
    • REVOKE:用於收回用戶或角色有的權限
    • CREATE USER:創建用戶
  • Oracle數據類型
    NUMBER表示數字類型
    經常被定義成NUMBER(P,S)形式,其中:

    • P 表示數字的總位數
    • S 表示小數點後面的位數
      CHAR表示固定長度的字符類型
      經常被定義成CHAR(N)形式,N表示占用的字節數
      最大長度是2000字節
      VARCHAR2表示變長的字符類型
      定義格式是VARCHAR2(N),N表示最多可占用的字節數
      最大長度是4000字節
      DATE用於定義日期時間的數據
      長度是7個字節
      默認格式是:DD-MON-RR,例如:11-APR-71
  • 創建表
    CREATE語句
    CREATE TABLE 名字()
    DESC語句(查看表的結構)
    DESC table_name
    DEFAULT語句
    可以通過DEFAULT子句給列指定默認值
    給gender列賦默認值 ‘M‘,如果沒有指定性別的員工,
    默認是男性.
    NOT NULL
    非空是一種約束條件,用於確保字段值不為空
    默認情況下,任何列都允許有空值
    當某個字段被設置了非空約束條件,這個字段中必須 存在有效值
    當執行插入數據的操作時,必須提供這個列的數據
    當執行更新操作時,不能給這個列的值設置為NULL

  • 修改表
    修改表名
    在建表後如果希望修改表名,可以使用RENAME語句實 現
    增加列
    給表增加列可以使用ALTER TABLE的ADD子句實現
    語法: ALTER TABLE table_name ADD
    列只能增加在最後,不能插入到現有的列中
    刪除列
    使用ALTER TABLE table_name DROP(column);
    刪除字段需要從每行中刪掉該字段占據的長度和數據,
    並釋放在數據塊中占據空間,如果表記錄比較大,刪除 字段可能需要比較長的時間.
    修改列
    建表之後們可以改變表中列的數據類型、長度和默認值
    修改僅對以後插入的數據有效
    如果把長度由大改小,有可能不成功
    語法:ALTER TABLE table_name MODIFY

  • DML語句
    INSERT語句:給數據表增加記錄
    語法如下:
    INSERT INTO table_name[(column[,column...])]
    VALUES(value[,value...]);
    執行DML操作以後,需要在執行commit語句,才算真正
    確認了此操作
    如果插入的列有日期字段,需要考慮日期的格式
    可以自定義日期格式,用TO_DATE函數轉換為日期類型的數據
    UPDATE語句
    更新表中的記錄
    語法如下:UPDATE table_name
    SET column = value[,column=value]..
    [WHRER condition];
    如果沒有WHERE子句,則全表的數據都會被更新,務必小心
    DELETE語句
    刪除表中的記錄
    語法如下:DELETE[FROM] table_name[WHERE condition];
    如果沒有WHERE子句,則全表的數據都會被刪除!

數據庫的一些概念