• 前言
      不是教程,
      不是心得,
      還沒有體會,
      更沒啥經驗。
      這是一篇實時的學習筆記,
      所以你我一樣,我們同在。
      God bless us!

  • 計劃
      學習書籍:SQL基礎教程
      全書共8章,每周一篇,2個月寫完。

    傳送門:SQL基礎教程


數據庫和SQL

1.數據庫

  • 提到SQL,首先必須談到數據庫,那麼什麼是數據庫?
    數據庫(DB)是將大量數據保存起來,通過計算機加工而成的可以進行高效訪問的數據集合。

  • 有了數據庫,那麼計算機怎麼去管理數據庫?
    數據庫管理系統(DBMS)是用來管理數據庫的計算機系統。

  • 既然是管理數據,為什麼不使用Excel,文本文件,而要使用DBMS?
    DBMS優點:1.實現多人同時共享數據;2.提供操作大量數據所需的格式;3.讀寫自動化;4.應對文件被誤刪、硬盤故障的突發事故

  • DBMS這麼厲害,那麼它有哪些種類?
    DBMS種類:層次型數據庫、關係型數據庫(RDBMS)(主要介紹)、面向對象數據庫、XML數據庫、鍵值存儲系統

  • 那麼介紹下關係型數據庫?
    關係型數據庫是現在應用最廣泛的數據庫。和Excel工作表一樣,它也採用行列二維表結構來存儲數據,一個數據庫中可以存儲多個表。Oracle Database、SQL Server、DB2、PostgreSQL、MySQL等都是關係型數據庫。
    注意:因為本文以學習SQL為主,不針對特定RDBMS,所以後續內容都使用便捷簡單的本地數據庫SQLite來操作。

  • 有了DB,有了RDBMS,然後我們就應該想着怎麼去讀寫數據了?
    那麼結構化查詢語言SQL出現了,SQL語句就是我們與RDBMS溝通交流的工具,我們通過寫SQL語句告訴RDBMS我們想要得到的數據,然後RDBMS訪問數據庫並將請求的數據返回給我們。

SQL

  • SQL語句的結構
    SQL是用關鍵字、表名、列名等組合而成的一條語句來描述操作的內容。

  • 關鍵字很重要,根據關鍵字我們主要分為三類

      DDL:(數據定義)
         CREATE:創建數據庫和表等對象
         DROP:刪除數據庫和表等對象
         ALTER:修改數據庫和表等對象的結構
    
      DML:(數據操作)
         SELECT:查詢表中的數據
         INSERT:向表中插入新數據
         UPDATE:變更表中的數據
         DALETE:刪除表中的數據
    
      DCL:(數據控制)
          COMMIT:確認對數據庫中的數據進行的變更
          ROLLBACK:取消對數據庫中的數據進行的變更
          GRANT:賦予用戶操作權限
          REVOKE:取消用戶操作權限
  • SQL的基本書寫規則

    1.SQL語句以分號結尾
    2.SQL語句不區分大小寫(插入表中的數據是區分大小寫的)
    3.字符串和日期常數需要使用單引號(‘’)括起來

    方便理解,後續內容使用以下規則:關鍵字大寫;表名的首字母大寫;其餘(列名等)小寫。

  • 創建表相關SQL語句實例練習

    1.創建數據庫
    CREATE DATABASE shop;
    
    2.創建數據表
    CREATE TABLE Jyushoroku
    (toroku_bango INTEGER PRIMARY KEY NOT NULL,
    name VARCHAR(128) NOT NULL,
    jyusho VARCHAR(256) NOT NULL,
    tel_no CHAR(10),
    mail_address CHAR(20)); 
    
    3.表的更新
    ALTER TABLE Jyushoroku ADD COLUNM yubin_bango CHAR(8) NOT NULL DEFAULT '0000-000';
    ALTER TABLE Jyushoroku DROP COLUNM yubin_bango CHAR(8) NOT NULL DEFAULT '0000-000';
    ALTER TABLE Jyushoroku RENAME TO Jyu;
    
    4.插入數據
    INSERT INTO Jyushoroku VALUES (1,'張三','湖南','0123456789','01234567899876543210','12345678');
    
    5.表的刪除
    DROP TABLE Jyushoroku;
    
    6.事務及提交(用於數據控制,後續會介紹)
    BEGIN TRANSACTION;
    COMMIT;