Howen

HOWEN

MySQL基本命令

⚠️本篇适用于 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)
);

查看表#

要查看表的结构,可以使用DESCRIBEDESC 命令:

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 子句,用于指定记录。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。