MySQL 入门

示例

在MySQL中创建数据库

CREATE DATABASE mydb;

返回值:


使用创建的数据库 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)。

返回值:


在MySQL表中插入一行

INSERT INTO mytable ( username, email )
VALUES ( "myuser", "myuser@example.com" );

返回值示例:

该varchar又名strings也可以使用单引号插入:

INSERT INTO mytable ( username, email )
VALUES ( 'username', 'username@example.com' );


将一行更新到MySQL表中

UPDATE mytable SET username="myuser" WHERE id=8

返回值示例:

该int值可以插入查询中而不带引号。字符串和日期必须用单引号'或双引号引起来"。


在MySQL表中删除一行

DELETE FROM mytable WHERE id=8

返回值示例:

这将删除具有id8的行。


根据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';

将创建一个可以从任何地方(本地计算机除外)进行连接的用户。

返回值示例:

添加权限

为用户授予指定数据库的所有表的通用基本特权:

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。

如果必须使用此类名称,请将它们放在反引号``分隔符之间。例如:

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

包含此表上的反引号分隔符的查询可能是:

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