sql查询某些id所匹配的数据_收藏!SQL语法全集合!(Part1)

9d03daa9b81c6734c4754a5ef2d7d268.png

来源:收藏!SQL语法全集合!

出处:PHP开源社区

fcd93fea1266d83d14ed7c5021176775.png

ee4ebe8caadd577f9b126bcfec53004e.png

SQL 语法结构包括:

  • 子句 - 是语句和查询的组成成分。(在某些情况下,这些都是可选的。)
  • 表达式 - 可以产生任何标量值,或由列和行的数据库表
  • 谓词 - 给需要评估的 SQL 三值逻辑(3VL)(true/false/unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。
  • 查询 - 基于特定条件检索数据。这是 SQL 的一个重要组成部分。
  • 语句 - 可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。

SQL 语法要点

  • SQL 语句不区分大小写,但是数据库表名、列名和值是否区分,依赖于具体的 DBMS 以及配置。

例如:SELECTselectSelect 是相同的。

  • 多条 SQL 语句必须以分号(;)分隔
  • 处理 SQL 语句时,所有空格都被忽略。SQL 语句可以写成一行,也可以分写为多行。

b90a8f7221a71d7e814228ef943a6c92.png

SQL 分类

数据定义语言(DDL)

数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。

DDL 的主要功能是定义数据库对象

DDL 的核心指令是 CREATEALTERDROP

数据操纵语言(DML)

数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。

DML 的主要功能是 访问数据,因此其语法都是以读写数据库为主。

DML 的核心指令是 INSERTUPDATEDELETESELECT。这四个指令合称 CRUD(Create, Read, Update, Delete),即增删改查。

事务控制语言(TCL)

事务控制语言 (Transaction Control Language, TCL) 用于管理数据库中的事务。这些用于管理由 DML 语句所做的更改。它还允许将语句分组为逻辑事务。

TCL 的核心指令是 COMMITROLLBACK

数据控制语言(DCL)

数据控制语言 (Data Control Language, DCL) 是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。

DCL 的核心指令是 GRANTREVOKE

DCL 以控制用户的访问权限为主,因此其指令作法并不复杂,可利用 DCL 控制的权限有:CONNECTSELECTINSERTUPDATEDELETEEXECUTEUSAGEREFERENCES

根据不同的 DBMS 以及不同的安全性实体,其支持的权限控制也有所不同。

(以下为 DML 语句用法)

e52e267fafc057cfc3f9da74d53b0b3e.png

6fdda5d8fd568d6162c9f3513d843cf6.png

7b6626019a4dfe0bc03a85a0c2cb3aa4.png

查询单列

SELECT prod_name
FROM products;

查询多列

SELECT prod_id, prod_name, prod_price
FROM products;

查询所有列

ELECT *
FROM products;

查询不同的值

SELECT DISTINCT
vend_id FROM products;

限制查询结果

-- 返回前 5 行
SELECT * FROM mytable LIMIT 5;
SELECT * FROM mytable LIMIT 0, 5;
-- 返回第 3 ~ 5 行
SELECT * FROM mytable LIMIT 2, 3;

df44e7fbb20dab84e6493dd38f18e00d.png

9ca6c0227b66aba873fc17b26a44be1c.png

子查询的子查询

SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (SELECT cust_id
                  FROM orders
                  WHERE order_num IN (SELECT order_num
                                      FROM orderitems
                                      WHERE prod_id = 'RGAN01'));

WHERE

  • WHERE 子句用于过滤记录,即缩小访问数据的范围。
  • WHERE 后跟一个返回 truefalse 的条件。
  • WHERE 可以与 SELECTUPDATEDELETE 一起使用。
  • 可以在 WHERE 子句中使用的操作符

614300bba1d651415840196560e5f21f.png

SELECT 语句中的 WHERE 子句

SELECT * FROM Customers
WHERE cust_name = 'Kids Place';

UPDATE 语句中的 WHERE 子句

UPDATE Customers
SET cust_name = 'Jack Jones'
WHERE cust_name = 'Kids Place';

DELETE 语句中的 WHERE 子句

DELETE FROM Customers
WHERE cust_name = 'Kids Place';

IN 和 BETWEEN

  • IN 操作符在 WHERE 子句中使用,作用是在指定的几个特定值中任选一个值。
  • BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于某个范围内的值。

IN 示例

SELECT *
FROM products
WHERE vend_id IN ('DLL01', 'BRS01');

BETWEEN 示例

SELECT *
FROM products
WHERE prod_price BETWEEN 3 AND 5;

AND、OR、NOT

  • ANDORNOT 是用于对过滤条件的逻辑处理指令。
  • AND 优先级高于 OR,为了明确处理顺序,可以使用 ()
  • AND 操作符表示左右条件都要满足。
  • OR 操作符表示左右条件满足任意一个即可。
  • NOT 操作符用于否定一个条件。

AND 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE vend_id = 'DLL01' AND prod_price <= 4;

OR 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

NOT 示例

SELECT *
FROM products
WHERE prod_price NOT BETWEEN 3 AND 5;

LIKE

  • LIKE 操作符在 WHERE 子句中使用,作用是确定字符串是否匹配模式。
  • 只有字段是文本值时才使用 LIKE
  • LIKE 支持两个通配符匹配选项:%_
  • 不要滥用通配符,通配符位于开头处匹配会非常慢。
  • % 表示任何字符出现任意次数。
  • _ 表示任何字符出现一次。

% 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE '%bean bag%';

_ 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE '__ inch teddy bear';
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: split_part函数是HiveQL中的字符串函数之一,用于将字符串按照指定的分隔符分割成多个子字符串,并返回指定位置的子字符串。 该函数的语法如下: split_part(str, delimiter, index) 其中,str为要分割的字符串,delimiter为分隔符,index为要返回的子字符串的位置。 例如,假设有一个字符串"hello,world,how,are,you",要将其按照逗号分隔成多个子字符串,并返回第三个子字符串,可以使用如下语句: SELECT split_part("hello,world,how,are,you", ",", 3); 执行结果为"how"。 需要注意的是,如果指定的位置超出了分割后的子字符串数量,函数将返回空字符串。 ### 回答2: HiveSQL是一种SQL-on-Hadoop的分析工具,提供了许多类似传统关系型数据库中SQL语言的函数。其中,split_part函数可以用来将一个字符串按指定的分隔符进行分割,并返回分割后的指定位置的字符串。 split_part函数的语法如下: split_part(str, delimiter, index) 其中,str示要被分割的字符串,delimiter示分隔符,index示要返回的分割后的字符串在结果中的位置,从1开始计数。如果index超出了分割后的字符串个数,则返回NULL。 例如,如果我们要将字符串“hello,world,hi”按逗号进行分割,并返回第二个分割后的字符串,则可以使用如下语句: select split_part('hello,world,hi', ',', 2); 执行该语句后,返回的结果是“world”。 需要注意的是,split_part函数只能对字符串进行分割,如果要对其他类型的数据进行操作,需要先将其转换为字符串。 总之,split_part函数是HiveSQL中非常实用的函数之一,可以帮助我们快速地实现数据处理需求。 ### 回答3: 在 HiveSQL 中,split_part 函数是一种非常常用的字符串函数。它的主要作用是将一个字符串分割成多个子字符串,并返回其中的某个子字符串。具体来说,split_part 函数可以将一个字符串按照指定的分隔符进行分割,并返回其中的第 N 个子字符串。该函数的语法格式如下: ```sql split_part(str, delimiter, N) ``` 其中,str 示要分割的字符串,delimiter 示分隔符,N 示要返回的子字符串的位置。例如,如果要将字符串 "hello,world,how,are,you" 按照 "," 进行分割,并返回其中的第 3 个子字符串,则可以使用如下的 HiveSQL 语句: ```sql select split_part('hello,world,how,are,you', ',', 3); ``` 执行该语句后,将会返回字符串 "how"。 需要注意的是,如果要返回的子字符串不存在,则该函数将会返回空字符串。同时,如果分割后得到的子字符串不足 N 个,则同样会返回空字符串。因此,在使用 split_part 函数时,一定要确保 N 的取值范围是合法的,否则可能会出现错误的结果。 总的来说,split_part 函数是一种非常方便的字符串处理函数,在日常的 HiveSQL 开发中,它能够帮助我们快速地从一个字符串中提取所需的子字符串,从而大大提高代码的可读性和易用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值