MySQL入门指南:数据库操作的基础知识

当谈到关系型数据库管理系统(RDBMS)时,MySQL无疑是最常见和广泛使用的一个。它是一个强大的工具,用于存储、管理和检索数据。在这篇博客中,我们将介绍MySQL的基本知识,包括数据库的操作、数据表的操作以及数据的增删改查~~

目录

1. 数据库的操作

1.1 创建数据库

1.2 删除数据库

1.3 选择数据库

2. 数据表的操作

2.1 创建数据表

2.2 修改数据表

2.3 删除数据表

3. 数据的增删改查

3.1 插入数据

3.2 更新数据

3.3 删除数据

3.4 查询数据

4.查询数据的具体知识点 

1. 聚合函数

1.1 COUNT()

1.2 SUM()

1.3 AVG()

1.4 MAX()和MIN()

2. 连接

2.1 内连接(INNER JOIN)

2.2 左连接(LEFT JOIN)

3. 子查询

3.1 子查询作为过滤条件

3.2 子查询用于计算

4. 模糊查询

4.1 使用LIKE进行模糊查询

5. 排序数据

6. 过滤数据

6.1 使用BETWEEN过滤数据

6.2 使用IN过滤数据

6.3 使用LIMIT过滤数据


1. 数据库的操作

1.1 创建数据库

在MySQL中,创建一个新数据库非常简单。可以使用以下SQL语句:

CREATE DATABASE mydatabase charset utf8;

 平时常用的字符集:

1.gbk windows简体中文版,默认字符集,2个字节表示一个汉字

2.utf8 更通用的字符集,不仅仅能表示中文,通常是3个字节表示一个汉字

3.unicode 其实严格来说,这个算编码方式,不能算一个完全的字符集

1.2 删除数据库

如果需要删除一个数据库,可以使用以下SQL语句:

DROP DATABASE mydatabase;

请注意,这将永久删除数据库及其所有数据,因此要谨慎使用。

1.3 选择数据库

使用以下命令来选择要在其上执行操作的数据库:

USE mydatabase;

2. 数据表的操作

2.1 创建数据表

创建数据表时,您需要定义表的结构,包括列的名称、数据类型和其他约束。以下是一个简单的示例:

CREATE TABLE users (id INT AUTO_INCREMENT,username VARCHAR(50),email VARCHAR(100),age INT
);

float和double都是用于定义表格列(字段)数据类型的关键词 ,但是二者表示的精度都不够,为什么呢~~

其实是跟内存存储结构有关,这两个表示方式的好处是存储空间小,计算速度快,但是可能存在误差~

使用decimal,是使用了类似字符串的方式来保存,更精确储存,但是存储空间更大,计算速度更慢了~

2.2 修改数据表

您可以使用ALTER TABLE命令来修改数据表的结构。例如,添加新列:

ALTER TABLE users
ADD phone VARCHAR(20);

2.3 删除数据表

要删除一个数据表,可以使用以下SQL语句:

DROP TABLE users;

3. 数据的增删改查

3.1 插入数据

要向数据表中插入新的数据行,使用INSERT INTO语句:

INSERT INTO users (username, email, age)
VALUES ('john_doe', 'john@example.com', 30);

3.2 更新数据

使用UPDATE语句来修改现有的数据行:

UPDATE users
SET age = 31
WHERE username = 'john_doe';

3.3 删除数据

使用DELETE语句来删除数据行:

DELETE FROM users
WHERE username = 'john_doe';

3.4 查询数据

要从数据表中检索数据,使用SELECT语句:

SELECT * FROM users;

临时表显示一下就销毁了,和服务器那边的硬盘上的表没啥关系~~ 

 您还可以添加条件来过滤数据:

SELECT * FROM users
WHERE age > 25;

举个例子~

4.查询数据的具体知识点 

所以不能写where XXX=null这样~

可以写where XXX is null~

1. 聚合函数

聚合函数允许您对数据进行汇总和计算。以下是一些常见的聚合函数:

1.1 COUNT()

COUNT()函数用于计算行数或特定列的非空值数量。

SELECT COUNT(*) FROM users; -- 计算用户总数

1.2 SUM()

SUM()函数用于计算数值列的总和。

SELECT SUM(salary) FROM employees; -- 计算员工工资总和

1.3 AVG()

AVG()函数用于计算数值列的平均值。

SELECT AVG(age) FROM users; -- 计算用户年龄平均值

1.4 MAX()MIN()

MAX()MIN()函数分别用于找到数值列中的最大值和最小值。

SELECT MAX(score) FROM exam_results; -- 找到最高分
SELECT MIN(price) FROM products; -- 找到最低价格

