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. 注意数据库安全,合理设置用户权限
相关推荐
好望角雾眠15 小时前
第三阶段数据库-7:sql中函数,运算符,常用关键字
数据库·笔记·sql·学习·sqlserver·c#
做一个AC梦1 天前
MiniOB环境部署开发(使用Docker)
数据库·sql·miniob·ob·海扬数据库
l1t1 天前
分析xml标签属性和压缩级别对xlsx文件读取解析的影响
xml·开发语言·python·sql·duckdb
DONG9131 天前
Redis内存架构解析与性能优化实战
数据库·redis·sql·database
武昌库里写JAVA2 天前
使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
java·vue.js·spring boot·sql·学习
水涵幽树2 天前
MySQL 时间筛选避坑指南:为什么格式化字符串比较会出错?
数据库·后端·sql·mysql·database
funfan05172 天前
在IDEA中DEBUG调试时查看MyBatis-Plus动态生成的SQL语句
sql·intellij-idea·mybatis
AI 嗯啦2 天前
SQL详细语法教程(七)核心优化
数据库·人工智能·sql
不羁。。3 天前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
麻辣清汤3 天前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi