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