2. 连接

连接操作允许您将多个表的数据合并在一起,以便一起查询。以下是一些常见的连接类型:

2.1 内连接(INNER JOIN)

内连接返回匹配的行,仅包括两个表中都存在的数据。

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

2.2 左连接(LEFT JOIN)

左连接返回左表中的所有行以及右表中与左表匹配的行。如果右表中没有匹配的行,将返回NULL。

比如存在一个只有名字没有成绩的记录和一个只有成绩没有名字的记录~

3. 子查询

子查询是在查询中嵌套的查询。它们可以用于过滤、计算和比较数据。

3.1 子查询作为过滤条件

SELECT product_name, product_price
FROM products
WHERE product_price > (SELECT AVG(product_price) FROM products);

3.2 子查询用于计算

SELECT department_name, (SELECT AVG(salary) FROM employees WHERE employees.department_id = departments.department_id) AS avg_salary
FROM departments;

4. 模糊查询

4.1 使用LIKE进行模糊查询

LIKE操作符用于在文本列中执行模糊查询。通配符 % 表示零个或多个字符,_ 表示一个字符。例如,要查找以 "李" 开头的用户名:

SELECT * FROM users
WHERE username LIKE '李%';

 要查找包含 "doe" 的用户名:

SELECT * FROM users
WHERE username LIKE '%doe%';

5. 排序数据

使用ORDER BY子句对查询结果进行排序。例如,按年龄升序排序:

SELECT * FROM users
ORDER BY age ASC;

按用户名降序排序:

SELECT * FROM users
ORDER BY username DESC;

6. 过滤数据

6.1 使用BETWEEN过滤数据

BETWEEN关键字用于选择在指定范围内的数据。例如,查找年龄在25到35之间的用户:

SELECT * FROM users
WHERE age BETWEEN 25 AND 35;

6.2 使用IN过滤数据

IN关键字用于匹配多个条件中的一个。例如,查找特定用户名的用户:

SELECT * FROM users
WHERE username IN ('john_doe', 'jane_smith');

6.3 使用LIMIT过滤数据

SELECT * FROM users
WHERE username IN ('john_doe', 'jane_smith')
limit 2;

举个例子~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/133152.html

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

相关文章

嵌入式学习笔记(27)uart stdio的移植

什么是stdio&#xff1f; &#xff08;1&#xff09;#include <stdio.h> &#xff08;2&#xff09;stdio:standard input output &#xff08;3&#xff09;stdio是os定义的默认的输入和输出通道。一般在PC机的情况下&#xff0c;标准输入指的是键盘&#xff0c;标准…

VIOOVI干货分享:企业车间动作作业分析如何改善?

企业车间动作作业分析是将操作动作分解为最小的分析单位&#xff0c;我们通常称之为动素。通过对动素的定性研究&#xff0c;找出合理有效的动作&#xff0c;缩短操作时间&#xff0c;实现标准化操作。在实际应用中&#xff0c;应分析和研究操作员的各种动作&#xff0c;去除没…

深入探讨Kubernetes(K8s)在云原生架构中的关键作用和应用

文章目录 1. 容器化的应用程序管理2. 自动化扩展和负载均衡3. 容器编排和调度4. 存储管理5. 自动化滚动更新6. 多云和混合云部署7. 监控和日志8. 安全9. 社区支持和生态系统10. 未来展望案例 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1…

Nginx部署前后端分离项目(Linux)

Nginx代理前端页面、后端接口 一、前端打包二、后端打包三、Linux部署Nginx启动、暂停、重启服务器部署文件地址&#xff1a; 一、前端打包 npm run build二、后端打包 通过Maven 使用package打包 三、Linux部署 安装Nginx 安装环境 yum -y install gcc pcre pcre-devel z…

SpringMVC系列(七)之自定义注解

目录 一. Java注解简介 1.1 Java注解分类 1.2 JDK基本注解 Override Deprecated SuppressWarnings 1.3 JDK元注解 从 Java 7 开始&#xff0c;额外添加了 3 个注解: 1.4 自定义注解 如何自定义注解&#xff1f; 二. 自定义注解示例 枚举类&#xff1a; 示例一&…

【JUC】Java并发编程从挖坑到入土全解(一)

目录 线程基础知识 作者&#xff08;拜个神&#xff09; 什么是JUC 为什么会出现多线程 硬件方面 摩尔定律失效 软件方面 弊端 & 问题 从线程启动开始 Java线程理解以及openJDK的实现 更加底层的的C源码 线程基础知识 作者&#xff08;拜个神&#xff09; Dou…

A Mathematical Framework for Transformer Circuits—(三)

