大数据学习(52)-MySQL数据库基本操作

ops/2025/3/5 22:04:36/
&&大数据学习&&
🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞

一、创建表

创建 MySQL 数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段的数据类型
  • 如果你不想字段为可以设置字段的属性为 NOT NULL,操作数据库时如果输入该字段的数据为空,就会报错。

  • comment字段一般标识相关表列的具体信息,在开发时可以帮助开发人员更好的理解。

  • AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加 1。
  • PRIMARY KEY 关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号 , 分隔。
  • ENGINE 设置存储引擎(一般也是默认的存储引擎),CHARSET 设置编码

1.1更改字段名

使用 CHANGE 关键字可以修改字段名和数据类型。

ALTER TABLE 表名 
CHANGE 旧字段名 新字段名 新数据类型;

1.2更改数据类型

使用 MODIFY 关键字可以修改字段的数据类型。

ALTER TABLE 表名 
MODIFY 字段名 新数据类型;

1.3同时更改字段名和数据类型

使用 CHANGE 关键字可以同时修改字段名和数据类型。

ALTER TABLE 表名 
CHANGE 旧字段名 新字段名 新数据类型;

二、drop 命令删除数据库

drop 命令格式:

DROP DATABASE <database_name>;        -- 直接删除数据库,不检查是否存在
或
DROP DATABASE [IF EXISTS] <database_name>;

三、drop删除数据表

以下为删除 MySQL 数据表的通用语法:

DROP TABLE table_name;     -- 直接删除表,不检查是否存在
DROP TABLE [IF EXISTS] table_name;  -- 会检查是否存在,如果存在则删除

四、MySQL 插入数据

MySQL 表中使用 INSERT INTO 语句来插入数据。

向MySQL数据表插入数据通用的 INSERT INTO SQL语法:

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

五、MySQL查询相关语句

在 MySQL 数据库中查询数据通用的 SELECT 语法:

SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];

参数说明:

  • column1column2, ... 是你想要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。
  • ORDER BY column_name [ASC | DESC] 是一个可选的子句,用于指定结果集的排序顺序,默认是升序(ASC)。
  • LIMIT number 是一个可选的子句,用于限制返回的行数。

MySQL SELECT 语句简单的应用实例:

-- 选择所有列的所有行
SELECT * FROM users;-- 选择特定列的所有行
SELECT username, email FROM users;-- 添加 WHERE 子句,选择满足条件的行
SELECT * FROM users WHERE is_active = TRUE;-- 添加 ORDER BY 子句,按照某列的升序排序
SELECT * FROM users ORDER BY birthdate;-- 添加 ORDER BY 子句,按照某列的降序排序
SELECT * FROM users ORDER BY birthdate DESC;-- 添加 LIMIT 子句,限制返回的行数
SELECT * FROM users LIMIT 10;

5.1 WHERE 子句

        用于在 MySQL 中过滤查询结果,只返回满足特定条件的行。可以是小于、大于、等于,也可以是组合条件(and、or),也可以是模糊匹配条件(like),还有以下一些不太常用的。

# IN 条件:SELECT * FROM countries WHERE country_code IN ('US', 'CA', 'MX');
# NOT 条件:SELECT * FROM products WHERE NOT category = 'Clothing';
# BETWEEN 条件:SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
# IS NULL 条件SELECT * FROM employees WHERE department IS NULL;
# IS NOT NULL 条件:SELECT * FROM customers WHERE email IS NOT NULL;

5.2 UPDATE 更新

        需要修改或更新 MySQL 中的数据,可以使用 UPDATE 命令来操作。可以通过where来进行条件限制。

5.3 DELETE 语句

        可以使用 DELETE FROM 命令来删除 MySQL 数据表中的记录。同样也可以通过where来对DELETE操作进行限制。如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

5.4 LIKE 子句

        在 MySQL 中使用 SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "runoob_author='RUNOOB.COM'"。

        但是有时候我们需要获取 runoob_author 字段含有 "COM" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 LIKE 子句。LIKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串。LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。LIKE字段也可以使用'%'、'_'结合使用。

5.5 UNION 操作符

        MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。SELECT也可以是两张不同表中数据的UNION。UNION 操作中的列数和数据类型必须相同,使用 UNION ALL 不去除重复行。

