当前位置: 首页 > 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中的常见查询操作,涵盖了基本查询、条件筛选、排序、分组统计、连接查询以及子查询等场景

相关文章:

MySQL 常规操作指南

1. 连接MySQL服务器 &#xff08;1&#xff09;通过命令行连接 mysql -u username -p在提示下输入对应用户的密码&#xff0c;即可进入MySQL命令行界面。 &#xff08;2&#xff09;指定数据库连接 mysql -u username -p -D database_name这里会直接连接到名为database_nam…...

Rocketmq rust版本-开篇

我是蚂蚁背大象(Apache EventMesh PMC&Committer)&#xff0c;文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm&#xff0c;文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com Rust重构Rocketmq,大家好我是mxsm(Apache EventMesh PMC&Comm…...

springboot3+springsecurity6集成druid启动报错

环境&#xff1a;springboot3security6druid1.2.20 druid1.2.20这个版本开始支持springboot3自动配置&#xff0c;不再需要手动引入 依赖为 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId>…...

golang面试题大全

go基础类 1、与其他语言相比&#xff0c;使用 Go 有什么好处&#xff1f; 与其他作为学术实验开始的语言不同&#xff0c; Go 代码的设计是务实的。每个功能和语法决策都旨在让程序员的生活更轻松。Golang 针对并发进行了优化&#xff0c;并且在规模上运行良好。由于单一的标…...

Google 在裁员的路上一路狂奔

早上刷新闻&#xff0c;Google 在 2024 开年还没几天就宣布了今年的裁员计划。 前几天还在说我们当地的大学为了削减预算而进行裁员。 大厂谷歌却是首当其冲&#xff0c;裁员1000多人&#xff0c;涉及了核心工程、谷歌助理、Pixel手机等硬件团队的人员。 截至2023年9月30日&…...

橘子学K8S04之重新认识Docker容器

我们之前分别从 Linux Namespace 的隔离能力、Linux Cgroups 的限制能力&#xff0c;以及基于 rootfs 的文件系统三个角度来理解了一下关于容器的核心实现原理。 这里一定注意说的是Linux环境&#xff0c;因为Linux Docker (namespaces cgroups rootfs) ! Docker on Mac (bas…...

Day31- 贪心算法part05

一、无重叠区间 题目一&#xff1a;453. 无重叠区间 435. 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 主要思想是优先保留结束时间早的区间&#xff0c;这样…...

基于springboot+vue的蜗牛兼职网的设计与实现系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...

【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )

文章目录 一、帧率1、帧率简介2、常见帧率标准3、帧率 刷新率 二、码率1、码率简介2、码率单位 一、帧率 1、帧率简介 帧率 Frame Rate , 帧 指的是 是 画面帧 , 帧率 是 画面帧 的 速率 ; 帧率 的 单位是 FPS , Frames Per Second , 是 每秒钟 的 画面帧 个数 ; 帧率 是 动画…...

CSS Position总结:定位属性的实战技巧

CSS Position总结&#xff1a;定位属性的实战技巧 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在今天的文章中&#xff0c;我们将深入研究CSS中一个至关重要的属…...

python基础系列二-函数

系统函数 函数说明abs返回一个数的绝对值&#xff0c;例如&#xff1a;abs(-1.3)会返回1.3。bin把一个整数转换成以0b开头的二进制字符串&#xff0c;例如&#xff1a;bin(123)会返回0b1111011。chr将Unicode编码转换成对应的字符&#xff0c;例如&#xff1a;chr(8364)会返回…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用短曝光功能1.引用合适的类文件2.通过NEOAPI SDK使用短曝光功能3.通过NEOAPI SDK关闭短…...

提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题

在现代软件开发中&#xff0c;网络调试是一个不可或缺的环节。无论是前端开发还是后端开发&#xff0c;我们经常需要对网络请求进行监控和调试&#xff0c;以便及时发现并解决问题。而Fiddler Everywhere for Mac作为一款强大的网络调试工具&#xff0c;能够帮助开发者提升工作…...

JVM工作原理与实战(十九):运行时数据区-方法区

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、方法区 1.方法区介绍 2.方法区在Java虚拟机的实现 3.类的元信息 4.运行时常量池 5.字符串常量池 6.静态变量的存储 总结 前言 JVM作为Java程序的运行环境…...

webassembly003 whisper.cpp的项目结构CMakeLists.txt

注&#xff1a;带星号的为非重要部分 基础配置 cmake_minimum_required (VERSION 3.5)project(whisper.cpp VERSION 1.5.0)# Add path to modules list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") # 在\cmake文件夹下还有BuildTypes.cmake&a…...

克魔助手工具详解、数据包抓取分析、使用教程

目录 摘要 引言 克魔助手界面 克魔助手查看数据捕获列表 数据包解析窗口 数据包数据窗口 克魔助手过滤器表达式的规则 抓包过滤器实例 总结 参考资料 摘要 本文介绍了克魔助手工具的界面和功能&#xff0c;包括数据包的捕获和分析&#xff0c;以及抓包过滤器的使用方…...

【Docker】contos7安装 Nacos容器部署单个部署集群

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个&…...

