⚠️本篇適用於 MySQL 8.0.X 版本
使用前請使用命令mysql --version
確認是否安裝 MySQL
登錄 mysql 數據庫#
使用命令mysql -h localhost -u root -p
其中:
-u
後面跟的是你的 MySQL 用戶名。-p
表示你打算輸入密碼。注意 -p 後面沒有空格。如果沒有輸入密碼則回車時系統提示你輸入密碼。-h
參數來指定我們想要連接的 MySQL 伺服器位於 localhost。
如果 MySQL 伺服器位於不同的主機或遠程伺服器,可以將 localhost 替換為那台伺服器的主機名或 IP 地址。
MySQL 備份和恢復數據庫#
備份數據庫#
使用 mysqldump
工具來備份數據庫。基本語法如下
mysqldump -u [username] -p[password] [database_name] > [backup_file.sql]
[username]
:你的 MySQL 用戶名。[password]
:你的 MySQL 密碼。注意,這裡的-p
和密碼之間沒有空格。[database_name]
:你想要備份的數據庫名。[backup_file.sql]
:備份文件的名稱。
例如:mysqldump -u root -p123456 mydatabase > mydatabase_backup.sql
以上命令將會把 mydatabase
數據庫備份到 mydatabase_backup.sql
文件中。
MySQL 備份和恢復數據庫#
例如:
mysql -u root -p123456 mydatabase < mydatabase_backup.sql
以上命令將會把mydatabase_backup.sql文件中的數據恢復到mydatabase數據庫中。
請注意,恢復數據庫時,數據庫應該已經存在。如果還未創建,需要先創建數據庫。
創建和查看數據庫#
創建數據庫#
在 MySQL 中,可以使用 CREATE DATABASE 語句來創建一個新的數據庫。例如,要創建一個名為 "my_database" 的數據庫,您可以使用以下命令:
CREATE DATABASE my_database;
查看數據庫#
要查看所有的數據庫,可以使用 SHOW DATABASES 命令:
SHOW DATABASES;
要查看特定的數據庫,可以先使用 USE
命令選擇數據庫,然後使用 SHOW TABLES
命令來查看該數據庫中的所有表:
USE my_database;
SHOW TABLES;
創建、查看、刪除表#
創建表#
使用 CREATE TABLE 語句來創建一個新的表。例如,要在 "my_database" 數據庫中創建一個名為 "my_table" 的表,您可以使用以下命令:
USE my_database;
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
name VARCHAR(100),
age INT,
PRIMARY KEY (id)
);
查看表#
要查看表的結構,可以使用DESCRIBE
或 DESC
命令:
DESCRIBE my_table;
刪除表#
使用 DROP
語句:(會直接完全刪除表,不保留結構)
DROP TABLE table_name;
使用 DELETE
語句:
DELETE FROM table_name;
使用 TRUNCATE
語句:
TRUNCATE TABLE table_name;
這裡的 table_name
是你要刪除數據的表的名稱。這兩個命令的效果相同,都是刪除表中的所有數據,保留表格結構。但是 TRUNCATE
通常會更快,並且會重置表的 AUTO_INCREMENT
計數器。在刪除大量數據時,TRUNCATE
是更好的選擇。
約束條件被用於規定在表中所允許的數據。在創建表或修改表結構時,可以為每個列添加約束條件。以下是 MySQL 中常見的約束條件:
MySQL 約束條件#
PRIMARY KEY (主鍵)#
-
列級別主鍵約束
在定義表列時,直接將某列定義為主鍵:CREATE TABLE Persons ( ID int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
-
表級別主鍵約束
在定義所有表列之後,將某列或多列定義為主鍵:CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) );
如果您想創建複合主鍵(由兩列或以上組成的主鍵),則只能在表級別進行定義:
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID, LastName) );
UNIQUE#
唯一約束保證某列的每一行都必須有唯一的值。
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL UNIQUE,
FirstName varchar(255),
Age int
);
NOT NULL#
非空約束確保某列不能有 NULL 值。
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
FOREIGN KEY (外鍵)#
外鍵約束用於防止破壞兩個表之間的鏈接。
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(ID)
);
MySQL 增刪改查、分組統計、聚合函數#
SQL 操作#
創建表#
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype
);
CREATE TABLE
語句用於在數據庫中創建新表。它允許指定表的名稱和表中每個列的名稱。
插入數據#
-
直接插入
INSERT INTO table_name VALUES (value1, value2);
-
指定列插入
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
-
同時插入多個數據
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...), (value4, value5, value6, ...), (value7, value8, value9, ...);
MySQL 修改表結構#
在 MySQL 中,我們使用 ALTER TABLE
命令來修改現有的表結構。以下是一些常用的 ALTER TABLE
命令:
-
添加列
ALTER TABLE table_name ADD column_name datatype;
-
刪除列
ALTER TABLE table_name DROP COLUMN column_name;
-
修改列類型
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
-
重命名列
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name datatype;
-
添加主鍵
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
-
刪除主鍵
ALTER TABLE table_name DROP PRIMARY KEY;
-
添加索引
ALTER TABLE table_name ADD INDEX index_name (column_name);
-
刪除索引
ALTER TABLE table_name DROP INDEX index_name;
-
重命名表
ALTER TABLE old_table_name RENAME TO new_table_name;
刪除記錄#
DELETE FROM table_name
WHERE some_column = some_value;
DELETE
語句用於刪除表中的記錄(行)。WHERE
子句指定應刪除哪個記錄或記錄。如果省略 WHERE
子句,將刪除所有記錄。
更新記錄#
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE some_column = some_value;
UPDATE
語句用於編輯表中的記錄(行)。它包括一個 SET
子句,該子句指示要編輯的列,以及一個 WHERE
子句,用於指定記錄。