一、基本操作
MySQL 是一種基於關係模型的資料庫管理系統,可以通過各種操作來實現數據的增刪改查。
1、增加數據:使用 INSERT INTO 語句向表中添加數據。例如添加一條學生信息:
INSERT INTO student (name,age,sex,score) VALUES ('Tom', 18, 'M', 90);
2、修改數據:使用 UPDATE 語句修改表中現有數據。例如將學生 Tom 的年齡改為 19 歲:
UPDATE student SET age=19 WHERE name='Tom';
3、刪除數據:使用 DELETE FROM 語句刪除表中的數據。例如刪除名字為 Tom 的學生信息:
DELETE FROM student WHERE name='Tom';
4、查詢數據:使用 SELECT 語句從表中獲取數據。例如查詢 score 大於等於 60 分的學生信息:
SELECT * FROM student WHERE score>=60;
二、約束
MySQL 中的約束可以保證數據的完整性和一致性。主要有以下幾種類型:
1、主鍵(PRIMARY KEY):一個表只能有一個主鍵,用於唯一標識一條記錄。
2、唯一鍵(UNIQUE):保證列中的所有值都是唯一的。
3、非空約束(NOT NULL):用於限制某一列不能有 NULL 值。
4、外鍵(FOREIGN KEY):用於建立表與表之間的關係,保證數據的一致性。
例如創建一張學生表,其中 id 為主鍵,name 不能重複的唯一鍵,age 和 score 不能為 NULL:
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20) UNIQUE,
age INT NOT NULL,
sex VARCHAR(2),
score FLOAT NOT NULL
);
三、連接和子查詢
MySQL 中的連接和子查詢可以用於聯結多張表或查詢嵌套表。
1、連接:使用 JOIN 語句可以在多張表之間建立連接。例如查詢學生表和課程表之間的連接信息:
SELECT student.name, course.course_name
FROM student
INNER JOIN score
ON student.id=score.student_id
INNER JOIN course
ON course.id=score.course_id;
2、子查詢:使用 SELECT 語句可以在查詢中嵌套查詢,稱為子查詢。例如查詢分數最高的學生信息:
SELECT * FROM student WHERE score=(SELECT MAX(score) FROM student);
四、索引
MySQL 中的索引可以提高數據查詢的速度,主要有以下幾種類型:
1、普通索引:基本的索引類型,可以提高查詢的速度。
2、唯一索引:保證列中的所有值都是唯一的,也可以提高查詢速度。
3、主鍵索引:主鍵類型的索引,唯一標識一條記錄。
4、全文索引:用於搜索長文本數據的索引。
例如在學生表中為分數這一列創建索引:
CREATE INDEX score_index ON student(score);
五、存儲過程和觸發器
MySQL 中的存儲過程和觸發器可以用於在資料庫內部自動執行一些操作。
1、存儲過程:一組預先編譯好的 SQL 語句,可以通過調用來執行。例如創建一個求平均分數的存儲過程:
CREATE PROCEDURE avg_score()
BEGIN
SELECT AVG(score) FROM student;
END;
2、觸發器:在執行 INSERT、UPDATE、DELETE 等操作時自動執行的代碼塊。例如創建一個在學生表插入數據時更新課程表的觸發器:
CREATE TRIGGER update_course AFTER INSERT ON student
FOR EACH ROW
BEGIN
INSERT INTO course (course_name, student_id) VALUES ('Math', NEW.id);
END;
六、備份和恢復
MySQL 中的備份和恢復可以用於數據的安全性和完整性。
1、備份:可以使用命令行或 GUI 工具進行備份。例如使用命令行對整個資料庫進行備份:
mysqldump -uroot -p123456 --database mydb > mydb.sql
2、恢復:可以使用命令行或 GUI 工具進行恢復。例如使用命令行恢復整個資料庫:
mysql -uroot -p123456 mydb < mydb.sql
七、總結
本文對 MySQL 的基本操作、約束、連接和子查詢、索引、存儲過程和觸發器、備份和恢復進行了詳細的介紹。MySQL 是一種功能強大的資料庫管理系統,掌握它的操作是開發工程師必不可少的技能。
原創文章,作者:KEHNE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334638.html