UML-通信图和交互概览图(通信图和顺序图的区别与联系)

UML-通信图和交互概览图&#xff08;通信图和顺序图的区别与联系&#xff09; 一、通信图简介1.消息2.链接 二、通信图和[顺序图](https://blog.csdn.net/weixin_65032328/article/details/135587782)的联系与区别三、交互概览图四、顺序图转化为通信图练习 一、通信图简介 通…...

Linux 使用PS命令掌握进程管理

在Linux系统中&#xff0c;进程管理是系统管理员和开发人员必备的技能之一。而PS命令作为进程管理的重要工具&#xff0c;可以帮助我们查看和监控系统中运行的进程。本文将详细解析PS命令的使用方法和输出结果&#xff0c;帮助读者全面掌握进程管理的利器。 PS命令概述&#xf…...

Debian 10.13.0 安装图解

引导和开始安装 这里直接回车确认即可&#xff0c;选择图形化安装方式。 选择语言 这里要区分一下&#xff0c;当前选中的语言作为安装过程中安装器所使用的语言&#xff0c;这里我们选择中文简体。不过细心的同学可能发现&#xff0c;当你选择安装器语言之后&#xff0c;后续安…...

SQLite 3.45.0 发布!

SQLite 开发团队于 2024 年 01 月 18 日发布了 SQLite 3.45.0 版本&#xff0c;带来了一些 JSON 和优化器增强&#xff0c;让我们一睹为快&#xff01; JSON 函数 SQLite 3.45.0 版本开始&#xff0c;所有的 JSON 函数将会使用全新的内部格式存储 JSON 数据&#xff0c;也就是…...

MongoDB聚合:$set

聚合$set阶段可以为文档添加新的字段。$set输出的文档包含输入文档中的所有现有字段和新添加的字段。$set是$addFields的别名&#xff0c;从MongoDB4.2开始支持。$set和$addFields等价于$project阶段&#xff0c;这两个阶段都等同于 $project 阶段&#xff0c;后者明确指定输入…...

《Python数据分析技术栈》第01章 02 Jupyter入门(Getting started with Jupyter notebooks)

02 Jupyter入门&#xff08;Getting started with Jupyter notebooks&#xff09; 《Python数据分析技术栈》第01章 02 Jupyter入门&#xff08;Getting started with Jupyter notebooks&#xff09; Before we discuss the essentials of Jupyter notebooks, let us discuss…...

【征服redis5】redis的Redisson客户端

目录 1 Redisson介绍 2. 与其他Java Redis客户端的比较 3.基本的配置与连接池 3.1 依赖和SDK 3.2 配置内容解析 4 实战案例&#xff1a;优雅的让Hash的某个Field过期 5 Redisson的强大功能 1 Redisson介绍 Redisson 最初由 GitHub 用户 “mrniko” 创建&#xff0c;并在…...

React16源码: React中的beginWork的源码实现

beginWork 1 &#xff09;概述 在 renderRoot 之后&#xff0c;要对我们的 Fiber 树每一个节点进行对应的更新更新节点的一个入口方法&#xff0c;就是 beginWork这个入口方法会有帮助我们去优化整棵树的更新过程 react 它的节点其实是非常多的&#xff0c;如果每一次子节点的…...

5-微信小程序语法参考

1. 数据绑定 官网传送门 WXML 中的动态数据均来自对应 Page 的 data。 数据绑定使用 Mustache 语法&#xff08;双大括号&#xff09;将变量包起来 ts Page({data: {info: hello wechart!,msgList: [{ msg: hello }, { msg: wechart }]}, })WXML <view class"vie…...

数组练习 Leetcode 566.重塑矩阵

在 MATLAB 中&#xff0c;有一个非常有用的函数 reshape &#xff0c;它可以将一个 m x n 矩阵重塑为另一个大小不同&#xff08;r x c&#xff09;的新矩阵&#xff0c;但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵&#xff0c;以及两个正整数 r 和 c &#…...

Linux centos中find命令的多种用途:按照具体应用来详细说明find的用法举例

目录 一、find命令 二、find命令的语法 &#xff08;一&#xff09;语法格式 &#xff08;二&#xff09;选项 1、选项(option)介绍 2、控制符号链接的option 3、调试选项debugopts 4、优化选项 &#xff08;三&#xff09;表达式expression 1、选项options 2、测试…...

服务器数据恢复—OceanStor存储raid5热备盘同步数据失败的数据恢复案例

服务器数据恢复环境&#xff1a; 华为OceanStor某型号存储&#xff0c;存储内有一组由24块硬盘组建的raid5阵列&#xff0c;配置1块热备盘。 服务器故障&#xff1a; 该存储raid5阵列中有一块硬盘离线&#xff0c;热备盘自动激活并开始同步数据&#xff0c;在热备盘同步数据的…...

Xline v0.6.1: 一个用于元数据管理的分布式KV存储

Xline是什么&#xff1f;我们为什么要做Xline&#xff1f; Xline是一个基于Curp协议的&#xff0c;用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议&#xff0c;需要两次RTT才能完成一次请求。当部署在单个数据中心时&#xff0c;节点之间的延迟较低&a…...