MySQL 入門
在 MySQL 中建立資料庫
CREATE DATABASE mydb;
返回值:
查詢 OK,1 行受影響(0.05 秒)
使用建立的資料庫 mydb
USE mydb;
返回值:
資料庫已更改
在 MySQL 中建立一個表
CREATE TABLE mytable
(
id int unsigned NOT NULL auto_increment,
username varchar(100) NOT NULL,
email varchar(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE mytable
將建立一個名為 mytable
的新表。
id int unsigned NOT NULL auto_increment
建立了 id
列,這種型別的欄位將為表中的每條記錄分配一個唯一的數字 ID(意味著在這種情況下沒有兩行可以具有相同的 id
),MySQL 將自動為記錄分配一個新的唯一值。id
欄位(從 1 開始)。
返回值:
查詢 OK,0 行受影響(0.10 秒)
將行插入 MySQL 表
INSERT INTO mytable ( username, email )
VALUES ( "myuser", "myuser@example.com" );
示例返回值:
查詢正常,1 行受影響(0.06 秒)
也可以使用單引號插入 varchar
aka strings
:
INSERT INTO mytable ( username, email )
VALUES ( 'username', 'username@example.com' );
將行更新為 MySQL 表
UPDATE mytable SET username="myuser" WHERE id=8
示例返回值:
查詢正常,1 行受影響(0.06 秒)
可以在沒有引號的查詢中插入 int
值。字串和日期必須用單引號'
或雙引號 "
括起來。
將行刪除到 MySQL 表中
DELETE FROM mytable WHERE id=8
示例返回值:
查詢正常,1 行受影響(0.06 秒)
這將刪除 id
為 8 的行。
根據 MySQL 中的條件選擇行
SELECT * FROM mytable WHERE username = "myuser";
返回值:
+----+----------+---------------------+
| `id` | username | email |
+----+----------+---------------------+
| 1 | myuser | myuser@example.com |
+----+----------+---------------------+
1 排(0.00 秒)
顯示現有資料庫的列表
SHOW databases;
返回值:
+-------------------+
| `Databases` |
+-------------------+
| information_schema|
| `mydb` |
+-------------------+
2 行(0.00 秒)
你可以將“information_schema”視為提供對資料庫後設資料的訪問的主資料庫。
在現有資料庫中顯示錶
SHOW tables;
返回值:
+----------------+
| Tables_in_mydb |
+----------------+
| `mytable` |
+----------------+
1 排(0.00 秒)
顯示錶格的所有欄位
DESCRIBE databaseName.tableName;
或者,如果已經使用資料庫:
DESCRIBE tableName;
返回值:
+-----------+----------------+--------+---------+-------------------+-------+
| `Field` | Type | Null | Key | Default | Extra |
+-----------+----------------+--------+---------+-------------------+-------+
| `fieldname` | fieldvaluetype | NO/YES | keytype | defaultfieldvalue | |
+-----------+----------------+--------+---------+-------------------+-------+
Extra
可能包含例如 auto_increment
。
Key
指的是可能影響該領域的鍵的型別。主要(PRI),獨特(UNI)……
n 行(0.00 秒)
其中 n 是表中欄位的數量。
建立使用者
首先,你需要建立一個使用者,然後授予使用者對某些資料庫/表的許可權。在建立使用者時,你還需要指定此使用者可以從哪裡連線。
CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';
將建立一個只能在託管資料庫的本地計算機上連線的使用者。
CREATE USER 'user'@'%' IDENTIFIED BY 'some_password';
將建立一個可以從任何地方連線的使用者(本地計算機除外)。
示例返回值:
查詢正常,0 行受影響(0.00 秒)
新增許可權
為指定資料庫的所有表授予使用者通用的基本許可權:
GRANT SELECT, INSERT, UPDATE ON databaseName.* TO 'userName'@'localhost';
為所有資料庫上的所有表授予使用者所有許可權(請注意):
GRANT ALL ON *.* TO 'userName'@'localhost' WITH GRANT OPTION;
如上所示,*.*
以所有資料庫和表為目標,databaseName.*
定位特定資料庫的所有表。也可以像 databaseName.tableName
那樣指定資料庫和表格。
如果使用者無需授予其他使用者許可權,則應忽略 WITH GRANT OPTION
。
特權可以是
ALL
或以下的組合,每個用逗號分隔(非詳盡列表)。
SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
注意
通常,你應該儘量避免在 SQL 中使用包含空格或使用保留字的列或表名。例如,最好避免像 table
或 first name
這樣的名字。
如果你必須使用這些名稱,請將它們放在 back-tick ``
分隔符之間。例如:
CREATE TABLE `table`
(
`first name` VARCHAR(30)
);
包含此表上的反斜槓分隔符的查詢可能是:
SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';