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 中使用包含空格或使用保留字的列或表名。例如,最好避免像 tablefirst name 這樣的名字。

如果你必須使用這些名稱,請將它們放在 back-tick ``分隔符之間。例如:

CREATE TABLE `table`
(   
   `first name` VARCHAR(30)
);

包含此表上的反斜槓分隔符的查詢可能是:

 SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';