1. 程式人生 > >sweetgum2012的專欄

sweetgum2012的專欄

瞭解MYSQL

資料庫
資料庫是一個以某種有組織的方式儲存的資料集合。

資料庫中通過 這種結構化的檔案來儲存某種特定型別的資料,例如:

studentID studentName studentAge
20101101 Li Hua 18
20101102 Andy 19
20101103 John 20

上面是一個統計班級學生資訊結構, 一般在一個特定的資料庫中,儲存著多種多樣的 結構(表名應該是唯一標示的),各個表結構之間可以維持某種連線關係。

1. 表(table)

某種特定型別資料的結構化清單

中的記錄:
表中有 ,每一行代表表中的一條記錄,而每一列儲存某種特定的資訊,上面的班級學生資訊表中的第一列表示學生ID資訊。

2. 主鍵:

  • 主鍵是表中一列或者一組列標識的,它的值能夠唯一的標識表中的每一行,是唯一的,不能為NULL,表中的主鍵需要滿足一下的條件:
  • 任意兩行都不具有相同的主鍵值;
  • 每一行都必須具有一個主鍵值(主鍵值不允許為NULL
  • 主鍵列中的值不允許修改或更新

3. SQL (structured Query Language)結構化查詢語言

SQL是一種專門用來和資料庫打交道的語言,許多資料庫管理系統廠商都對SQL語言進行了相應的擴充套件,例如MySQL,Oracle,SQL Server等等,但是大多數資料庫供應商都支援SQL。

MYSQL的安裝與開啟

1. Ubuntu中安裝MySql:

  • 只需要線上安裝即可:
    picture1

  • 在安裝過程中可能需要為mysql root輸入密碼,需要記住密碼,利用下面的方式開啟MySQL:

    1)檢查MySQL的服務是否啟動:
    這裡寫圖片描述

    2)開啟service服務:
    表示服務已經啟動,如果沒有啟動,可以使用如下的方式啟動mysql service:
    這裡寫圖片描述

    3) 使用root賬號登陸:
    這裡寫圖片描述
    其中-p表示輸入密碼,若沒有為root輸入密碼,則不用-p

2. 檢視系統中所有資料庫:

這裡寫圖片描述

3. 連結資料庫:

這裡寫圖片描述

4. 檢視特定資料庫的內容:

這裡寫圖片描述

檢索資料庫

1. SELECT語句檢索一個或多個數據列:

SELECT 列名(可以是多個列名) FROM 表名;

上面為最簡單的檢索資料庫語句,例如:

這裡寫圖片描述

可以列舉表中的多個列名,如果想檢索表中的所有列,可以使用 * 萬用字元, 例如:

這裡寫圖片描述

如果希望不顯示相同的值,只希望顯示不同的值,可以使用關鍵字DISTINCT,例如:

這裡寫圖片描述

2. 對檢索的結果進行排序

方式一:

SELECT 列名
FROM 表名
ORDER BY 一個列或者多個列名

方式二:

SELECT 列名
FROM 表名
ORDER BY 23//表示以列名錶中的第2列和第3列排序(優先第2列,第2列相同的情況下根據第3列排序)

通過 DESC(降序)ASC(升序) 指定排序是降序還是升序,預設情況下是升序排列,例如:

這裡寫圖片描述

注意 ORDER BY 語句應該是 SELECT 語句的最後一句

3. 通過where進行檢索過濾**

  • 基本形式:

    SELECT 列名
    FROM 表名
    WHERE 子句
    ORDER BY 子句;
  • WHERE子句中的操作符:

    操作符 說明 操作符 說明
    = 等於 > 大於
    <> 不等於 >= 大於等於
    != 不等於 !> 不大於
    < 小於 BETWEEN 在指定的兩個值之間
    <= 小於等於 IS NULL 為NULL值
    !< 不小於
  • 運用IS NULL的例子:
    這裡寫圖片描述

  • WHERE 子句中使用高階資料過濾, 例如 ANDORINNOT

    SELECT pro_id, prod_price, prod_name
    FROM Products
    WHERE vend_id = 'DLL01' AND prod_price <= 4;
    SELECT pro_id, prod_price, prod_name
    FROM Products
    WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
  • IN 操作符後跟由逗號分隔的合法值,這些值必須在括號裡面, IN 的優點在於可以包含其他的SELECT語句,能夠更加動態的建立WHERE子句。

    SELECT pro_id, prod_price, prod_name
    FROM Products
    WHERE vend_id IN ('DLL01', 'BRS01')
    ORDER BY prod_name;
  • 使用 萬用字元 進行過濾, 為了使用萬用字元,必須在WHERE 子句中使用 LIKE 關鍵字,有如下幾種萬用字元:

    萬用字元 意義
    % 任何字元出現任何次數
    _ 只是匹配單個字元
    [] 用來指定一個字符集

    ····

    下面是幾個使用萬用字元的例子:

    這裡寫圖片描述

    這裡寫圖片描述

    注意:
    1)不要過度使用萬用字元,能使用別的方式代替儘量使用別的方式
    2) 儘量不要在開頭使用萬用字元

  • 建立計算欄位:

    SELECT Concat(vend_name, ' (', vend_country, ')')
    FROM Vendors
    ORDER BY vend_name;
    --功能:SELECT完成以下的拼接:
    --儲存在vend_name中的名字;
    --包含一個空格和(的字串;
    --儲存在vend_country中的國家;
    --包含一個)的字串。
  • AS取別名:

    這裡寫圖片描述

    這裡寫圖片描述