MySQL的常用命令

发布于:2025-09-13 ⋅ 阅读:(21) ⋅ 点赞:(0)

目录

一、连接MySQL数据库

二、数据库操作

三、表操作

四、数据操作(CRUD)

1、插入数据

2、查询数据

3、更新数据

4、删除数据

五、高级查询技巧

六、用户和权限管理

七、实用技巧和最佳实践

1、备份数据库

2、恢复数据库

3、事务处理

八、使用索引提高查询性能


一、连接MySQL数据库

# 连接到本地MySQL服务器
mysql -u root -p

# 连接到远程MySQL服务器
mysql -h hostname -u username -p

# 指定端口连接
mysql -h hostname -P port -u username -p

二、数据库操作

-- 显示所有数据库
SHOW DATABASES;

-- 创建新数据库
CREATE DATABASE database_name;

-- 选择/使用数据库
USE database_name;

-- 删除数据库
DROP DATABASE database_name;

三、表操作

-- 显示当前数据库中的所有表
SHOW TABLES;

-- 创建新表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 查看表结构
DESCRIBE users;
DESC users;  -- 简写形式

-- 查看创建表的SQL语句
SHOW CREATE TABLE users;

-- 修改表名
ALTER TABLE old_table_name RENAME TO new_table_name;

-- 添加列
ALTER TABLE users ADD COLUMN age INT AFTER username;

-- 修改列
ALTER TABLE users MODIFY COLUMN email VARCHAR(150);

-- 删除列
ALTER TABLE users DROP COLUMN age;

-- 删除表
DROP TABLE users;

四、数据操作(CRUD)

1、插入数据
-- 插入单行数据
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');

-- 插入多行数据
INSERT INTO users (username, email) VALUES 
('jane_smith', 'jane@example.com'),
('bob_wilson', 'bob@example.com');
2、查询数据
-- 查询所有数据
SELECT * FROM users;

-- 查询特定列
SELECT username, email FROM users;

-- 带条件的查询
SELECT * FROM users WHERE id = 1;

-- 使用LIKE进行模糊查询
SELECT * FROM users WHERE username LIKE 'j%';

-- 排序查询结果
SELECT * FROM users ORDER BY created_at DESC;

-- 限制返回结果数量
SELECT * FROM users LIMIT 10;

-- 分页查询
SELECT * FROM users LIMIT 10 OFFSET 20;  -- 跳过20条,取10条
3、更新数据
-- 更新单行数据
UPDATE users SET email = 'new_email@example.com' WHERE id = 1;

-- 更新多列数据
UPDATE users SET username = 'new_name', email = 'new_email@example.com' WHERE id = 1;

-- 使用表达式更新
UPDATE products SET price = price * 1.1 WHERE category = 'electronics';
4、删除数据
-- 删除特定行
DELETE FROM users WHERE id = 1;

-- 删除所有数据(清空表)
DELETE FROM users;
TRUNCATE TABLE users;  -- 更高效的方式

五、高级查询技巧

-- 去重查询
SELECT DISTINCT category FROM products;

-- 聚合函数
SELECT COUNT(*) FROM users;
SELECT AVG(price) FROM products;
SELECT MAX(price) FROM products;
SELECT MIN(price) FROM products;
SELECT SUM(quantity) FROM order_items;

-- 分组查询
SELECT category, COUNT(*) FROM products GROUP BY category;

-- HAVING子句(对分组结果过滤)
SELECT category, COUNT(*) FROM products 
GROUP BY category 
HAVING COUNT(*) > 10;

-- 连接查询
SELECT users.username, orders.order_date 
FROM users 
INNER JOIN orders ON users.id = orders.user_id;

-- 子查询
SELECT * FROM products 
WHERE price > (SELECT AVG(price) FROM products);

六、用户和权限管理

-- 创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

-- 授予权限
GRANT SELECT, INSERT ON database_name.* TO 'username'@'localhost';

-- 授予所有权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

-- 撤销权限
REVOKE INSERT ON database_name.* FROM 'username'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 删除用户
DROP USER 'username'@'localhost';

七、实用技巧和最佳实践

1、备份数据库
mysqldump -u username -p database_name > backup.sql
2、恢复数据库
mysql -u username -p database_name < backup.sql
3、事务处理
START TRANSACTION;
-- 执行一系列操作
COMMIT;  -- 提交事务
-- 或者
ROLLBACK;  -- 回滚事务

八、使用索引提高查询性能

-- 创建索引
CREATE INDEX idx_email ON users(email);

-- 查看表索引
SHOW INDEX FROM users;

网站公告

今日签到

点亮在社区的每一天
去签到