MySQL 速查表

时间:2019-11-20 08:52:29  来源:igfitidea点击:

MySQL速查表为您提供了一页,其中包含最常用的MySQL命令和语句,可帮助您更有效地使用MySQL。

MySQL命令行客户端命令

使用具有用户名和密码的mysql命令行客户端连接到MySQL服务器(MySQL将提示输入密码):

mysql -u [username] -p;

使用用户名和密码使用指定的数据库连接到MySQL Server:

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

退出mysql命令行客户端:

exit;

使用mysqldump工具导出数据

mysqldump -u [username] -p [database] > data_backup.sql;

要在Linux上清除MySQL屏幕控制台窗口,请使用以下命令:

mysql> system clear;

当前,Windows操作系统上没有可用的命令来清除MySQL屏幕控制台窗口。

使用数据库

如果数据库服务器中不存在指定名称的数据库

CREATE DATABASE [IF NOT EXISTS] database_name;

使用数据库或将当前数据库更改为正在使用的另一个数据库:

USE database_name;

永久删除具有指定名称的数据库。
与数据库关联的所有物理文件将被删除。

DROP DATABASE [IF EXISTS] database_name;

显示当前MySQL数据库服务器中的所有可用数据库

SHOW DATABASE;

使用表格

显示当前数据库中的所有表。

SHOW TABLES;

创建一个新表

CREATE TABLE [IF NOT EXISTS] table_name(
  column_list
);

在表中添加新列:

ALTER TABLE table 
ADD [COLUMN] column_name;

从表中删除一列:

ALTER TABLE table_name
DROP [COLUMN] column_name;

将具有特定名称的索引添加到列上的表:

ALTER TABLE table 
ADD INDEX [name](column, ...);

将主键添加到表中:

ALTER TABLE table_name 
ADD PRIMARY KEY (column_name,...);

删除表的主键:

ALTER TABLE table_name
DROP PRIMARY KEY;

放一张桌子:

DROP TABLE [IF EXISTS] table_name;

显示表的列:

DESCRIBE table_name;

显示表中一列的信息:

DESCRIBE table_name column_name;

使用索引

在表上创建具有指定名称的索引:

CREATE INDEX index_name
ON table_name (column,...);

删除索引:

DROP INDEX index_name;

创建一个唯一索引:

CREATE UNIQUE INDEX index_name 
ON table_name (column,...);

使用视图

创建一个新视图:

CREATE VIEW [IF NOT EXISTS] view_name 
AS 
  select_statement;

使用WITH CHECK OPTION创建一个新视图:

CREATE VIEW [IF NOT EXISTS] view_name 
AS select_statement
WITH CHECK OPTION;

创建或替换视图:

CREATE OR REPLACE view_name 
AS 
select_statement;

删除视图:

DROP VIEW [IF EXISTS] view_name;

删除多个视图:

DROP VIEW [IF EXISTS] view1, view2, ...;

重命名视图:

RENAME TABLE view_name
TO new_view_name;

显示来自数据库的视图:

SHOW FULL TABLES
[{FROM | IN } database_name]
WHERE table_type = 'VIEW';

使用触发器

创建一个新触发器:

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW
trigger_body;

删除触发器:

DROP TRIGGER [IF EXISTS] trigger_name;

在数据库中显示触发器:

SHOW TRIGGERS
[{FROM | IN} database_name]
[LIKE 'pattern' | WHERE search_condition];

使用存储过程

创建一个存储过程:

DELIMITER $$

CREATE PROCEDURE procedure_name(parameter_list)
BEGIN
   body;
END $$

DELIMITER ;

删除存储过程:

DROP PROCEDURE [IF EXISTS] procedure_name;

显示存储过程:

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

使用存储的功能

创建一个新的存储函数:

DELIMITER $$
 
CREATE FUNCTION function_name(parameter_list)
RETURNS datatype
[NOT] DETERMINISTIC
BEGIN
 -- statements
END $$
 
DELIMITER ;

删除存储的函数:

DROP FUNCTION [IF EXISTS] function_name;

显示存储的功能:

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

从表中查询数据

查询表中的所有数据:

SELECT * FROM table_name;

从表的一个或多个列中查询数据:

SELECT 
    column1, column2, ...
FROM 
    table_name;

从查询结果中删除重复的行:

SELECT 
    DISTINCT (column)
FROM 
   table_name;

使用WHERE子句使用过滤器查询数据:

SELECT select_list
FROM table_name
WHERE condition;

使用列别名更改列名称的输出:

SELECT 
    column1 AS alias_name,
    expression AS alias,
    ...
FROM 
    table_name;

使用内部联接从多个表中查询数据:

SELECT select_list
FROM table1
INNER JOIN table2 ON condition;

使用左联接从多个表查询数据:

SELECT select_list
FROM table1 
LEFT JOIN table2 ON condition;

使用右联接从多个表中查询数据:

SELECT select_list 
FROM table1 
RIGHT JOIN table2 ON condition;

计算行的笛卡尔积:

SELECT select_list
FROM table1
CROSS JOIN table2;

计数表中的行。

SELECT COUNT(*)
FROM table_name;

排序结果集:

SELECT 
    select_list
FROM 
    table_name
ORDER BY 
    column1 ASC [DESC], 
    column2 ASC [DESC];

使用GROUP BY子句对行进行分组。

SELECT select_list
FROM table_name
GROUP BY column_1, column_2, ...;

使用HAVING子句的过滤器组:

SELECT select_list
FROM table_name
GROUP BY column1
HAVING condition;

修改表格中的数据

在表中插入新行:

INSERT INTO table_name(column_list)
VALUES(value_list);

在表中插入多行:

INSERT INTO table_name(column_list)
VALUES(value_list1),
      (value_list2),
      (value_list3),
      ...;

更新表中的所有行:

UPDATE table_name
SET column1 = value1,
    ...;

更新由WHERE子句中的条件指定的一组行的数据。

UPDATE table_name
SET column_1 = value_1,
    ...
WHERE condition

使用join更新多个表

UPDATE 
    table1, 
    table2
INNER JOIN table1 ON table1.column1 = table2.column2
SET column1 = value1,
WHERE condition;

删除表中的所有行

DELETE FROM table_name;

删除条件指定的行:

DELETE FROM table_name
WHERE condition;

使用join删除多表

DELETE table1, table2
FROM table1
INNER JOIN table2
    ON table1.column1 = table2.column2
WHERE condition;

查找

使用LIKE运算符搜索数据:

SELECT select_list
FROM table_name
WHERE column LIKE '%pattern%';

使用带有RLIKE运算符的正则表达式进行文本搜索。

SELECT select_list
FROM table_name
WHERE column RLIKE 'regular_expression';