⚠️本篇适用于 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 子句,用于指定记录。