1. 程式人生 > 資料庫 >【SQL基礎教程】初識資料庫

【SQL基礎教程】初識資料庫

目錄


 

1. 初識資料庫

1.1 定義

資料庫(DB):將大量資料儲存起來,通過計算機加工而成的可以進行高效訪問的資料集合。

資料庫管理系統(DBMS):用來管理資料庫的計算機系統。

1.2 DBMS的種類

根據資料的儲存格式(資料庫的種類),主要分為5個型別:

  • 層次資料庫:最古老的資料庫之一,把資料通過層次結構(樹形結構)表現出來,現在很少使用。
  • 關係資料庫:
    • 目前應用最廣泛的資料庫,採用行和列組成的二維表管理資料,使用SQL(結構化查詢語言)進行資料操作。
    • 關係資料庫管理系統(RDBMS)代表:Oracle Database、SQL Server、DB2、PostgreSQL、MySQL
  • 面向物件資料庫:儲存物件(資料及對資料的操作)的資料庫
  • XML資料庫:儲存XML形式的資料
  • 鍵值儲存系統:儲存查詢所使用的主鍵(key)和值(value)的組合的資料庫。舉例:MongoDB。

1.3  RDBMS的常見系統結構

使用 RDBMS 時,最常見的系統結構是客戶端 / 伺服器(C/S)型別這種結構。

1.4 表的結構

表是關係資料庫中用來管理資料的二維表。

表儲存在由RDBMS管理的資料庫中,根據SQL語句返回的資料同樣必須是二維表的形式。

表的列稱為欄位,表的行稱為記錄,行和列交匯的方格稱為單元格。

關係資料庫必須以行為單位進行資料讀寫。

2. 初始SQL

2.1 SQL語句的種類

根據對RDBMS賦予的指令種類的不同,SQL 語句可以分為以下3類:

  • DDL:資料定義語言,用來建立或者刪除儲存資料用的資料庫以及資料庫中的表等物件。
    • CREATE:建立資料庫和表等物件
    • DROP:刪除資料庫和表等物件
    • ALTER:修改資料庫和表等物件的結構
  • DML:資料操縱語言,用來查詢或者變更表中的記錄。(使用最多)
    • SELECT:查詢表中的資料
    • INSERT:向表中插入新資料
    • UPDATE:更新表中的資料
    • DELETE:刪除表中的資料
  • DCL:資料控制語言,用來確認或者取消對資料庫中的資料進行的變更。除此之外,還可以對 RDBMS 的使用者是否有許可權操作資料庫中的物件(資料庫表等)進行設定。
    • COMMIT:確認對資料庫中的資料進行的變更
    • ROLLBACK :取消對資料庫中的資料進行的變更
    • GRANT:賦予使用者操作許可權
    • REVOKE:取消使用者的操作許可權

2.2 SQL的基本書寫規則

  • SQL語句要以分號結尾。
  • SQL不區分關鍵字的大小寫,但是插入到表中的資料是區分大小寫的。
  • win系統預設不區分表名及欄位名的大小寫。
  • 常數的書寫方式是固定的。
    • 字串和日期常數需要使用單引號括起來。例如:'abc', '26 Jan 2010', '10/01/26',,'2010-01-26'
    • 數字常數無需加註引號,直接書寫數字即可。例如:1234
  • 單詞需要用半形空格或者換行來分隔。

2.3 資料庫的建立

語法:

CREATE DATABASE < 資料庫名稱 > ;

2.4 表的建立

語法:

CREATE TABLE < 表名 >
( < 列名 1> < 資料型別 > < 該列所需約束 > ,
  < 列名 2> < 資料型別 > < 該列所需約束 > ,
  < 列名 3> < 資料型別 > < 該列所需約束 > ,
  < 列名 4> < 資料型別 > < 該列所需約束 > ,
  .
  .
  .
  < 該表的約束 1> , < 該表的約束 2> ,……);

2.5 命名規則

  • 資料庫名稱、表名、列名只能使用半形英文字母、半形數字、下劃線三種字元。
  • 名稱必須以半形英文字母開頭。
  • 名稱不能重複:同一個資料庫中不能建立兩個相同名稱的表,同一個表中也不能建立兩個名稱相同的列。

2.6 資料型別的指定

資料庫建立的表,所有的列都必須指定資料型別,每一列都不能儲存與該列資料型別不符的資料。

四種基本的資料型別

  • INTEGER型:用來指定儲存整數的列的資料型別(數字型),不能儲存小數。
  • CHAR型:用來儲存定長字串,當列中儲存的字串長度達不到最大長度的時候,使用半形空格進行補足,由於會浪費儲存空間,所以一般不使用。
  • VARCHAR型:用來儲存可變長度字串,可變長字串即使字元數未達到最大長度,也不會用半形空格補足。
  • DATE型:用來指定儲存日期(年月日)的列的資料型別(日期型)。

2.7 約束的設定

約束是除了資料型別之外,對列中儲存的資料進行限制或者追加條件的功能。

  • NOT NULL是非空約束,即該列必須輸入資料。
  • PRIMARY KEY是主鍵約束,代表該列是唯一值,可以通過該列取出特定的行的資料。主鍵就是可以特定一行資料的列。

2.8 表的刪除和更新

  • 刪除表(DROP TABLE 語句):
DROP TABLE < 表名 > ;

注意刪除的表是無法恢復的,只能重新插入,請執行刪除操作時要特別謹慎。

  • 更新表(ALTER TABLE語句) :
    • 新增列的 ALTER TABLE 語句
ALTER TABLE < 表名 > ADD COLUMN < 列的定義 >;
  • 刪除列的 ALTER TABLE 語句
ALTER TABLE < 表名 > DROP COLUMN < 列名 >;

注意ALTER TABLE 語句和 DROP TABLE 語句一樣,執行之後無法恢復。

2.9 插入資料

INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);