学习MySQL小抄

85 阅读9分钟

今天,随着数据的扩展,每个公司都需要一个数据库来存储这些数据。最常用的和企业采用的数据库之一是MySQL,它是作为一个开源的关系数据库管理系统在市场上推出的。这篇文章详细介绍了一个全面的MySQL骗局。

数据被存储在数据库中预定义的表中。你可以对MySQL数据库进行操作,如添加、更改、修改、删除和更新。为了实现这些操作,你需要运行将与MySQL数据库通信的SQL查询。

MySQL小贴士

你可以使用命令行界面访问MySQL数据库,并运行执行特定任务的命令。在这份MySQL小抄中,我们将学习基本命令,这些命令将帮助你处理存储在MySQL数据库中的数据。

MySQL命令行客户端命令

你可以在命令行客户端的帮助下,通过提供用户名和密码连接到MySQL服务器。

mysql - [username] -p;

在MySQL服务器上通常有各种数据库,所以你需要指定连接数据库的名称,以及访问数据库的用户名和密码。你可以使用下面的语法来做到这一点。

mysql - [username] -p [database];

如果你想退出指定的数据库,你可以运行下面的命令来做到这一点。

退出。

如果你想导出数据,那么你可以使用mysqldump工具,如下所示。

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

如果你想清除Linux系统上的MySQL屏幕控制台窗口,那么你可以运行以下命令。

mysql> system clear;

如果你使用的是Windows,那么没有特定的命令可用于清除屏幕控制台窗口。

与数据库一起工作

1.对于创建一个在数据库服务器中不存在的数据库,你可以使用下面的命令。

CREATE DATABASE [IF NOT EXISTS] database_name;

2.2.如果你在一个数据库中工作,并且想把数据库改成另一个数据库,那么你可以使用下面的命令。

USE database_name;

3.如果你想永久地删除一个特定的数据库及其所有相关的文件,那么你可以使用下面提到的命令来完成。

DROP DATABASE [IF EXISTS] database_name;

4.如果你想显示你的MySQL服务器中存在的所有数据库的列表,那么运行下面的命令。

SHOW DATABASE;

使用表的工作

1.如果你想显示存在于特定数据库中的所有表,那么你可以运行下面的命令来做到这一点。

SHOW TABLES;

2.如果你想在数据库中创建一个新的表,那么使用下面的命令来添加一个表。

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

3.如果你想在现有的表中增加一个新的列,那么你可以使用下面的命令来做。

ALTER TABLE table 
ADD [COLUMN] column_name;

4.如果你想删除现有表的某一列,那么你可以运行下面的命令。

ALTER TABLE table1_name
DROP [COLUMN] column1_name;

5.如果你想为现有的表在特定的列上创建一个索引,那么你可以使用下面的语法来实现。

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

6.如果你想为现有表的某一特定列添加一个主键,那么你可以使用下面的命令。

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

7.如果要删除现有表的主键,你可以运行下面的命令。

ALTER TABLE table_name
DROP PRIMARY KEY;

8.如果你想从当前数据库中删除一个表,那么你可以使用下面的命令。

DROP TABLE [IF EXISTS] table_name;

9.如果要显示数据库中一个现有表的所有列,可以使用下面的命令。

DESCRIBE table1_name;

10.为了显示表内某一列的详细信息,你可以使用下面的命令。

DESCRIBE table_name column_name;

使用索引工作

创建索引是为了搜索数据库中的特定对象,如表和视图。

1.如果你想为一个现有的表创建一个具有特定名称的索引,那么你可以使用下面的命令。

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

2.如果你想删除一个现有的索引,那么你可以运行下面的命令。

DROP INDEX index1_name;

3.为了创建一个唯一的索引,你可以使用下面提到的命令来实现。

CREATE UNIQUE INDEX index1_name 
ON table1_name (column1,...);

使用视图工作

1.为了创建一个现有表的视图,你可以使用下面的命令。

CREATE VIEW [IF NOT EXISTS] view_name 
AS 
  Select_statement;

2.如果你想创建一个带有 "WITH CHECK OPTION "的新视图,那么你可以使用下面的SQL语法。

CREATE VIEW [IF NOT EXISTS] view1_name
AS _specify_select_statement
WITH CHECK OPTION;

3.如果要添加或替换一个特定的视图,可以使用下面的命令。

CREATE OR REPLACE view_name 
AS 
Select_statement;

4.4. 如果要删除一个现有的视图,可以使用下面的命令。

DROP VIEW [IF EXISTS] view_name;

5.对于删除多个视图,你可以简单地使用下面的命令。

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

6.对于重命名一个视图,请使用以下命令。

RENAME TABLE view_name
TO new_view_name;

7.如果你想显示工作数据库中的所有视图,那么你可以使用下面的命令。

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

使用触发器工作

1.如果你想在MySQL中创建一个触发器,那么你可以使用下面的命令。

CREATE TRIGGER trigger1_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table1_name FOR EACH ROW
Trigger1_body;

