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

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

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

一、创建表

创建 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。

相关文章:

  • E22-xxxT22D lora模块介绍
  • 请说明字符串中 string str = null string str = ““ string str = string.Empty 三者的区别
  • 电商平台项目需求文档(精简版)
  • 实用AI推荐
  • 机器学习数学通关指南
  • C++STL---<limits>
  • 【Linux网络-HTTP协议】HTTP基础概念+构建HTTP
  • MySQL中like模糊查询如何优化?
  • 2025AI 有哪些重要的发展趋势?
  • Centos7部署k8s(单master节点安装)
  • 协议-Airkiss
  • LINUX网络基础 - 初识网络,理解网络协议
  • 一、Redis 通用命令大全
  • SoapUI 结合 Postman 测试 WebService 协议
  • 一个py文件搞定mysql查询+Json转换+表数据提取+根据数据条件生成excel文件+打包运行一条龙
  • AI日记app
  • 前端文件分片上传深度解析:从原理到实践
  • leetcode日记(74)扰乱字符串
  • 记录一次跨库连表的坑
  • Java中用Map<String,Object>存储层次结构
  • 莱布雷希特专栏:古典乐坛边缘人
  • 国家统计局:消费对我国经济增长的拉动有望持续增长
  • 美国前总统拜登确诊前列腺癌
  • 泽连斯基与美国副总统及国务卿会谈,讨论伊斯坦布尔谈判等问题
  • 西藏普兰县公安局网安大队向自媒体人宣传网络安全知识
  • 中国田径巡回赛西安站完赛:男子跳远石雨豪夺冠,女子跳高刘肼毅折桂