MySQL UNION 操作符语法格式:

SELECT column1, column2, ...
FROM table1
WHERE condition1
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition2
[ORDER BY column1, column2, ...];

5.6 ORDER BY(排序) 语句

        如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。MySQL ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。也可以用数字1,2,3...来表示对应列所在位置。

5.7 连接的使用

在 SELECT, UPDATE 和 DELETE 语句中使用 MySQL 的 JOIN 来联合多表查询。

JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

注意:

UNION:

        主要用于合并两个或多个SELECT语句的结果集。它会将多个查询的结果集合并为一个,同时默认去除重复的行(除非使用UNION ALL)。要求每个SELECT语句必须有相同数量的列,并且相应列的数据类型必须兼容。
JOIN:
        用于在不同表的列之间创建关联,以获取组合后的数据。常见的JOIN类型包括INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)等。它可以基于一个或多个条件将两个或多个表连接起来,并返回满足条件的行。

5.8NULL 值处理

我们已经知道 MySQL 使用 SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

在 MySQL 中,NULL 用于表示缺失的或未知的数据,处理 NULL 值需要特别小心,因为在数据库中它可能会导致不同于预期的结果。

为了处理这种情况,MySQL提供了三大运算符:

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。

关于 NULL 的条件比较运算是比较特殊的。注意:不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

在使用聚合函数(如 COUNT, SUM, AVG)时,它们会忽略 NULL 值,因此可能会得到不同于预期的结果。如果希望将 NULL 视为 0,可以使用 COALESCE 或 IFNULL。

SELECT AVG(COALESCE(salary, 0)) AS avg_salary FROM employees;

这样即使 salary 为 NULL,聚合函数也会将其视为 0。


http://www.ppmy.cn/ops/163419.html

相关文章

【大模型】大模型分类

大模型&#xff08;Large Models&#xff09;通常指参数量巨大、计算能力强大的机器学习模型&#xff0c;尤其在自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;等领域表现突出。以下是大模型的常见分类方式&#xff1a; 1. 按应用领域分类 …

从像素到体验:解码UI设计的未来进化论

UI设计&#xff08;用户界面设计&#xff09;作为数字产品与用户之间沟通的桥梁&#xff0c;一直在不断地发展和进化。从最初的简单像素图形&#xff0c;到如今注重用户体验&#xff08;UX&#xff09;的复杂交互界面&#xff0c;UI设计已经走过了漫长的历程。那么&#xff0c;…

Python 面向对象高级编程-使用@property

目录 property装饰器 小结 练习 在绑定属性时&#xff0c;如果我们直接把属性暴露出去&#xff0c;虽然写起来很简单&#xff0c;但是&#xff0c;没办法检查参数&#xff0c;导致可以把成绩随便改&#xff1a; s Student() s.score 9999 这显然不合逻辑。为了限制score…

JAVA实战开源项目:网上摄影工作室系统(Vue+SpringBoot) 附源码

本文项目编号 T 103 &#xff0c;文末自助获取源码 \color{red}{T103&#xff0c;文末自助获取源码} T103&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

2025-03-04 学习记录--C/C++-PTA 习题5-3 使用函数计算两点间的距离

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、解题思路 ⭐️ 三、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h> #include <ma…

Java 第十一章 GUI编程(2)

目录 GUI 事件处理 基本思路 添加事件监听器 对话框 实例 GUI 事件处理 对于采用了图形用户界面的程序来说&#xff0c;事件控制是非常重要的&#xff1b;到目前为止&#xff0c; 我们编写的图形用户界面程序都仅仅只是完成了界面&#xff0c;而没有任何实际的功能&…

Zookeeper 的 Node(Znode) 是什么?Zookeeper 监听机制的特点是什么?

Zookeeper 提供了一种 发布-订阅&#xff08;Pub-Sub&#xff09;机制&#xff0c;不过它更常被称为 Watch 机制。核心思想是&#xff1a;客户端可以对某个 Zookeeper 节点&#xff08;Node&#xff09;设置 Watch&#xff0c;当这个节点发生变化时&#xff0c;Zookeeper 会主动…

计算机毕业设计SpringBoot+Vue.js教师工作量管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…