A Mathematical Framework for Transformer Circuits Two-Layer Attention-Only TransformersThree Kinds of CompositionPath Expansion of LogitsPath Expansion of Attention Scores QK CircuitAnalyzing a Two-Layer ModelInduction HeadsInduction heads的功能Induction h…

CVE-2023-1454:Jeecg-Boot SQL注入漏洞复现

文章目录 Jeecg-Boot SQL注入漏洞(CVE-2023-1454)复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 Jeecg-Boot SQL注入漏洞(CVE-2023-1454)复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事…

Windows 性能突然打鸡血,靠 Bug 修复了多年顽疾

要说 的 Bug 集中地&#xff0c;当属资源管理器。 速度缓慢、卡顿、崩溃&#xff0c;不同设备、不同版本的用户都有不同的感受。 严格来说&#xff0c;这其实是 Windows 的传统艺能&#xff0c;要完美修复可不容易。 而作为小老弟的文件资源管理器&#xff0c;时不时来个无响…

【JUC系列-06】深入理解Semaphore底层原理和基本使用

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

VRTK4⭐二.VRTK4的项目基础配置

文章目录 &#x1f7e5; 硬件基本配置&#x1f7e7; 设置XR Plug-in Management&#x1f7e8; 添加项目Tilia&#x1f7e9; 配置项目Hierarchy &#x1f7e5; 硬件基本配置 解决使用OpenXR,HTC头显正常追踪,但手柄无法使用的问题. 问题如下: 当我们按照官方的标准流程配置完Op…

【HttpRunnerManager】搭建接口自动化测试平台实战

一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和配置、mysql 安装和配置 2. python: django 配置、uwsgi 配置 二、我搭建的环境 1. Centos7 &#xff08;配置 rabbitmq、mysql 、Supervisord&#xff09; 2. python 3.6.8 &#xff08;配置 django、uwsgi&…

pcl--第四节 采样一致性算法RANSAC

RANSAC随机采样一致性算法简介 RANSAC是“RANdom SAmple Consensus”&#xff08;随机抽样共识或采样一致性&#xff09;的缩写&#xff0c;它是一种迭代方法&#xff0c;用于从包含异常值的一组数据中估计数学模型的参数。该算法由Fischler和Bolles于1981年发布。 RANSAC算法…

基于SpringBoot+微信小程序的智慧医疗线上预约问诊小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 近年来&#xff0c;随…

关于Linux服务器.sh文件启动问题

问题描述 在linux服务器上使用文本编辑&#xff08;并非vim操作&#xff09;对.sh脚本文件进行修改后无法启动&#xff0c;显示’\r’识别错误等。 错误如下&#xff1a; 错误原因 因为.sh文件在经过这种编辑后格式产生了错误&#xff0c;由unix转为了doc格式&#xff0c;需…

CentOS7上从0开始搭建Zookeeper集群

CentOS7上搭建Zookeeper集群 环境准备安装jdk安装zookeeper下载zookeeper解压zookeeper修改zookeeper配置文件 搭建zookeeper集群修改zoo.cfg文件添加myid文件启动zookeeper集群 环境准备 首先你需要准备三台zookeeper&#xff08;待会会讲zookeeper的安装流程&#xff09;&am…

Spring Cloud学习笔记【消息总线-SpringCloud Bus】

SpringCloud Bus概述 概述 Spring Cloud Bus是Spring Cloud生态系统中的一个组件&#xff0c;用于实现微服务架构中的消息总线。它利用了轻量级消息代理&#xff08;如RabbitMQ或Kafka&#xff09;作为通信中间件&#xff0c;实现了在分布式系统中的消息传递和事件广播。 Sp…

redis I/O多路复用机制

一、基础回顾 1.1 多路复用要解决什么问题 并发多客户端连接场景&#xff0c;在多路复用之前最简单和典型的方案就是同步阻塞网络IO模型。 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上…

RHCSA-VM-Linux安装虚拟机后的基础命令

1.代码命令 1.查看本机IP地址&#xff1a; ip addr 或者 ip a [foxbogon ~]$ ip addre [foxbogon ~]$ ip a 1&#xff1a;<Loopback,U,LOWER-UP> 为环回2网卡 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP>为虚拟机自身网卡 2.测试网络联通性&#xff1a; [f…

万字长文总结检索增强 LLM

连接&#xff1a;https://zhuanlan.zhihu.com/p/655272123 ChatGPT 的出现&#xff0c;让我们看到了大语言模型 ( Large Language Model, LLM ) 在语言和代码理解、人类指令遵循、基本推理等多方面的能力&#xff0c;但幻觉问题 Hallucinations[1] 仍然是当前大语言模型面临的一…