MySQL 语法表

1. 概述
MySQL 是一种开源的,关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据库的管理和操作。MySQL 的语法包含多种类型的命令,用于创建、修改和查询数据库,以及对数据库进行备份和恢复等操作。本文将详细介绍 MySQL 常用的语法及其使用方法。
2. 数据库操作
2.1 创建数据库
使用 CREATE DATABASE 命令可以创建一个新的数据库。语法如下:
CREATE DATABASE database_name;
其中,database_name 是要创建的数据库的名称。下面是一个示例:
CREATE DATABASE mydatabase;
2.2 删除数据库
用 DROP DATABASE 命令可以删除一个数据库。语法如下:
DROP DATABASE database_name;
其中,database_name 是要删除的数据库的名称。下面是一个示例:
DROP DATABASE mydatabase;
注意:删除数据库将永久删除该数据库及其所有的表和数据,请谨慎操作。
2.3 选择数据库
使用 USE 命令可以选择要使用的数据库。语法如下:
USE database_name;
其中,database_name 是要选择的数据库的名称。下面是一个示例:
USE mydatabase;
2.4 查看数据库
使用 SHOW DATABASES 命令可以查看当前 MySQL 服务器上的所有数据库。语法如下:
SHOW DATABASES;
下面是一个示例的输出结果:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydatabase |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
3. 表操作
3.1 创建表
使用 CREATE TABLE 命令可以创建一个新的表。语法如下:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);
其中,table_name 是要创建的表的名称,column1, column2, column3, … 是表的列名和数据类型。
下面是一个示例:
CREATE TABLE employees (
id INT,
name VARCHAR(50),
age INT,
salary FLOAT
);
3.2 删除表
使用 DROP TABLE 命令可以删除一个表。语法如下:
DROP TABLE table_name;
其中,table_name 是要删除的表的名称。下面是一个示例:
DROP TABLE employees;
3.3 查看表结构
使用 DESC 命令可以查看一个表的结构,即表的列名和数据类型。语法如下:
DESC table_name;
其中,table_name 是要查看结构的表的名称。下面是一个示例的输出结果:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| salary| float | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3.4 修改表结构
使用 ALTER TABLE 命令可以修改一个表的结构,包括添加、修改和删除列,以及修改列的数据类型等操作。语法如下:
ALTER TABLE table_name action;
其中,table_name 是要修改的表的名称,action 是要执行的操作。下面是一些常用的操作示例:
- 添加列:
ALTER TABLE employees ADD email VARCHAR(100); - 修改列的数据类型:
ALTER TABLE employees MODIFY COLUMN age BIGINT; - 删除列:
ALTER TABLE employees DROP COLUMN salary;
4. 数据操作
4.1 插入数据
使用 INSERT INTO 命令可以向表中插入新的一行数据。语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
其中,table_name 是要插入数据的表的名称,column1, column2, column3, ... 是要插入数据的列名,value1, value2, value3, ... 是要插入的数据值。下面是一个示例:
INSERT INTO employees (id, name, age, salary)
VALUES (1, 'John Doe', 25, 5000.00);
4.2 更新数据
使用 UPDATE 命令可以修改表中的数据。语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
其中,table_name 是要更新数据的表的名称,column1 = value1, column2 = value2, ... 是要更新的列和新的值,condition 是更新条件。下面是一个示例:
UPDATE employees
SET age = 26, salary = 5500.00
WHERE id = 1;
4.3 删除数据
使用 DELETE FROM 命令可以从表中删除一行或多行数据。语法如下:
DELETE FROM table_name
WHERE condition;
其中,table_name 是要删除数据的表的名称,condition 是删除条件。下面是一个示例:
DELETE FROM employees
WHERE id = 1;
4.4 查询数据
使用 SELECT 命令可以从一个或多个表中获取数据。语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
其中,column1, column2, ... 是要查询的列名,table_name 是要查询的表的名称,condition 是查询条件。下面是一个示例:
SELECT name, age, salary
FROM employees
WHERE age > 30;
5. 索引操作
5.1 创建索引
使用 CREATE INDEX 命令可以创建一个表的索引。语法如下:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
其中,index_name 是索引的名称,table_name 是要创建索引的表的名称,column1, column2, ... 是要创建索引的列名。下面是一个示例:
CREATE INDEX idx_name ON employees (name);
5.2 删除索引
使用 DROP INDEX 命令可以删除一个表的索引。语法如下:
ALTER TABLE table_name
DROP INDEX index_name;
其中,table_name 是要删除索引的表的名称,index_name 是要删除的索引的名称。
下面是一个示例:
ALTER TABLE employees
DROP INDEX idx_name;
6. 备份与恢复
6.1 备份数据库
使用 mysqldump 命令可以备份整个数据库或指定表的数据和结构。语法如下:
mysqldump -u username -p password database_name > backup_file.sql
其中,username 是数据库的用户名,password 是数据库的密码,database_name 是要备份的数据库的名称,backup_file.sql 是要保存备份数据的文件名。
下面是一个示例:
mysqldump -u root -p mydatabase > backup.sql
6.2 恢复数据库
使用 mysql 命令可以恢复数据库备份文件。语法如下:
mysql -u username -p password database_name < backup_file.sql
其中,username 是数据库的用户名,password 是数据库的密码,database_name 是要恢复的数据库的名称,backup_file.sql 是要恢复的备份文件名。
下面是一个示例:
mysql -u root -p mydatabase < backup.sql
7. 事务操作
7.1 开启事务
使用 START TRANSACTION 命令可以开启一个新的事务。语法如下:
START TRANSACTION;
7.2 提交事务
使用 COMMIT 命令可以提交当前事务的修改,使其永久生效。语法如下:
COMMIT;
7.3 回滚事务
使用 ROLLBACK 命令可以撤销当前事务的修改,回滚到事务开始前的状态。语法如下:
ROLLBACK;
7.4 设置事务隔离级别
使用 SET TRANSACTION ISOLATION LEVEL 命令可以设置事务的隔离级别。语法如下:
SET TRANSACTION ISOLATION LEVEL level;
其中,level 是事务隔离级别的名称,常用的隔离级别包括 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE。
下面是一个示例:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
8. 用户管理
8.1 创建用户
使用 CREATE USER 命令可以创建一个新的用户。语法如下:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
其中,username 是要创建的用户的名称,hostname 是要连接的主机名,password 是用户的密码。下面是一个示例:
CREATE USER 'john'@'localhost' IDENTIFIED BY 'password';
8.2 删除用户
使用 DROP USER 命令可以删除一个用户。语法如下:
DROP USER 'username'@'hostname';
其中,username 是要删除的用户的名称,hostname 是用户连接的主机名。下面是一个示例:
DROP USER 'john'@'localhost';
8.3 授权用户权限
使用 GRANT 命令可以授权用户特定的权限。语法如下:
GRANT privilege1, privilege2, ... ON database.table TO 'username'@'hostname';
其中,privilege1, privilege2, ... 是要授予的权限,database.table 是要授权的数据库和表,username 是要授权的用户的名称,hostname 是用户连接的主机名。下面是一个示例:
GRANT SELECT, INSERT, UPDATE ON mydatabase.employees TO 'john'@'localhost';
8.4 撤销用户权限
使用 REVOKE 命令可以撤销用户的特定权限。语法如下:
REVOKE privilege1, privilege2, ... ON database.table FROM 'username'@'hostname';
其中,privilege1, privilege2, ... 是要撤销的权限,database.table 是要撤销权限的数据库和表,username 是要撤销权限的用户的名称,hostname 是用户连接的主机名。下面是一个示例:
REVOKE SELECT, INSERT, UPDATE ON mydatabase.employees FROM 'john'@'localhost';
以上就是 MySQL 的常用语法表的详细说明。希望本文可以对你理解和使用 MySQL 有所帮助。如有疑问,请查阅 MySQL 官方文档或寻求专业人士的帮助。
极客笔记