MySQL - 語句參考
歡迎,未來的數據庫法師們!今天,我們將深入MySQL語句的神奇世界。別擔心如果你從未寫過一行代碼 - 到了這個教學的結尾,你將會像專業人士一樣召喚數據庫咒語!
數據定義語句
讓我們從我們數據庫王國的基石開始:數據定義語句。這些是我們用來創建、修改和刪除數據庫結構的命令。
CREATE TABLE
想像你正在建造一個圖書館。你首先需要的是書架,對吧?在MySQL中,我們的"書架"就是表。讓我們創建一個!
CREATE TABLE books (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
author VARCHAR(50),
publication_year INT
);
這個咒語...我是說,語句,創建了一個名為"books"的表,包含四個列:
-
id
:每本書的唯一標識 -
title
:書的標題(最多100個字符) -
author
:書的作者(最多50個字符) -
publication_year
:書發表的年份
ALTER TABLE
哦!我們忘了為書添加一個類型的列。沒關係,我們可以修改我們的表:
ALTER TABLE books
ADD COLUMN genre VARCHAR(30);
這將在我們的"books"表中添加一個名為"genre"的新列。
DROP TABLE
如果我們決定我們不再需要我們的表(也許我們要轉為電子書?),我們可以刪除它:
DROP TABLE books;
但是要小心使用這個命令!這就像點燃你的書架一樣 - 沒有回頭路!
數據操作語句
現在我們有了我們的結構,讓我們用數據來填充它!
INSERT
該給我們的圖書館添加一些書了:
INSERT INTO books (title, author, publication_year, genre)
VALUES ('了不起的盖茨比', 'F. 斯科特·菲茨杰拉德', 1925, '經典');
這將一本書添加到我們的表中。你可以一次添加多本書:
INSERT INTO books (title, author, publication_year, genre)
VALUES
('梅根·李的 mockingbird', '哈珀·李', 1960, '小說'),
('1984', '喬治·奧威爾', 1949, '科幻小說');
SELECT
現在,讓我們看看我們有哪些書:
SELECT * FROM books;
這將從"books"表中檢索所有列(*
)。你可以更具體:
SELECT title, author FROM books WHERE publication_year < 1950;
這將只檢索發表於1950年之前的書的標題和作者。
UPDATE
哦,我們犯了一個錯誤!"1984"實際上是反烏托邦小說:
UPDATE books
SET genre = '反烏托邦小說'
WHERE title = '1984';
這將更改標題為"1984"的書的類型。
DELETE
假設我們想要刪除所有發表於1930年之前的書:
DELETE FROM books
WHERE publication_year < 1930;
使用DELETE要小心 - 和DROP一樣,它是永久的!
事務和鎖定語句
有時候,我們需要確保一系列操作要么全部發生,要么全部不發生。這就是事務的用處。
START TRANSACTION
START TRANSACTION;
INSERT INTO books (title, author, publication_year, genre)
VALUES ('傲慢與偏見', '簡·奧斯汀', 1813, '浪漫');
UPDATE books SET publication_year = 1960 WHERE title = '梅根·李的 mockingbird';
COMMIT;
這確保了INSERT和UPDATE一起發生。如果出現錯誤,則兩者都無效。
ROLLBACK
如果我們在事務中間改變了主意:
START TRANSACTION;
DELETE FROM books WHERE publication_year < 1900;
-- 哦,我們不是真的想那樣做!
ROLLBACK;
ROLLBACK將取消從START TRANSACTION以來所做的所有更改。
預處理語句
預處理語句就像菜譜一樣 - 你先設置一次,然後用不同的食材多次使用它。
PREPARE stmt FROM 'SELECT * FROM books WHERE author = ?';
SET @a = '喬治·奧威爾';
EXECUTE stmt USING @a;
這準備了一個語句來尋找特定作者的書,然後為喬治·奧威爾執行它。
复合語句
复
Credits: Image by storyset