The Структуриран език за заявки (SQL) предоставя на потребителите на база данни възможност за създаване на персонализирани заявки за извличане на информация от бази данни. В по-ранна статия разгледахме извличане на информация от база данни използване на SQL SELECT заявки. Нека разширим тази дискусия и изследваме как можете да се представите напреднало заявки за извличане на данни, които отговаря на специфични условия.
Нека разгледаме пример, основан на често използваните Северен вятър база данни, която често се доставя с продукти за бази данни като урок.
Ето извадка от таблицата с продукти на базата данни:
Идентификация на продукта | Име на продукта | Доставчик ID | QuantityPerUnit | Единична цена | UnitsInStock |
---|---|---|---|---|---|
1 | Чай | 1 | 10 кутии х 20 торби | 18.00 | 39 |
2 | Чанг | 1 | 24 - 12 унции бутилки | 19.00 | 17 |
3 | Анасонов сироп | 1 | 12 - 550 ml бутилки | 10.00 | 13 |
4 | Подправка на готвач Антон Cajun | 2 | 48 - 6 унции буркани | 22.00 | 53 |
5 | Гъмбо миксът на готвача Антон | 2 | 36 кутии | 21.35 | 0 |
6 | Намазване на момчетата на баба | 3 | Буркани от 12 - 8 унции | 25.00 | 120 |
7 | Био сушени круши на чичо Боб | 3 | 12 - 1 lb pkgs. | 30.00 | 15 |
Прости гранични условия
Първите ограничения, които ще поставим върху нашата заявка, включват прости гранични условия. Можем да ги посочим в клаузата WHERE на заявката SELECT, като използваме прости изрази на условия, конструирани със стандартни оператори, като ,> = и <=.
Първо, нека опитаме проста заявка, която ни позволява да извлечем списък на всички продукти в базата данни, които имат UnitPrice над 20,00:
ИЗБЕРЕТЕ ProductName, UnitPrice
ОТ продукти
WHERE UnitPrice> 20.00
Това създава списък с четири продукта, както е показано по-долу:
ProductName UnitPrice
Шеф Антон Gumbo Mix 21.35
Подправка на готвач Антон Cajun 22.00
Разпространение на баба Boysenberry 25.00
Био сушени круши на чичо Боб 30.00
Можем да използваме и клаузата WHERE със низови стойности. Това по същество приравнява символите на числа, като A представлява стойността 1 и Z представлява стойността 26. Например, можем да покажем всички продукти с имена, започващи с U, V, W, X, Y или Z със следната заявка:
ИЗБЕРЕТЕ ИМЕ НА ИМЕТО
ОТ продукти
WHERE ProductName> = 'T'
Което дава резултат:
Име на продукта
Био сушени круши на чичо Боб
Изразяване на диапазони с помощта на граници
Клаузата WHERE също ни позволява да реализираме условие за диапазон на стойност, като използваме множество условия. Например, ако искахме да вземем заявката си по-горе и да ограничим резултатите до продукти с цени между 15.00 и 20.00, бихме могли да използваме следната заявка:
ИЗБЕРЕТЕ ProductName, UnitPrice
ОТ продукти
КЪДЕ UnitPrice> 15.00 И UnitPrice <20.00
Това води до резултата, показан по-долу:
ProductName UnitPrice
Чай 18.00
Чанг 19.00
Изразяване на диапазони МЕЖДУ
SQL също осигурява пряк път МЕЖДУ синтаксиса, който намалява броя на условията, които трябва да включим, и прави заявката по-четлива. Например, вместо да използваме двете условия WHERE по-горе, можем да изразим същата заявка като:
ИЗБЕРЕТЕ ProductName, UnitPrice
ОТ продукти
КЪДЕ UnitPrice МЕЖДУ 15.00 И 20.00
Както при другите ни клаузи за условие, BETWEEN работи и със низови стойности. Ако искахме да изготвим списък на всички държави, започващи с V, W или X, бихме могли да използваме заявката:
ИЗБЕРЕТЕ ИМЕ НА ИМЕТО
ОТ продукти
КЪДЕ Име на продукта МЕЖДУ "А" и "Г"
Което дава резултат:
Име на продукта
Анасонов сироп
Чай
Чанг
Гъмбо миксът на готвача Антон
Подправка на готвач Антон Cajun
Клаузата WHERE е мощна част от езика SQL, която ви позволява да ограничите резултатите до стойности, попадащи в определени диапазони. Той се използва много често за подпомагане на изразяването на бизнес логика и трябва да бъде част от инструментариума на всеки специалист по бази данни. Често е полезно да се включат общи клаузи в съхранена процедура, за да стане достъпна за тези, които не знаят SQL.