MySQL常用命令

MySQL常用命令

本文介绍了MySQL 的安装教程,以及常用命令,涵盖 数据库管理、表操作、数据操作、事务、函数、权限管理 等核心功能。
具体可参考:

注意事项

  • 事务:默认情况下,MySQL 的 InnoDB 引擎支持事务,但需显式使用 START TRANSACTION
  • 性能优化:频繁使用 SELECT * 可能影响性能,建议指定需要的列。
  • 索引:合理使用索引可大幅提升查询速度,但过多索引可能降低写入性能。
  • 权限:避免为非管理员用户授予过高权限(如 GRANT ALL PRIVILEGES)。

一、MySQL安装


1. 安装 MySQL

使用 Homebrew 安装 MySQL:

brew install mysql

2. 启动 MySQL 服务

安装完成后,启动 MySQL 服务:

brew services start mysql

如果希望 MySQL 在系统启动时自动运行,可以使用上述命令;否则,也可以手动启动:

mysql.server start

3. 设置 MySQL Root 密码

首次安装后,MySQL 的 root 用户默认没有密码。为了安全起见,需设置密码:

  1. 进入 MySQL 命令行:

    mysql -u root
    
  2. 在 MySQL 提示符下执行以下命令(将 your_password 替换为实际密码):

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
    FLUSH PRIVILEGES;
    
  3. 退出 MySQL 命令行:

    exit;
    

4. 验证安装

通过以下命令登录 MySQL 并验证:

mysql -u root -p

输入之前设置的密码后,若成功进入 MySQL 命令行界面,说明安装成功。


5. 配置 MySQL

MySQL 的默认配置文件是 /usr/local/etc/my.cnf。你可以根据需求修改配置,例如:

  • 允许远程访问:在配置文件中添加:
    [mysqld]
    bind-address = 0.0.0.0
    
  • 修改默认端口
    [mysqld]
    port = 3307
    

修改后重启服务生效:

brew services restart mysql

6. 常见问题

权限问题

如果登录时提示 Access denied,确保密码正确,或重新设置密码:

mysql -u root -p

在 MySQL 命令行中:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

服务无法启动

检查日志文件:

tail -f /usr/local/var/log/mysql.log

端口占用

MySQL 默认使用 3306 端口。若端口被占用,修改配置文件中的 port 参数后重启服务。


7. 卸载 MySQL

如果需要卸载 MySQL:

brew services stop mysql
brew uninstall mysql
# 删除数据和配置(谨慎操作)
rm -rf /usr/local/var/mysql

8. 快速测试

  1. 登录 MySQL 命令行:
    mysql -u root -p
    
  2. 创建测试数据库和表:
    CREATE DATABASE testdb;
    USE testdb;
    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
    INSERT INTO users (name) VALUES ('Alice'), ('Bob');
    
  3. 查询数据:
    SELECT * FROM users;
    

MySQL常用命令


1. 常用命令

启动/停止 MySQL 服务

# 启动服务(后台运行)
brew services start mysql

# 停止服务
brew services stop mysql

# 手动启动(前台运行)
mysql.server start

# 手动停止
mysql.server stop

登录 MySQL 命令行

mysql -u root -p

查看 MySQL 版本

mysql --version

2. 数据库管理

创建/删除数据库

命令 描述 示例
CREATE DATABASE db_name; 创建数据库 db_name CREATE DATABASE testdb;
DROP DATABASE db_name; 删除数据库 db_name DROP DATABASE testdb;

切换数据库

USE database_name;

例如:

USE testdb;

3. 表操作

创建表

CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
);

示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

查看表结构

DESCRIBE table_name;
-- 或
SHOW COLUMNS FROM table_name;

修改表结构

ALTER TABLE table_name
    ADD COLUMN column_name datatype; -- 添加列
ALTER TABLE table_name
    DROP COLUMN column_name;         -- 删除列
ALTER TABLE table_name
    RENAME TO new_table_name;        -- 重命名表

删除表

DROP TABLE table_name;

4. 数据操作(DML)

插入数据

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

示例:

INSERT INTO users (name, age) VALUES ('Alice', 30);

查询数据

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例:

