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. 注意数据库安全,合理设置用户权限
相关推荐
祖传F875 小时前
SQL DATE()函数会抹去时间戳
数据库·sql
BduL OWED7 小时前
SQL进阶——JOIN操作详解
数据库·sql·oracle
ERBU DISH8 小时前
修改表字段属性,SQL总结
java·数据库·sql
cyber_两只龙宝8 小时前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
一只fish10 小时前
SQL 性能优化实战:从入门到极致的七重境界
数据库·sql·性能优化
NCIN EXPE10 小时前
SQL sever数据导入导出实验
数据库·sql·oracle
OtIo TALL11 小时前
SQL-触发器(trigger)的详解以及代码演示
服务器·数据库·sql
RNEA ESIO11 小时前
SQL中的REGEXP正则表达式使用指南
数据库·sql·正则表达式
geNE GENT14 小时前
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
数据库·sql
dLYG DUMS15 小时前
如何在docker中的mysql容器内执行命令与执行SQL文件
sql·mysql·docker