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.mzph.cn/news/642791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——1_6 代理(Proxy)

诗有可解不可解&#xff0c;若镜花水月勿泥其迹可也 —— 谢榛 文章目录 定义图纸一个例子&#xff1a;图片搜索器图片加载搜索器直接在Image添加组合他们 各种各样的代理远程代理&#xff1a;镜中月&#xff0c;水中花保护代理&#xff1a;对象也该有隐私引用代理&#xff1a;…

Jupyter Notebook安装使用教程

Jupyter Notebook 是一个基于网页的交互式计算环境&#xff0c;允许你创建和共享包含代码、文本说明、图表和可视化结果的文档。它支持多种编程语言&#xff0c;包括 Python、R、Julia 等。其应用场景非常广泛&#xff0c;特别适用于数据科学、机器学习和教育领域。它可以用于数…

vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭

vue element MessageBox.prompt this.$prompt组件禁止或取消显示右上角关闭按钮&#xff0c;取消按钮&#xff0c;及点击遮罩层关闭 实现效果&#xff1a; 实现代码 MessageBox.prompt(请先完成手机号绑定, 系统提示, {confirmButtonText: 提 交,showClose: false,closeOnClic…

linux之安装配置VM+CentOS7+换源

文章目录 一、centos07安装二、CentOS 07网络配置2.1解决CentOS 07网络名不出现问题此博主的论文可以解决2.2配置&#xff08;命令: 【ip a】也可查看ip地址&#xff09; 三、使用链接工具链接CentOS进行命令控制四、换软件源 一、centos07安装 1、在vmvare中新建虚拟机 2、下…

Linux:动静态库的概念与制作使用

文章目录 动静态库基础认知动静态库基本概念静态库的制作库的概念包的概念 静态库的使用第三方库小结 动态库的制作动态库的使用动态库如何找到内容&#xff1f;小结 本篇要谈论的内容是关于动静态库的问题&#xff0c;具体的逻辑框架是建立在库的制作&#xff0c;库的使用&…

JavaFX增删改查其他控件

小技巧 增删改查思路 --查 底层select * from 表 where sname like %% --1.拿文本框的关键字 --2.调模糊查询的方法 myShow("") --删 底层 delete from tb_stu where sid? --1.想方设法拿学号 --1.先拿到用户所选中的学生对象 Student --2.调用方法传对象.getSi…

mysql INSERT数据覆盖现有元素(若存在)

INSERT...ON DUPLICATE KEY UPDATE的使用 如果指定了ON DUPLICATE KEY UPDATE&#xff0c;并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值&#xff0c;则会更新ON DUPLICATE KEY UPDATE关键字后面的字段值。 例如&#xff0c;如果列a被定义为UNIQUE&#xff0…

不要为了学习而学习

经常有朋友问我&#xff1a; 老师&#xff0c;从您这里学了很多方法&#xff0c;也一直想要改变自己&#xff0c;但总是没办法坚持下去&#xff0c;怎么办&#xff1f; 这个问题&#xff0c;我也很无奈啊。毕竟我也没办法飞到你身边&#xff0c;手把手把每一步都教给你。&…

Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs

大开眼界&#xff1f;探索多模态模型种视觉编码器的缺陷。 论文中指出&#xff0c;上面这些VQA问题&#xff0c;人类可以瞬间给出正确的答案&#xff0c;但是多模态给出的结果却是错误的。是哪个环节出了问题呢&#xff1f;视觉编码器的问题&#xff1f;大语言模型出现了幻觉&…

七八分钟快速用k8s部署springboot前后端分离项目

前置依赖 k8s集群&#xff0c;如果没有安装&#xff0c;请先安装 kubectl &#xff0c;客户端部署需要依赖 应用镜像构建 应用镜像构建不用自己去执行&#xff0c;相关镜像已经推送到docker hub 仓库&#xff0c;如果要了解过程和细节&#xff0c;可以看一下&#xff0c;否…

基于springboot+vue的足球青训俱乐部管理系统(前后端分离)

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

C++逆向分析--虚函数(多态的前置)

先理解一件事&#xff0c;在intel汇编层面来说&#xff0c;直接调用和间接调用的区别。 直接调用语法&#xff1a; call 地址 硬编码为 &#xff1a;e8 间接调用语法: call [ ...] 硬编码为: FF 那么在C语法中&#xff0c;实现多态的前提是父类需要实现多态的成员…

HarmonyOS-@Watch装饰器:状态变量更改通知

其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理&#xff0c;ArkTS还提供了Watch和$$来为开发者提供更多功能&#xff1a; Watch用于监听状态变量的变化。$$运算符&#xff1a;给内置组件提供TS变量的引用&#xff0c;使得TS变量和内置组件的内部状态保持同步…

「 网络安全术语解读 」通用攻击模式检举和分类CAPEC详解

引言&#xff1a;在网络安全领域&#xff0c;了解攻击者的行为和策略对于有效防御攻击至关重要。然而&#xff0c;攻击模式的描述和分类方式缺乏统一性和标准化。为了解决这个问题&#xff0c;MITRE公司创建了CAPEC标准&#xff0c;以提供一个共享和统一的攻击模式分类框架。 1…

一文让你彻底搞懂cookie和session产生漏洞的原理

首先让我们来看看登录的一般流程&#xff1a; 输入账号密码提交给后端&#xff1b;后端进行判断账号密码是否一致&#xff0c;这里的逻辑根据每个程序员的想法去写&#xff1b;如果通过2登录成功&#xff0c;跳转登录成功的页面&#xff1b; 如果通过2登录失败&#xff0c;跳转…

Tensorflow2.0笔记 - 范式norm,reduce_min/max/mean,argmax/min, equal,unique

练习norm,reduce_min/max,argmax/min, equal,unique等相关操作。 范数主要有三种&#xff1a; import tensorflow as tf import numpy as nptf.__version__#范数参考&#xff1a;https://blog.csdn.net/HiWangWenBing/article/details/119707541 tensor tf.convert_to_tensor(…

汤姆·齐格弗里德《纳什均衡与博弈论》笔记(2)纳什均衡

第三章 纳什均衡——博弈论的基础 冯诺伊曼没有解决的问题 博弈论在其建立初始也显现出了严重的局限性。冯诺伊曼解决了二人零和博弈&#xff0c;但对多人博弈问题仍无法解决。如果只是鲁宾逊克鲁索和星期五玩游戏&#xff0c;博弈论可以很好地被应用&#xff0c;但它无法精确…

JAVA设计模式—工厂模式

JAVA设计模式—工厂模式 工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建对象的接口&#xff0c;但是由子类决定要实例化的类是哪一个。工厂模式使得一个类的实例化延迟到其子类。 用代码进行举例演示 假设我们有一个产品接口 Product 和两个具体产品类 Concrete…

TensorRT英伟达官方示例解析(二)

系列文章目录 TensorRT英伟达官方示例解析&#xff08;一&#xff09; TensorRT英伟达官方示例解析&#xff08;二&#xff09; 文章目录 系列文章目录前言一、03-BuildEngineByTensorRTAPI1.1 建立 Logger&#xff08;日志记录器&#xff09;1.2 Builder 引擎构建器1.3 Netwo…

【GitHub项目推荐--Awesome-Go/Python/JavaScript/Java】【转载】

Awesome 译为令人惊叹的、极好的&#xff0c;GitHub 上有很多 Awesome 开头的开源项目。比如 Awesome-Go、Awesome-Python。 就像汇总常用的软件一样&#xff0c;GitHub上有大量的开源项目&#xff0c;开发者就会根据需要汇总一些常用的好用的资源&#xff0c;并且根据 Awesom…