Skip to main content

Избиране на данни в диапазони в SQL

Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan (Април 2025)

Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan (Април 2025)
Anonim

Езикът на структурираните заявки (SQL) предоставя на потребителите на база данни възможност да създават персонализирани заявки за извличане на информация от бази данни. В по-ранна статия разгледахме извличането на информация от база данни чрез SQL SELECT заявки. Нека да разгърнем тази дискусия и да проучим как можете да изпълнявате усъвършенствани заявки за извличане на данни, които отговарят на конкретни условия.Нека разгледаме един пример, базиран на често използваната база данни на Northwind, която често се доставя с продукти за бази данни като урок.

Ето извадка от таблицата с продукти на базата данни:

Продуктова таблица
Идентификация на продуктаИме на продуктаSupplierIDQuantityPerUnitЕдинична ценаUnitsInStock
1Chai110 кутии х 20 торби18.0039
2Чанг124 - 12 унция бутилки19.0017
3Анасонен сироп112 - 550 ml бутилки10.0013
4Готвач на Антон Cajun подправка2Буркани от 48 до 6 унции22.0053
5Готвач на Антон Гъмбо микс236 кутии21.350
6Бъзънбери на баба се разпространи3Буркани от 12 до 8 унции25.00120
7Органичните сушени круши на чичо Боб312 - 1 lb pkgs.30.0015

Обикновени гранични условия

Първите ограничения, които ще поставяме върху заявката ни, включват просто гранични условия. Можем да ги посочим в клаузата WHERE на заявката SELECT, като използваме изявления за прости условия, конструирани със стандартни оператори, като <,>,> = и <=.

Първо, нека да опитаме проста заявка, която ни позволява да извлечем списък на всички продукти в базата данни, които имат UnitPrice повече от 20.00:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 20.00

Това дава списък на четири продукта, както е показано по-долу:

ProductName UnitPrice ------- -------- Главен готвач Anton's Gumbo Mix 21.35 Главен готвач Anton Cajun Подправка 22.00 Бадминс Бойзенбъри Spread 25.00 Органична суха круша на чичо Боб 30.00

Можем също да използваме клаузата WHERE със стойности на низовете. Това означава, че стойностите 1 и Z представляват стойността 26. Например можем да покажем всички продукти с имена, започващи с U, V, W, X, Y или Z, със следната заявка:

SELECT PRODUCTName FROM PRODUCTS WHERE Име на продукт> = 'T'

Което произвежда резултата:

ProductName ------- Органични сушени круши на чичо Боб

Изразяване на диапазони с помощта на граници

Клаузата WHERE ни позволява също така да приложим условие за обхвата на дадена стойност, като използваме множество условия. Например, ако искаме да вземем горепосочената ни заявка и да ограничим резултатите до продукти с цени между 15.00 и 20.00, можем да използваме следната заявка:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

Това дава резултат, показан по-долу:

ProductName UnitPrice ------- -------- Чай 18.00 Чан 19.00

Изразяване на диапазони с BETWEEN

SQL също така предоставя бърз достъп до BTWEEN синтаксиса, който намалява броя на условията, които трябва да включим и прави заявката по-разбираема. Например, вместо да използваме двете условия WHERE по-горе, бихме могли да изразим същата заявка като:

SELECT ProductName, UnitPrice FROM продукти, WHERE UnitPrice МЕЖДУ 15.00 И 20.00

Както и при клаузите ни за други условия, BETWEEN работи и със стойности на низове. Ако искахме да съставим списък на всички страни, започващи с V, W или X, можем да използваме заявката:

SELECT ProductName FROM PRODUCTS WHERE Име на продукта BETWEEN "A" и "D"

Което произвежда резултата:

ProductName ------- Сироп от анасон Chai Chang готвач Антонов гумбо микс готвач Anton Cajun подправка

Клаузата WHERE е мощна част от езика на SQL, която ви позволява да ограничите резултатите до стойности, попадащи в определени диапазони. Той много често се използва, за да изразите бизнес логиката, и трябва да бъде част от инструментариума на всяка професионална база данни.

Често е полезно да включите общите клаузи в запомнена процедура, за да я направите достъпна за тези, които нямат SQL знания.