mysql是基於客戶機—伺服器的資料庫。客戶機—伺服器應用分為兩個不同的部分。伺服器部分是負責所有資料訪問和處理的一個軟體。
連線mysql
要連線mysql需要知道如下
- 主機名: 本地為localhost
- 埠: 預設為3306,如更改必須加上此項
- 使用者名稱
- 密碼
基本資料庫命令
顯示所有資料庫
SHOW DATABASES;
選擇資料庫
USE databasename;
顯示所有表
SHOW TABLES;
顯示錶列
SHOW COLUMNS FROM tablename
等同於
DESC tablename;
其他show語句
- SHOW STATUS,用於顯示廣泛的伺服器狀態資訊;
- SHOW GRANTS,用來顯示授予使用者(所有使用者或特定使用者)的安全許可權;
- SHOW ERRORS和SHOW WARNINGS,用來顯示伺服器錯誤或警告訊息.值得注意的是,客戶機應用程式使用與這裡相同的MySQL命令。
檢索資料
語法: SELECT _ FROM tablename;
_代表特定的一列或幾列
例如: SELECT * FROM tab1; 從tab1中取出所用列的資料
SELECT name FORM tab1; 從tab1中取出name列的資料
SELECT name, age FROM tab1; 檢索多個列
檢索不同的行
SELECT返回所有匹配的行。如果你不想要每個值每次都出現,而是希望同樣的值只出現一次,就要使用DISTINCT關鍵字
SELECT DISTINCT age FROM tab1; 只返回所有不同的age
限制檢索結果
LIMIT子句
SELECT name FROM tab1 LIMIT 5; 顯示小於等於5條資料(如果不足五條就小於)
SELECT name FROM tab1 LIMIT 10, 5; 從第十行開始檢索五行
排序資料
首先注意,如果不明確控制的話,直接從資料庫中檢索的資料不能視為已排序資料。
子句(clause): SQL語句由子句構成,有些子句是必需的,而
有的是可選的。一個子句通常由一個關鍵字和所提供的資料組
成。例如,前面的SELECT語句的FROM子句和LIMIT子句
ORDER BY子句
ORDER BY子句用來排序檢索的資料
單個列排序
SELECT name FROM tab1 ORDER BY name; 以將name列以字母順序排序
SELECT name FROM tab1 ORDER BY age; 以age列的數字大小排序
多個列排序
SELECT name, age FROM tab1 ORDER BY name, age; 先按name排序,再按age排序,只有當name有重複的值時,才會按照age排序
指定排序方向
OEDER BY 預設升序排列(A-Z),在mysql大小寫字母被視為相同,DESC 關鍵字:降序排列(Z-A),還有的ASC是升序排列,用處不大
一個小栗子:
找出一組資料中最大的幾個數
SELECT name FROM tab1 ORDER_BY age DESC LIMIT 5