SELECT * FROM users WHERE age > 25;
SELECT name, age FROM users ORDER BY age DESC;

更新数据

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;

示例:

UPDATE users SET age = 31 WHERE name = 'Alice';

删除数据

DELETE FROM table_name WHERE condition;

示例:

DELETE FROM users WHERE age < 18;

5. 事务控制

命令 描述 示例
START TRANSACTION; 开始事务 START TRANSACTION;
COMMIT; 提交事务(永久保存更改) COMMIT;
ROLLBACK; 回滚事务(撤销未提交的更改) ROLLBACK;

6. 索引管理

命令 描述 示例
CREATE INDEX index_name ON table_name (column); 为列创建索引 CREATE INDEX idx_name ON users(name);
DROP INDEX index_name ON table_name; 删除索引 DROP INDEX idx_name ON users;

7. 权限管理

命令 描述 示例
GRANT privileges ON database.table TO 'user'@'host'; 授予用户权限 GRANT SELECT ON testdb.* TO 'alice'@'%';
REVOKE privilege ON database.table FROM 'user'@'host'; 撤销用户权限 REVOKE INSERT ON testdb.users FROM 'bob'@'%';

8. 函数与聚合

字符串函数

函数 描述 示例
CONCAT(str1, str2) 连接字符串 SELECT CONCAT('Hello', ' ', 'World'); → "Hello World"
LENGTH(str) 返回字符串长度 SELECT LENGTH('MySQL'); → 5

日期函数

函数 描述 示例
CURDATE() 返回当前日期 SELECT CURDATE(); → "2023-10-01"
DATEDIFF(date1, date2) 计算两个日期的天数差 SELECT DATEDIFF('2023-10-05', '2023-10-01'); → 4

聚合函数

函数 描述 示例
COUNT(*) 统计行数 SELECT COUNT(*) FROM users;
SUM(column) 计算列的总和 SELECT SUM(age) FROM users;
AVG(column) 计算列的平均值 SELECT AVG(age) FROM users;

9. 连接与子查询

内连接(INNER JOIN)

SELECT a.column, b.column
FROM table_a a
INNER JOIN table_b b
ON a.common_column = b.common_column;

子查询

SELECT name
FROM users
WHERE age > (SELECT AVG(age) FROM users);

10. 其他命令

命令 描述 示例
SHOW DATABASES; 显示所有数据库
SHOW TABLES; 显示当前数据库中的表
SHOW GRANTS FOR user; 查看用户的权限 SHOW GRANTS FOR 'root'@'localhost';
FLUSH PRIVILEGES; 刷新权限配置(修改权限后需执行)
TRUNCATE TABLE table; 删除表中所有数据并重置自增列 TRUNCATE TABLE users;

附录

下面是学习黑马项目时总结的,作为留存



# MySQL常用命令

## 在Mac OS X上使用MySQL的常用命令 (注意分号结尾的命令是在连接MySQL服务后,出现mysql>后执行的)

# 启动MySQL服务
mysql.server start

# 停止MySQL服务
mysql.server stop

# 连接MySQL服务
mysql -u [username] -p

# 退出MySQL服务
exit;

# 显示所有数据库
show databases;

# 创建数据库
create database [database name];

# 删除数据库
drop database [database name];

# 显示当前数据库中的表
show tables;

# 创建表
create table [table name] (column1 datatype, column2 datatype, column3 datatype, ...);

# 删除表
drop table [table name];

# 插入记录
insert into [table name] values (value1, value2, value3, ...);

# 更新记录
update [table name] set column1=value1, column2=value2, ... where some_column=some_value;

# 删除记录
delete from [table name] where some_column=some_value;



## 在Windows上的命令(其中下面的命令与Mac OS X上不同)
# 启动MySQL服务
net start mysql  # 以管理员身份运行cmd,不然没权限

# 停止MySQL服务
net stop mysql  # 以管理员身份运行cmd,不然没权限


## 运行.sql文件建表,需要先登录进mysql(出现mysql>),然后选择在哪个数据库建表
# 使用某个数据库
USE [db_name];

source source path/to/your/file.sql;

posted @ 2025-07-01 23:45  cwp0  阅读(110)  评论(0)    收藏  举报