MySQL 注释

Mehvish Ashiq 2023年1月30日
  1. MySQL 单行注释
  2. MySQL 多行注释
  3. MySQL 可执行文件注释
  4. 结论
MySQL 注释

在本文中,我们将介绍 MySQL 注释。我们还将了解应该在哪里使用什么类型的注释。

注释写的都是描述代码,方便理解。我们还使用注释在解析 SQL 查询时忽略代码的某一部分(不要让那段代码被执行)。

它还可以帮助其他程序员了解代码中发生的事情。我们将看到如何在 MySQL 中使用单行和多行注释。我们还将了解可执行注释及其用途。

有三种不同的方式来编写 MySQL 注释。我们可以使用 #-/**/符号来注释。

MySQL 单行注释

我们可以通过两种方式使用 MySQL 单行注释,使用 #-

让我们创建一个名为 tb_teachers 的表来练习 MySQL 注释。我们使用 # 在下面给出的 MySQL 查询中编写单行注释。

此注释用在 SQL 查询的末尾,并且后面必须有一个换行符。如果你在注释后不使用换行符,则同一行中的所有内容都将被注释,直到遇到换行符。不需要在 # 之后放置空格。但是在 # 后面留一个空格来增加可读性是一个好方法。

使用 # 的 MySQL 示例代码:

# Following SQL query will create a table named 'tb_teachers'
CREATE TABLE `practice_mysql_comments`.`tb_teachers` (
 TEACHER_ID	INTEGER NOT NULL,
 FIRST_NAME	VARCHAR(30) NOT NULL,
 LAST_NAME	VARCHAR(30) NOT NULL,
 GENDER	VARCHAR(30) NOT NULL,
 CITY	VARCHAR(64) NOT NULL,
 EMAIL	VARCHAR(64) NOT NULL,
 JOINING_YEAR INTEGER NOT NULL,
 PRIMARY KEY	(TEACHER_ID)
);

请参阅以下代码示例,其中我们在使用单行注释后不放置换行符。你可以看到 CREATE 命令也被部分注释。

# Following SQL query will create a table named 'tb_teachers' CREATE TABLE `practice_mysql_comments`.`tb_teachers` (
 TEACHER_ID	INTEGER NOT NULL,
 FIRST_NAME	VARCHAR(30) NOT NULL,
 LAST_NAME	VARCHAR(30) NOT NULL,
 GENDER	VARCHAR(30) NOT NULL,
 CITY	VARCHAR(64) NOT NULL,
 EMAIL	VARCHAR(64) NOT NULL,
 JOINING_YEAR INTEGER NOT NULL,
 PRIMARY KEY	(TEACHER_ID)
);

我们也可以在 SQL 查询中使用这种类型的注释。请参阅以下代码;你可以观察到我们可以在 SQL 查询中使用 # 进行注释。

# Following SQL query will create a table named 'tb_teachers' 
CREATE TABLE `practice_mysql_comments`.`tb_teachers` (
 TEACHER_ID	INTEGER NOT NULL, # teacher's id
 FIRST_NAME	VARCHAR(30) NOT NULL, # teacher's first name
 LAST_NAME	VARCHAR(30) NOT NULL, # teacher's last name
 GENDER	VARCHAR(30) NOT NULL, # teacher's gender
 CITY	VARCHAR(64) NOT NULL, # teacher's home town
 EMAIL	VARCHAR(64) NOT NULL, # teacher's email
 JOINING_YEAR INTEGER NOT NULL, # teacher's appointment year
 PRIMARY KEY (TEACHER_ID) # primay key of the teacher's table
);

让我们探索使用 - 符号的另一种单行注释方式。下面的 SQL 代码表明,即使在 SQL 查询中,我们也可以使用双 -(破折号)符号进行注释。

这与我们使用 # 符号进行注释相同,只有一个区别。我们必须在第二个破折号之后放置至少一个空格;否则,它不会作为注释。

-- Following SQL query will create a table named 'tb_students' 
CREATE TABLE `practice_mysql_comments`.`tb_students` (
 STUDENT_ID	INTEGER NOT NULL, -- student's id
 FIRST_NAME	VARCHAR(30) NOT NULL, -- student's first name
 LAST_NAME	VARCHAR(30) NOT NULL, -- student;s last name
 GENDER	VARCHAR(30) NOT NULL, -- student's gender
 CITY	VARCHAR(64) NOT NULL, -- student's home town
 EMAIL	VARCHAR(64) NOT NULL, -- student's email
 REGISTRATION_YEAR INTEGER NOT NULL, -- student's registration year
 PRIMARY KEY (STUDENT_ID) -- primay key of the student's table
);

MySQL 多行注释

如果我们需要详细解释 SQL 查询以使代码易于理解,我们使用多行注释。 /* */ 中的所有内容都将被忽略。是否在此类注释的末尾放置换行符都没关系,但最好有一个换行符来编写干净且有条理的代码。

/* 
Following SQL query will create a table named 'tb_students'
having the basic information about the students. This information includes
full name, gender, city, email and registration year.
*/
CREATE TABLE `practice_mysql_comments`.`tb_students` (
 STUDENT_ID	INTEGER NOT NULL, 
 FIRST_NAME	VARCHAR(30) NOT NULL, 
 LAST_NAME	VARCHAR(30) NOT NULL, 
 GENDER	VARCHAR(30) NOT NULL, 
 CITY	VARCHAR(64) NOT NULL, 
 EMAIL	VARCHAR(64) NOT NULL,
 REGISTRATION_YEAR INTEGER NOT NULL, 
 PRIMARY KEY (STUDENT_ID) 
);

虽然我们可以把多行注释当成单行来处理,但是为什么我们有单行注释还要增加工作量呢。当你不想执行多于一行时,最好使用多行注释。请参阅以下示例。

/* 
Following SQL query will create a table named 'tb_students'
having the basic information about the students. This information includes
full name, gender, city, email and registration year.
*/
CREATE TABLE `practice_mysql_comments`.`tb_students` (
 STUDENT_ID	INTEGER NOT NULL, 
 FIRST_NAME	VARCHAR(30) NOT NULL, 
 LAST_NAME	VARCHAR(30) NOT NULL, 
 GENDER	VARCHAR(30) NOT NULL, 
 CITY	VARCHAR(64) NOT NULL, 
 /* EMAIL	VARCHAR(64) NOT NULL,
 REGISTRATION_YEAR INTEGER NOT NULL, */
 PRIMARY KEY (STUDENT_ID) 
);

MySQL 可执行文件注释

MySQL 还支持可执行注释。这种类型的注释为你提供了在各种数据库之间的可移植性。这些注释中编写的代码只会在 MySQL 中执行。如果你在 ! 之后指定版本字符,它只适用于那个特定的 MySQL 版本 或更高版本。

可执行注释的示例代码:

SELECT 3 /*! *2 */ AS MULTIPLICATION;

结论

我们已经得出结论,MySQL 注释在编程时起着至关重要的作用。它是什么类型的编程并不重要。如果你必须忽略多行,使用多行注释是一个不错的选择;否则,单行注释就可以了。如果你希望仅在 MySQL 服务器上执行某段代码,则可以使用 MySQL 可执行注释。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook