П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие
Download 1.32 Mb. Pdf ko'rish
|
Базы данных
3.4.4. Выборка отдельных строк
Как уже отмечалось, реляционные базы данных наиболее приспособлены для обработки больших массивов однородной ин- формации. Поэтому таблицы, как правило, содержат большое ко- личество строк, а оператор SELECT выводит лишь часть строк таблицы. Для этого используется фраза WHERE <условие>, в которой в качестве условия записывается некоторое логическое выражение, и строка выводится на экран, только если соответст- вующее этой строке значение выражения истинно. Примером мо- жет служить оператор SELECT grp,nsb,fam,im,ot FROM Stud WHERE grp = 'МО-33'. В результате выполнения этого оператора на экран будут выведены сведения только о студентах группы МО-33. Способы построения выражений уже упоминались при обсуж- дении вычисляемых столбцов, однако при построении логических выражений используются дополнительные средства. По-прежнему основными «кирпичиками», из которых строятся выражения, явля- ются имена столбцов и константы. Числа записываются так же, как и в большинстве традиционных языков программирования, а сим- вольные строки и даты заключаются в одиночные кавычки, причем 57 дата записывается в национальном формате (в том, на который настроена система). Примеры констант: 'это символьная строка', -385, '25.10.2009'. Выражения строятся из имен столбцов и констант с приме- нением знаков арифметических операций +, –, *, /, круглых скобок, операций отношения =, <, >, <=, >=, <>, логических операций NOT, AND, OR, а также некоторых специфических для SQL конструк- ций. Отметим, что старшинство операций не всегда очевидно, поэтому в сомнительных случаях лучше не жалеть круглых скобок. Из специфических конструкций опишем лишь наиболее часто применяемые фразы IN, LIKE и трехзначную логику. Фраза IN применяется, когда нужно отобрать строки, у кото- рых значение в каком-либо столбце принадлежит заданному спи- ску, например SELECT grp,nsb,fam,im,ot FROM Stud WHERE grp IN ('МО-33','ПИЭ-21','ИВТ-52'). Фраза like (а также not like) наиболее часто используется при сравнении строк, не совпадающих по длине. Соответствующее условие записывается в виде WHERE <строка> LIKE <шаблон>. Под шаблоном здесь понимается строка, содержащая симво- лы подстановки % и _, причем % обозначает любую последова- тельность символов, а знак подчеркивания _ – в точности один символ (в файловой системе Windows аналогичную роль играют символы * и ?). Например, шаблону 'Иван%' соответствуют строки 'Иванов', 'Иванищев', 'Иванченко' и т. п. В случае, когда в шаблон требуется включить сами знаки % или _, следует дополнить условие фразой ESCAPE '<экранирующий символ>' и поставить экранирующий символ перед знаком подстановки. Например, условие WHERE reslt LIKE '100\%' ESCAPE '\' отберет только строки, в которых значение reslt равно 100%. Важной особенностью языка SQL является использование т. н. трехзначной логики, под которой в этом контексте понима- ется возможность присвоения некоторым ячейкам таблиц пустых значений (null), которые в условных выражениях обрабатываются по особым правилам. При этом пустое значение может нахо- диться (если при описании таблицы не оговорено противное) в любой ячейке таблицы, независимо от ее типа. 58 Основной принцип использования пустых значений состоит в том, что если выражение содержит элемент с пустым значением, то всему выражению также присваивается пустое значение. Соответственно, результат вычисления условного выражения может принимать одно из трех значений: истина, ложь или пусто, а строка включается в результирующий набор, только если это значение истинно. В некоторых случаях целесообразно сразу выяснить, является ли то или иное значение пустым. Этой цели служат операции сравнения IS null, IS NOT null , как, например, в условном выражении WHERE adr IS NOT null. Заметим, что это не то же самое, что adr <> null, поскольку в соответствии с вышеописанными правилами последнее выраже- ние имеет пустое значение, и, соответственно, в результирующий набор не войдет ни одной строки, в то время, как в первом случае результирующий набор будет содержать строки с непустым значение adr. В языке Transact-SQL (СУБД SQL Server) весьма полезной для работы с пустыми значениями является функция ISnull(<вы- ражение1>, <выражение2>), которая проверяет, является ли <вы- ражение1> пустым, и если это так, то возвращает <выражение2>, в противном же случае – <выражение1>. Аналогичные функции есть и в других СУБД. Download 1.32 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling