Mac上MySQL和MongoDB完整操作指南

Mac上MySQL和MongoDB完整操作指南

目录

MySQL操作指南

MySQL基础操作

启动/停止MySQL服务
  1. 使用 Homebrew 安装的 MySQL:
bash 复制代码
# 启动MySQL服务
brew services start mysql

# 停止MySQL服务
brew services stop mysql

# 重启MySQL服务
brew services restart mysql

# 查看服务状态
brew services list
  1. 使用官网安装包安装的 MySQL:
bash 复制代码
# 启动MySQL服务
sudo /usr/local/mysql/support-files/mysql.server start

# 停止MySQL服务
sudo /usr/local/mysql/support-files/mysql.server stop

# 重启MySQL服务
sudo /usr/local/mysql/support-files/mysql.server restart
登录MySQL
bash 复制代码
# 使用root用户登录
mysql -u root -p

# 使用指定用户登录指定数据库
mysql -u username -p database_name

MySQL数据库操作

sql 复制代码
-- 显示所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE database_name;

-- 使用数据库
USE database_name;

-- 删除数据库
DROP DATABASE database_name;

-- 查看当前使用的数据库
SELECT DATABASE();

MySQL表操作

sql 复制代码
-- 显示所有表
SHOW TABLES;

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

-- 查看表结构
DESC table_name;

-- 修改表
ALTER TABLE table_name ADD COLUMN new_column VARCHAR(50);
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(100);
ALTER TABLE table_name DROP COLUMN column_name;

-- 删除表
DROP TABLE table_name;

MySQL数据操作

sql 复制代码
-- 插入数据
INSERT INTO table_name (name, age, email) 
VALUES ('张三', 25, 'zhangsan@example.com');

-- 查询数据
SELECT * FROM table_name;
SELECT name, age FROM table_name WHERE age > 20;

-- 更新数据
UPDATE table_name SET age = 26 WHERE name = '张三';

-- 删除数据
DELETE FROM table_name WHERE id = 1;

-- 常用查询操作
-- 1. 条件查询
SELECT * FROM table_name WHERE age >= 20 AND age <= 30;

-- 2. 排序
SELECT * FROM table_name ORDER BY age DESC;

-- 3. 分组
SELECT age, COUNT(*) as count FROM table_name GROUP BY age;

-- 4. 限制结果数量
SELECT * FROM table_name LIMIT 10;

-- 5. 连接查询
SELECT a.*, b.department 
FROM employees a 
JOIN departments b ON a.dept_id = b.id;

MySQL用户管理

sql 复制代码
-- 创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

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

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看用户权限
SHOW GRANTS FOR 'username'@'localhost';

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

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

MongoDB操作指南

MongoDB基础操作

bash 复制代码
# 启动MongoDB服务
brew services start mongodb-community

# 停止MongoDB服务
brew services stop mongodb-community

# 连接MongoDB
mongosh

MongoDB数据库操作

javascript 复制代码
// 显示所有数据库
show dbs

// 使用/创建数据库
use database_name

// 查看当前数据库
db

// 删除当前数据库
db.dropDatabase()

MongoDB集合操作

javascript 复制代码
// 创建集合
db.createCollection("collection_name")

// 显示所有集合
show collections

// 删除集合
db.collection_name.drop()

MongoDB文档操作

javascript 复制代码
// 插入文档
db.collection_name.insertOne({
    name: "张三",
    age: 25,
    email: "zhangsan@example.com"
})

// 批量插入文档
db.collection_name.insertMany([
    { name: "李四", age: 30 },
    { name: "王五", age: 35 }
])

// 查询文档
// 查询所有
db.collection_name.find()

// 条件查询
db.collection_name.find({ age: { $gt: 20 } })

// 更新文档
// 更新一条
db.collection_name.updateOne(
    { name: "张三" },
    { $set: { age: 26 } }
)

// 更新多条
db.collection_name.updateMany(
    { age: { $gt: 20 } },
    { $inc: { age: 1 } }
)

// 删除文档
// 删除一条
db.collection_name.deleteOne({ name: "张三" })

// 删除多条
db.collection_name.deleteMany({ age: { $lt: 20 } })

MongoDB查询优化

javascript 复制代码
// 创建索引
db.collection_name.createIndex({ name: 1 })

// 查看索引
db.collection_name.getIndexes()

// 删除索引
db.collection_name.dropIndex("index_name")

// 查询计划分析
db.collection_name.find({ age: { $gt: 20 } }).explain()

// 聚合操作
db.collection_name.aggregate([
    { $match: { age: { $gt: 20 } } },
    { $group: { _id: "$age", count: { $sum: 1 } } }
])

实用技巧

  1. MySQL导入导出数据
bash 复制代码
# 导出数据库
mysqldump -u username -p database_name > backup.sql

# 导入数据库
mysql -u username -p database_name < backup.sql
  1. MongoDB导入导出数据
bash 复制代码
# 导出数据
mongodump --db=database_name --out=/backup/path

# 导入数据
mongorestore --db=database_name /backup/path/database_name
  1. 性能优化建议
  • 定期进行数据库备份
  • 合理使用索引
  • 经常运行的查询语句要优化
  • 定期维护和优化数据库
  • 监控数据库性能

注意事项

  1. 在执行删除和更新操作时要小心,最好先用 SELECT 确认要操作的数据
  2. 重要操作前要先备份数据
  3. 定期更新数据库版本和安全补丁
  4. 设置合适的字符集和排序规则
  5. 注意数据库安全,合理设置用户权限
相关推荐
susu108301891142 分钟前
使用navicat创建事件event报错You have an error in your SQL syntax
数据库·sql
oulaqiao44 分钟前
幂等性——网络抖动重复支付的解决方法
sql·web app
zgl_200537793 小时前
ZGLanguage 解析SQL数据血缘 之 提取select语句中的源表名
大数据·数据库·c++·数据仓库·sql·数据库开发·etl
在风中的意志3 小时前
[数据库SQL] [leetcode-584] 584. 寻找用户推荐人
数据库·sql·leetcode
么么...4 小时前
深入理解数据库事务与MVCC机制
数据库·经验分享·sql·mysql
学编程就要猛6 小时前
MySQL:CRUD
数据库·sql·mysql
猴子年华、7 小时前
【每日一技】:SQL 常用函数实战速查表(函数 + 场景版)
java·数据库·sql·mysql
麦聪聊数据9 小时前
敏感数据安全吗?基于字段级血缘的 PII 数据全链路追踪
数据库·sql·安全
在风中的意志9 小时前
[数据库SQL] [leetcode-511] 511. 游戏玩法分析 I
数据库·sql·游戏