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 可執行註釋。