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) );
CREATETABLEmytable将创建一个名为的新表mytable。
idintunsignedNOTNULLauto_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。
WITHGRANTOPTION如果用户不需要授予其他用户特权,则应将其忽略。
特权可以是
ALL
或以下各项的组合,每个用逗号分隔(非详尽列表)。
SELECT INSERT UPDATE DELETE CREATE DROP
注意
通常,您应尝试避免在SQL中使用包含空格的列或表名或使用保留字。例如,最好避免使用诸如table或的名称firstname。
如果必须使用此类名称,请将它们放在反引号``分隔符之间。例如:
CREATE TABLE `table` ( `first name` VARCHAR(30) );
包含此表上的反引号分隔符的查询可能是:
SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';