摘自《MySQL必知必會》
1.1.1 什么是數據庫
數據庫:保存有組織的數據的容器(通常是一個文件或一組文件)
人們通常用數據庫這個術語來代表他們使用的數據庫軟件。這是不正確的,它是引起混淆的根源。確切地說,數據庫軟件應稱為DBMS(數據庫管理系統)。在很大程度上說,數據庫究竟是文件還是別的什么東西并不重要,因為你并不直接訪問數據庫;你使用的是DBMS,它替你訪問數據庫。
1.1.2 表
表(table):某種特定類型數據的結構化清單。
這里關鍵的一點在于,存儲在表中的數據是一種類型的數據或一個清單。決不應該將顧客的清單與訂單的清單存儲在同一個數據庫表中。這樣做將使以后的檢索和訪問很困難。應該創建兩個表,每個清單一個表。
數據庫中的每個表都有一個名字,用來標識自己。此名字是唯一的,這表示數據庫中沒有其他表具有相同的名字。
表名的唯一性取決于多個因素,如數據庫名和表名等的結合。這表示,雖然在相同數據庫中不能兩次使用相同的表名,但在不同的數據庫中卻可以使用相同的表名。
表具有一些特性,這些特性定義了數據在表中如何存儲,如可以存儲什么樣的數據,數據如何分解,各部分信息如何命名,等等。描述表的這組信息就是所謂的模式(schema)。
1.1.5 主鍵
表中每一行都應該有可以唯一標識自己的一列(或一組列)。一個顧客表可以使用顧客編號列,而訂單表可以使用訂單ID,雇員表可以使用雇員ID或雇員社會保險號。
唯一標識表中每行的這個列(或這組列)稱為主鍵。主鍵用來表示一個特定的行。沒有主鍵,更新或刪除表中特定行很困難,因為沒有安全的方法保證只涉及相關的行。
雖然并不總是都需要主鍵,但大多數數據庫設計人員都應保證他們創建的每個表具有一個主鍵,以便于以后的數據操縱和管理。
表中的任何列都可以作為主鍵,只要它滿足以下條件:任意兩行都不具有相同的主鍵值;
每個行都必須具有一個主鍵值(主鍵列不允許NULL值)。
這里列出的規則是MySQL本身強制實施的。
除MySQL強制實施的規則外,應該堅持的幾個普遍認可的最好習慣為:不更新主鍵列中的值;
不重用主鍵列的值;
不在主鍵列中使用可能會更改的值。(例如,如果使用一個名字作為主鍵以標識某個供應商,當該供應商合并和更改其名字時,必須更改這個主鍵。)
2.1.1客戶機-服務器軟件
MySQL、Oracle以及Microsoft SQL Server等數據庫是基于客戶機—服務器的數據庫。服務器部分是負責所有數據訪問和處理的一個軟件。這個軟件運行在稱為數據庫服務器的計算機上。與數據文件打交道的只有服務器軟件。關于數據、數據添加、刪除和數據更新的所有請求都由服務器軟件完成。這些請求或更改來自運行客戶機軟件的計算機。客戶機是與用戶打交道的軟件。例如,如果你請求一個按字母順序列出的產品表,則客戶機軟件通過網絡提交該請求給服務器軟件。服務器軟件處理這個請求,根據需要過濾、丟棄和排序數據;然后把結果送回到你的客戶機軟件。
2.2.1 mysql命令行實用程序命令用;結束,換句話說,僅按Enter不執行命令;
輸入help或\h獲得幫助,也可以輸入更多的文本獲得特定命令的幫助(如,輸入help select獲得使用SELECT語句的幫助);
輸入quit或exit退出命令行實用程序。
3.1 連接
MySQL與所有客戶機—服務器DBMS一樣,要求在能執行命令之前登錄到DBMS。MySQL在內部保存自己的用戶列表,并且把每個用戶與各種權限關聯起來。
為了連接到MySQL,需要以下信息:主機名(計算機名)——如果連接到本地MySQL服務器,為localhost;
端口(如果使用默認端口3306之外的端口);
一個合法的用戶名;
用戶口令(如果需要)。
mysql -u root -p -h myserver -p 9999
3.2選擇數據庫
在你最初連接到MySQL時,沒有任何數據庫打開供你使用。在你執行任意數據庫操作前,需要選擇一個數據庫。
USE crashcourse;
3.3了解數據庫和表
SHOW DATABASES;
返回可用數據庫的一個列表。
SHOW TABLES;
返回當前選擇的數據庫內可用表的列表。
SHOW COLUMNS FROM customers;
SHOW COLUMNS要求給出一個表名( 這個例子中的FROM customers),它對每個字段返回一行,行中包含字段名、數據類型、是否允許NULL、鍵信息、默認值以及其他信息。
DESCRIBE customers;
MySQL支持用DESCRIBE作為SHOW COLUMNS FROM的一種快捷方式。
SHOW STATUS;
用于顯示廣泛的服務器狀態信息;
SHOW CREATE DATABASE;
SHOW CREATE TABLE;
分別用來顯示創建特定數據庫或表的MySQL語句;
SHOW GRANTS;
用來顯示授予用戶(所有用戶或特定用戶)的安全權限;
SHOW ERRORS;
SHOW WARNINGS;
用來顯示服務器錯誤或警告消息。
在mysql命令行實用程序中,執行以下命令可以顯示允許的SHOW語句。
HELP SHOW;