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 可执行注释。