📜  MySQL命令备忘单

📅  最后修改于: 2020-11-19 00:51:36             🧑  作者: Mango

MySQL命令/备忘单

MySQL备忘单提供了一个页面,其中包含所有最常用的命令和语句。这份一页的备忘单有助于我们更有效,更快速地使用MySQL数据库。

MySQL是广泛使用的开源RDBMS数据库,可为客户提供高性能和可扩展的基于Web的嵌入式数据库应用程序。它具有许多有用的命令和语句,可用于基于Web的嵌入式数据库应用程序。 MySQL中的命令是用于执行特定任务或服务的强大指令。它们对每个开发人员了解和使用这些查询与MySQL数据库进行实时交互非常有用。 MySQL命令基于结构化查询语言(SQL),该结构化查询语言可以支持各种操作系统,例如Linux,UNIX,macOS和Windows。

我们可以使用以下查询查看MySQL中所有命令的列表:

mysql> HELP;

让我们看看在MySQL中创建和管理数据库所需的最常用命令和语句。

MySQL命令行客户端命令

该命令允许我们使用以下语法使用用户名和密码连接MySQL Server。

mysql -u [username] -p;

如果要连接特定的数据库,请使用以下语法:

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

如果要设置新密码,请使用以下语法:

mysqladmin -u root password your_password;

我们可以使用“退出”命令退出MySQL命令行客户端。

我们可以使用以下命令清除Linux中的控制台窗口:

mysql> system clear;

要注意的是,Windows没有可用的命令来清除MySQL的控制台窗口。

使用数据库

数据库存储有组织的记录集合,用户可以非常轻松地访问和管理这些记录。它将数据保存在表,行,列和索引中,这些数据可以帮助我们快速找到相关信息。我们可以使用以下语法创建数据库。它还检查数据库名称,无论它是否已经存在。

CREATE DATABASE IF NOT EXISTS db_name;

如果要使用正在使用的另一个数据库来更改当前数据库,请使用以下语法:

mysql> use db_name;

我们可以使用以下语法永久删除特定的数据库及其关联文件:

DROP DATABASE IF EXISTS db_name;

要显示当前服务器中的所有数据库,请使用以下语法:

mysql> SHOW DATABASES;

使用表格

表是数据库中以行和列格式存储的相关数据的集合。我们可以使用以下语法创建一个新表。它还会检查表名,无论它是否已经存在。

CREATE TABLE IF NOT EXISTS tab_name (
  column_list (s)
);

我们可以使用INSERT语句将记录添加到表中,如下所示:

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );

我们可以使用以下语法永久删除特定的表:

DROP TABLE IF EXISTS tab_name;

要显示当前数据库中的所有表,请使用以下语法:

mysql> SHOW TABLES;

我们可以使用以下语句在表中添加新列或删除任何列:

-- Add a new column
ALTER TABLE tab_name ADD [COLUMN] colm_name;

-- Delete column
ALTER TABLE tab_name DROP [COLUMN] colm_name;

我们可以使用以下语句将主键添加到表中,或将其从表中删除:

-- Add a primary key
ALTER TABLE tab_name ADD PRIMARY KEY (colm_names);

-- Delete primary key
ALTER TABLE tab_name DROP PRIMARY KEY;

如果要在列上添加具有特定名称的索引,请使用以下语法:

ALTER TABLE tabl_name ADD INDEX [name] (column(s));

我们可以使用以下语句显示表的结构:

DESCRIBE tab_name;

我们可以使用以下语句显示表的列信息:

DESCRIBE tab_name colm_name;

使用索引

索引是一种数据结构,它使我们能够更快地检索数据库表上的记录。如果要在表中添加索引,将使用以下语句:

CREATE INDEX [index_name] ON [table_name] (column names);

要删除索引,请使用以下语句:

DROP INDEX index_name;

使用视图

MySQL中的视图用于通过连接一个或多个表来创建虚拟表。我们可以使用SELECT语句创建或替换VIEW,如下所示:

CREATE [OR REPLACE] VIEW IF NOT EXISTS view_name AS SELECT column_list  
FROM tables WHERE conditions;  

我们可以使用以下语句删除视图:

DROP VIEW [IF EXISTS] view (s).;

我们可以使用以下语句重命名视图:

RENAME TABLE view_name TO new_view_name;

如果要显示数据库中所有可用的视图,请使用以下语句:

SHOW FULL TABLES [{FROM | IN } db_name] WHERE tab_type = 'VIEW';

使用存储过程

存储过程是一组具有特定名称的SQL语句,该名称接受某些输入并执行某些任务。这样可以节省在数据库中一次又一次地编写相同代码的时间。我们可以使用以下语句在MySQL中创建存储过程:

CREATE PROCEDURE procedure_name[ (parameter_list) ]  
BEGIN  
    Declaration_section  
    Executable_section  
END;

如果要从数据库中删除现有的存储过程,请使用以下语句:

DROP PROCEDURE [IF EXISTS] procedure_name;

如果要显示数据库中所有可用的过程,请使用以下语句:

SHOW PROCEDURE STATUS 
[LIKE 'pattern' | WHERE condition];

使用触发器

触发器是数据库中的过程代码,每当数据库中特定表或视图上的某些事件发生时,该代码便自动执行。我们可以使用以下语句创建新的触发器:

CREATE TRIGGER trigger_name
{ AFTER | BEFORE } {INSERT | UPDATE| DELETE }
ON tab_name FOR EACH ROW
BEGIN  
    --variable declarations  
    --trigger code  
END;

如果要删除现有触发器,请使用以下语句:

DROP TRIGGER [IF EXISTS] trigger_name;

如果要显示数据库中所有可用的触发器,请使用以下语句:

SHOW TRIGGERS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE condition];

使用存储的功能

MySQL中的存储函数是一组执行某些任务/操作并返回单个值的SQL语句。它是MySQL中存储程序的类型之一。创建存储函数,请确保您具有CREATE ROUTINE数据库特权。在MySQL中创建存储函数的语法如下:

DELIMITER $$
 
CREATE FUNCTION function_name(parameter(s))
RETURNS datatype
[NOT] {DETERMINISTIC, NO SQL, or READS SQL DATA}
BEGIN
 -- SQL statements
END $$
 
DELIMITER ;

如果要删除现有触发器,请使用以下语句:

DROP FUNCTION [IF EXISTS] fun_name;

如果要显示数据库中所有可用的触发器,请使用以下语句:

SHOW FUNCTION STATUS 
[LIKE 'pattern' | WHERE condition];

基于表的热门查询

在这里,我们将看到对表执行的一些基本查询,以查找相关信息。

如果要显示所有表数据,请使用以下语法:

SELECT * FROM tab_name;

如果我们要显示表中某些选定列的数据,请使用以下语法:

SELECT colm1, colm2... FROM tab_name;

我们可以使用以下语句从表中过滤出结果:

SELECT column_list(S) FROM tab_name WHERE condition;

有时我们的表包含重复的行。但是我们只想显示unique(distinct)行,在这种情况下,将执行以下语句:

SELECT DISTINCT (column) FROM tab_name;

有时,表的列名不适用于输出。在这种情况下,我们可以使用以下语句更改结果中的列名称:

SELECT 
    Column(s) AS alias_name(s),
    Expression AS alias.....
FROM  tab_name;

如果要从多个表中获取输出,则需要使用JOIN操作。连接两个表的语法如下:

SELECT select_list
FROM table1
JOIN table2 ON condition;

我们可以使用以下语句来计算行数:

SELECT COUNT(*) FROM tab_name;

我们可以使用以下语句对结果集进行排序:

SELECT column_list FROM tab_name
ORDER BY colm1 ASC [DESC], colm2 ASC [DESC];

如果我们要将行分组到结果集中,请使用以下语法:

SELECT column_list FROM tab_name
GROUP BY colm1, colm2 ...;

如果我们要更新表的行,请使用以下语法:

UPDATE table_name
SET column1 = value1 ... WHERE condition;

我们可以使用以下语法从表中删除所有记录:

DELETE FROM tab_name;

从表中搜索数据

我们可以使用LIKE子句搜索数据,如下所示:

SELECT column_list FROM tab_name
WHERE column LIKE '%pattern%';

我们还可以使用带有RLIKE运算符的正则表达式来搜索文本,如下所示:

SELECT column_list FROM tab_name
WHERE column RLIKE 'regular_expression';

管理员的控制选项

在这里,我们将看到为数据库的管理员和用户提供控制选项的功能。

grant语句使系统管理员可以为访问数据库的MySQL用户帐户分配特权和角色。

GRANT privilege_name(s)   
ON object   
TO user_account_name;

使用revoke语句,系统管理员过去可以撤消对数据库上用户帐户的特权和角色。

REVOKE privilege_name(s)   
ON object   
FROM user_account_name;