当前位置: 首页 > news >正文

MySQL 常规操作指南

1. 连接MySQL服务器

(1)通过命令行连接

mysql -u username -p

在提示下输入对应用户的密码,即可进入MySQL命令行界面。

(2)指定数据库连接

mysql -u username -p -D database_name

这里会直接连接到名为database_name的数据库。

2. 数据库管理

(1)创建数据库

CREATE DATABASE database_name;

(2)查看所有数据库

SHOW DATABASES;

(3)选择当前工作数据库

USE database_name;

(4)删除数据库

DROP DATABASE IF EXISTS database_name;

3. 表管理

(1)创建表

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

例如:

CREATE TABLE Users (id INT PRIMARY KEY,username VARCHAR(50),password VARCHAR(100)
);

(2)查看所有表

SHOW TABLES;

(3)查看表结构

DESCRIBE table_name;

(4)插入数据

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

(5)查询数据

SELECT * FROM table_name;

(6)更新数据

UPDATE table_name SET column1 = new_value WHERE condition;

(7)删除数据

DELETE FROM table_name WHERE condition;

(8)删除表

DROP TABLE IF EXISTS table_name;

4. 用户与权限管理

(1)创建用户

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

(2)赋予用户对数据库的权限

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

(3)撤销权限

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';

(4)更改用户密码

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');

(5)查看用户权限

SHOW GRANTS FOR 'username'@'localhost';

5. 导入与导出数据

(1)导出数据为SQL文件(备份)

mysqldump -u username -p database_name > backup.sql

(2)导入SQL文件(恢复)

mysql -u username -p database_name < backup.sql

以上涵盖了MySQL中常见的基本操作,包括连接服务器、数据库和表的管理、数据操作以及用户权限管理等。

6. 查询操作

(1)基本查询

SELECT column1, column2, ...
FROM table_name;

这将从table_name表中选择指定的列进行查询。

(2)条件查询

SELECT * FROM table_name
WHERE condition;

例如,查找年龄大于30的所有用户:

SELECT * FROM Users WHERE age > 30;

(3)排序查询

SELECT * FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC];

示例:按年龄降序排列所有用户信息:

SELECT * FROM Users ORDER BY age DESC;

(4)分组查询与聚合函数

SELECT column1, COUNT(column2), AVG(column3)
FROM table_name
GROUP BY column1;

例如,计算每个年龄段用户的平均工资:

SELECT age_group, AVG(salary) 
FROM (SELECT id, FLOOR(age / 10) * 10 AS age_group, salaryFROM Employees
) AS grouped_data
GROUP BY age_group;

(5)连接查询(JOIN)

SELECT t1.column1, t2.column2
FROM table1 AS t1
JOIN table2 AS t2
ON t1.common_column = t2.common_column;

例如,查询每个员工及其所在的部门名称:

SELECT Employees.name, Departments.department_name
FROM Employees
JOIN Departments ON Employees.department_id = Departments.id;

(6)子查询

SELECT * FROM table_name
WHERE column IN (SELECT column FROM another_table WHERE condition);

例如,找出和某个部门有相同员工数量的其他部门:

SELECT d1.department_name, COUNT(e1.id) as employee_count
FROM Departments d1
JOIN Employees e1 ON d1.id = e1.department_id
GROUP BY d1.id
HAVING COUNT(e1.id) = (SELECT COUNT(*) FROM Employees WHERE department_id = (SELECT id FROM Departments WHERE department_name = 'Sales')
);

7. CASE表达式或IF()函数实现条件判断的功能

(1)使用CASE表达式实现类似if-else逻辑

SELECT column1,CASE WHEN condition1 THEN result1WHEN condition2 THEN result2ELSE default_resultEND AS computed_column
FROM table_name;

例如,计算员工工资等级:

SELECT employee_name,salary,CASE WHEN salary > 5000 THEN 'High'WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'ELSE 'Low'END AS salary_level
FROM Employees;
(2)使用IF()函数实现简单条件判断

MySQL中的IF()函数接收三个参数:条件、满足条件时的结果和不满足条件时的结果。

SELECT column1,IF(condition, result_if_true, result_if_false) AS computed_column
FROM table_name;

例如,判断员工是否满勤:

SELECT employee_name,attendance_days,IF(attendance_days = 30, 'Full Attendance', 'Not Full Attendance') AS attendance_status
FROM EmployeeAttendance;

以上两种方式都可以帮助我们在SQL查询中实现类似if-else的逻辑控制。在更复杂的场景下,可能需要结合多个CASE表达式或者嵌套使用IF()函数来完成更为复杂的业务逻辑处理。

以上是MySQL中的常见查询操作,涵盖了基本查询、条件筛选、排序、分组统计、连接查询以及子查询等场景

http://www.lryc.cn/news/283491.html

相关文章:

  • Rocketmq rust版本-开篇
  • springboot3+springsecurity6集成druid启动报错
  • golang面试题大全
  • Google 在裁员的路上一路狂奔
  • 橘子学K8S04之重新认识Docker容器
  • Day31- 贪心算法part05
  • 基于springboot+vue的蜗牛兼职网的设计与实现系统(前后端分离)
  • 【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )
  • CSS Position总结:定位属性的实战技巧
  • python基础系列二-函数
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C#)
  • 提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题
  • JVM工作原理与实战(十九):运行时数据区-方法区
  • webassembly003 whisper.cpp的项目结构CMakeLists.txt
  • 克魔助手工具详解、数据包抓取分析、使用教程
  • 【Docker】contos7安装 Nacos容器部署单个部署集群
  • UML-通信图和交互概览图(通信图和顺序图的区别与联系)
  • Linux 使用PS命令掌握进程管理
  • Debian 10.13.0 安装图解
  • SQLite 3.45.0 发布!
  • MongoDB聚合:$set
  • 《Python数据分析技术栈》第01章 02 Jupyter入门(Getting started with Jupyter notebooks)
  • 【征服redis5】redis的Redisson客户端
  • React16源码: React中的beginWork的源码实现
  • 5-微信小程序语法参考
  • 数组练习 Leetcode 566.重塑矩阵
  • Linux centos中find命令的多种用途:按照具体应用来详细说明find的用法举例
  • 服务器数据恢复—OceanStor存储raid5热备盘同步数据失败的数据恢复案例
  • Xline v0.6.1: 一个用于元数据管理的分布式KV存储
  • 【CSS】解决height = line-height 文字不垂直居中(偏上、偏下)的问题