MySQL 是一个支持结构化查询语言 (SQL) 的开源关系数据库管理系统。它有助于开发各种基于 Web 的应用程序和在线内容。MySQL 可以在 Linux/UNIX、macOS、Windows 等所有操作系统平台上运行,并且是 LAMP 堆栈的重要组件。

MySQL 是最受欢迎的数据库系统之一,许多云提供商将其作为其服务的一部分提供。它使用带有查询和数据的命令,通过与数据库通信来执行任务和功能。本文介绍了最常用的 MySQL 语句,这些语句允许用户有效地使用数据库。

使用 MySQL 客户端

MySQL 允许您使用命令行工具mysql之类的客户端连接到服务器。使用-u-p标志提供您的用户名和密码:

mysql -u [username] -p
mysql -u [username] -p [database]

完成后,退出 MySQL 命令行客户端,如下所示:

exit

使用用户帐户

要创建一个新用户帐户,请打开新终端以 root 身份访问 MySQL,并创建一个新用户,如下所示:

$ sudo mysql -u root -p
...
mysql> CREATE USER 'username' IDENTIFIED BY 'password';

您还可以通过指定他们必须从以下位置访问数据库的主机来设置具有受限访问权限的用户帐户:

CREATE USER 'user'@'localhost';
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

要指定远程连接,您可以将“localhost”替换为机器的 IP 地址,如下所示:

CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';

最后,您可以使用以下语句删除帐户:

DROP USER 'user'@'ip_address' IDENTIFIED BY 'password';

用户帐户权限

在继续之前,您需要在新用户帐户上设置适当的权限。这避免了数据库内不必要的用户访问的风险。

您可以使用 GRANT、REVOKE 和 ALTER 等语句在 MySQL 中使用用户权限。根据您希望用户能够执行的操作,您可以分配全部或部分权限。这些权限是 ALL PRIVILEGES、SELECT、UPDATE、INSERT、DELETE、CREATE、DROP 和 GRANT OPTION。

您可以将插入数据的管理权限分配给属于任何数据库的所有表:

GRANT INSERT ON *.* TO 'username'@'ip_address';

但是,您也可以通过在句点之前指定数据库来限制用户访问。您可以允许用户在数据库中的所有表中选择、插入和删除数据, 如下所示:

GRANT SELECT, INSERT, DELETE ON database.* TO 'user'@'ip_address' IDENTIFIED BY 'password';

同样,您可以通过在句点后指定表名来限制用户对特定表的访问。

GRANT SELECT, INSERT, DELETE ON database.table_name TO 'user'@'ip_address' IDENTIFIED BY 'password';

您可以向特定数据库中的每个表授予所有权限, 如下所示:

GRANT ALL PRIVILEGES ON database.* TO 'user'@'ip_address' IDENTIFIED BY 'password';

要从单个数据库撤消用户的权限:

REVOKE ALL PRIVILEGES ON database.* FROM 'user'@'ip_address'; 

您可以撤销每个数据库的所有用户权限,如下所示:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'ip_address'; 

最后,您可以像这样设置密码:

SET PASSWORD FOR 'user'@'ip_address' = PASSWORD('new_password');

请注意使用散列明文密码的 PASSWORD 函数。

使用数据库

您可以创建一个名称尚不存在的新数据库:

CREATE DATABASE database_name;

您可以将当前数据库切换到要使用的另一个数据库:

USE database_name;

最后,您可以删除整个数据库及其表,如下所示:

DROP DATABASE database_name;

使用表

表是MySQL 数据库的主要结构元素,将一组相关记录分组为行。每行都有不同数据类型的列,可以是 CHAR、VARCHAR 和 TEXT 等。

创建表的一般语法如下:

CREATE TABLE table_name (column_1 data_type1, column_2 data_type2);

您还可以通过选择特定列从现有表创建新表,如下所示:

CREATE TABLE new_table_name AS SELECT column_1, column_2 FROM existing_table_name;

您可以使用以下命令将数据添加到表中:

INSERT INTO table_name (column_1, column_2) VALUES (value_1, value_2);

要删除表,请使用 DROP TABLE 语句,如下所示:

DROP TABLE table_name;

或者您保留表格但使用以下方法删除其所有数据:

TRUNCATE TABLE table_name; 

访问数据库

使用以下语句显示 MySQL DMS 中的所有可用数据库:

SHOW DATABASES;

同样,您可以列出当前数据库中的所有表:

SHOW TABLES;

要查看表中的所有列:

DESCRIBE table_name;

要在表格中显示列信息:

DESCRIBE table_name column_name;

查询数据库

MySQL 允许您使用SELECT语句从数据库中查询数据。您可以使用各种 MySQL 子句来扩展其基本功能。

以下语句返回由表中每一行的两列组成的结果集:

SELECT column1, column2 FROM table_name; 

或按如下方式显示所有列:

SELECT * FROM table_name; 

您还可以使用以下条件查询数据库/表并检索信息:

SELECT column1, column2 FROM table_name WHERE condition; 

SELECT 语句还允许您使用 GROUP BY 子句按一列或多列对结果集进行分组。然后,您可以使用聚合函数来计算汇总数据:

SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;

更新表

您可以使用 UPDATE 或 ALTER 语句修改表内的数据。UPDATE 语句允许您更新现有的单个或多个记录/行。

以下 MySQL 命令更改UserID2的单个记录的UserNameCity

UPDATE Users SET UserName = 'Alfred James', City= 'Munich' WHERE UserID = 2;

虽然此示例更新了CityMunich的所有记录的所有UserName

UPDATE Users SET UserName='Juan' WHERE City='Munich'; 

您可以像这样向表中添加列:

ALTER TABLE table_name ADD COLUMN column_name;

要从表中删除列,请使用 ALTER TABLE 语句,如下所示:

ALTER TABLE table_name DROP COLUMN column_name; 

初学者的 MySQL

在本文中,您已经看到了最常见的 MySQL 命令。它们使您能够管理用户帐户、更改数据库结构和操作数据。

一旦您熟悉了基础知识,了解 MySQL 和安全性就会很有用。您的数据库可能包含有价值和敏感的个人数据,因此保护其免受窥探至关重要。

发表评论