前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端也该知道,除了 select 、 from 、 where 之外的另外几个重要的数据库操作

前端也该知道,除了 select 、 from 、 where 之外的另外几个重要的数据库操作

作者头像
掘金安东尼
发布2023-03-09 11:37:56
5810
发布2023-03-09 11:37:56
举报
文章被收录于专栏:掘金安东尼

本瓜最近要做 数据库的查询 相关工作,其中涉及到一些 SQL 操作。

由于自己的数据库知识还停留在大学时期,对仅存的 select 、 from 、 where 这几个关键字的印象,稍微复杂一点的操作就又要一直检索查。。。

于是,想着自己还是稍作梳理,把一些常见的查询数据库操作、和一些复杂一点的操作记录~


在前后端分离的大背景下,前端可能只熟悉各类 UI 库,数据都来源于后端处理好的接口,几乎很少接触数据库了。。

但实际上,数据库操作会训练数据库思维,数据库思维应该是每个编程开发人员都应该具备的,无论前端后端,好比:数学家对数字应该敏感,程序员应该对数据敏感。

如果说互联网基石是数据,那互联网未来是数据处理!

现在生成数据的成本太低,分析数据、提取有效数据的成本太高

image.png
image.png

select 、 from 、 where 这几个不说了。。。说些别的~

DISTINCT 也要认识

DISTINCT 关键字用于去除查询结果中的重复行。例如,在以下查询中:

代码语言:javascript
复制
SELECT column1, column2, column3
FROM table_name;

如果存在多行完全相同的数据,则这些行会在查询结果中都显示。

如果加上 DISTINCT 关键字,那么查询语句将变为:

代码语言:javascript
复制
SELECT DISTINCT column1, column2, column3
FROM table_name;

在这种情况下,查询结果中仅包含一行完全相同的数据。

请注意,使用 DISTINCT 关键字会影响查询性能,因此在使用时需要适当地考虑平衡查询结果的准确性和查询性能。

COUNT + DISTINCT

使用 COUNT 和 DISTINCT 操作符,可以统计数据表中某个字段的不同值的数量。例如,可以使用以下查询来统计 customers 表中 name 字段的不同值的数量:

代码语言:javascript
复制
SELECT COUNT(DISTINCT name)
FROM customers;

JOIN 更重要

JOIN 关键字是 SQL 中用于连接多个表的 重要 操作。它允许你把两个或多个表中的数据组合在一起,以便查询所需的数据。

这种连接方式通常是通过两个表中共同的字段来完成的,也就是说,在两个表中都具有相同值的列。这个字段被称为关联字段。

🌰举个例子

例如,如果你有两个表:

一个表存储 客户信息,另一个表存储 订单信息,并且客户信息表和订单信息表都包含客户 ID 字段,那么你可以使用 JOIN 操作将这两个表连接在一起,以便查询每个客户的所有订单。

customers 表:

customer_id

name

address

1

Alice

123 Main St

2

Bob

456 Market St

3

Eve

789 Elm St

orders 表:

order_id

customer_id

order_date

1

1

2020-01-01

2

2

2020-02-01

3

1

2020-03-01

然后,我们可以使用 JOIN 操作将这两个表连接在一起:

代码语言:javascript
复制
SELECT customers.name, orders.order_date
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id;

这个查询的结果如下:

name

order_date

Alice

2020-01-01

Alice

2020-03-01

Bob

2020-02-01

从上面的结果可以看到,这张合成表包含了客户的名称和对应的订单日期。

AND、OR 和 LIKE 筛选

AND、OR 和 LIKE,用于筛选特定的记录~

1、可以使用 AND 运算符来查找满足两个条件的记录,

延续之前的例子:例如查找订单日期在 2020 年 1 月 1 日之后,且客户名称为“张三”的记录:

代码语言:javascript
复制
SELECT customers.name, orders.order_date
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id
WHERE customers.name = '张三' AND orders.order_date > '2020-01-01';

2、使用 OR 运算符来查找满足任意一个条件的记录,

例如查找订单日期在 2020 年 1 月 1 日之后,或客户名称为“张三”的记录:

代码语言:javascript
复制
SELECT customers.name, orders.order_date
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id
WHERE customers.name = '张三' OR orders.order_date > '2020-01-01';

3、以及使用 LIKE 运算符来模糊查找满足指定条件的记录。

例如查找客户名称以“张”开头的记录:

代码语言:javascript
复制
SELECT customers.name, orders.order_date
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id
WHERE customers.name LIKE '张%';

因为查询的需求有时是:查询之后要创建一件新表来存,所以也有创建新表的需求等等;

CREATE AS 创建

使用 CREATE AS 操作,可以从现有的数据表中创建新的数据表,例如:

代码语言:javascript
复制
CREATE TABLE new_orders AS
SELECT *
FROM orders;

上面的操作会创建一个名为 new_orders 的新数据表,其中包含与 orders 表中所有字段相同的内容。

INSERT 插入

INSERT 操作用于在数据表中插入新的记录,例如,可以使用以下 INSERT 操作来向 customers 表中插入一条新记录:

代码语言:javascript
复制
INSERT INTO customers (name, address)
VALUES ('王五', '北京市朝阳区');

UPDATE SET 修改字段值

SET 操作用于更改数据表中的某个字段的值

代码语言:javascript
复制
UPDATE customers
SET name = '李四'
WHERE customer_id = 2;

DROP 删除字段

DROP 操作则用于删除数据表中的某个字段

代码语言:javascript
复制
ALTER TABLE customers
DROP COLUMN name;

暂且就这么多吧,足够全面、足够消化消化了,后面有空再补充~



本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DISTINCT 也要认识
  • COUNT + DISTINCT
  • JOIN 更重要
  • AND、OR 和 LIKE 筛选
  • CREATE AS 创建
  • INSERT 插入
  • UPDATE SET 修改字段值
  • DROP 删除字段
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档