2.如果要删除一个特定的触发器,你可以按照下面提到的命令。

DROP TRIGGER [IF EXISTS] trigger_name;

3.如果你想显示一个数据库中存在的所有触发器,那么你可以使用下面的SQL语法。

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

使用存储程序工作

1.如果你想创建一个存储过程,那么你需要遵循下面提到的SQL语法。

DELIMITER $$
CREATE PROCEDURE procedure1_name(parameter1_list)
BEGIN
   create_body_code;
END $$
DELIMITER ;
  1. 如果你想删除一个特定的存储过程,你需要遵循下面提到的命令。
DROP PROCEDURE [IF EXISTS] procedure_name;

3.为了显示所有的存储过程,你可以使用下面的命令。

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

使用存储函数

1.如果你想创建一个新的存储函数,那么你可以运行下面的命令。

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

2.如果要放弃一个特定的存储函数,那么你可以使用下面的命令。

DROP FUNCTION [IF EXISTS] function_name;

3.如果你想显示存储的函数,那么你可以使用下面的命令。

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

从表查询数据

1.如果你想从表中查询所有的数据,那么你可以使用下面的命令。

SELECT * FROM table_name;

2.如果想从表中查询一个或多个数据,可以使用下面的命令。

SELECT 
    column1, column2, ...
FROM 
    Table_name;

3.如果要从查询结果中删除重复的行,可以使用下面的语法。

SELECT 
    DISTINCT (column)
FROM 
   Table_name;

4.如果你想使用where子句来查询数据,那么你可以使用下面的命令。

SELECT select1_list
FROM table1_name
WHERE condition;

5.为了改变查询结果中特定列名的输出,可以使用下面提到的SQL命令。

SELECT 
    column1 AS alias1_name,
    expression AS alias1,
    ...
FROM 
    Table1_name;

6.如果你想从多个表中查询数据,并生成包含两个表的共同数据的结果,那么你可以按照以下语法使用内联。

SELECT select_list
FROM table1
INNER JOIN table2 ON condition;

7.如果你想从多个表中查询数据,并且生成的结果将包含共同的数据以及来自左表的所有数据,那么你可以按照下面的命令使用左连接。

SELECT select_list
FROM table1 
LEFT JOIN table2 ON condition;

8.如果你想查询多个表,并得到两个表的共同结果以及右表的所有数据,那么你可以使用下面的命令进行右连接。

SELECT select_list 
FROM table1 
RIGHT JOIN table2 ON condition;

9.如果你想在表的行上应用笛卡尔乘积,那么你可以使用下面的命令。

SELECT select_list
FROM table1
CROSS JOIN table2;

10.如果要计算表内可用的行数,可以使用下面的命令。

SELECT COUNT(*)
FROM table1_name;

11.对于结果集的排序,你可以使用下面提到的语法。

SELECT 
    select1_list
FROM 
    table1_name
ORDER BY 
    column1 ASC [DESC], 
    column2 ASC [DESC];

12.对于根据提到的列列表对行进行分组,你可以使用下面提到的句法。

SELECT select1_list
FROM table1_name
GROUP BY column_1, column_2, ...;

13.如果你想根据给定的条件过滤特定的组,那么你可以使用HAVING子句和GROUP BY子句,如下面的句法所示。

SELECT select1_list
FROM table1_name
GROUP BY column1
HAVING condition1;

修改表格中的数据

1.如果要在现有表格中插入一条特定的行,请使用以下命令。

INSERT INTO table_name(column_list)
VALUES(value_list);

2.如果你想在现有的表中插入多条记录,那么你可以使用下面的命令。

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

3.如果你想更新一个表中的所有行,那么你可以使用下面的语法和更新命令。

UPDATE table_name
SET column1 = value1,
    ...;

4.如果你想更新某些特定行的数据,那么你可以使用WHERE子句来实现。

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

5.如果你想更新表中的行,你可以使用下面的命令。

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

6.如果要删除表中的所有行,你可以使用下面提到的命令。

DELETE FROM table1_name;

7.如果你想用一个条件来删除指定的行,你可以使用下面的命令。

DELETE FROM table_name
WHERE condition;

8.如果你想用连接来删除行,那么你可以使用下面的命令。

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

搜索

1.如果你想搜索数据,那么你可以使用LIKE操作符,如下面的命令所示。

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

2.如果你想搜索文本,那么你可以使用正则表达式,如下面所示的RLIKE操作符。

SELECT select_list
FROM table_name
WHERE column RLIKE 'regular_expression';

结论

在这个MySQL小抄中,你学到了基本和最常用的MySQL查询,这些查询用于执行频繁的任务。根据你的创造力和技能,你甚至可以创建复杂而优化的查询来检索存储在数据库中的数据。

如果你要参加面试,那么你可以使用这个小抄来刷新你的技能,因为我们几乎涵盖了MySQL的每个重要方面。因此,开始学习并根据变化的趋势提高你的技能。