Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операторы in, between, like, is NULL
При задании логического условия в предложении WHERE могут быть использованы операторы IN, BETWEEN, LIKE, ISNULL. Операторы IN (равен любому из списка) и NOT IN (не равен ни одному из списка) используются для сравнения проверяемого значения поля с заданным списком. Этот список значений указывается в скобках справа от оператора IN. Построенный с использованием IN предикат, считается истинным, если значение поля, имя которого указано слева от IN, совпадает (подразумевается точное совпадение) с одним из значений, перечисленных в списке. Предикат, построенный с использованием NOT IN, считается истинным, если значение поля не совпадает ни с одним из значений, перечисленных в списке. Пример: Получить из таблицы EXAM_MARKS сведения о студентах, имеющих экзаменационные оценки только 4 и 5: SELECT * FROM EXAM_MARKS WHERE MARK IN (4,5); Пример: Получить сведения о студенах, не имеющих ни одной оценки, равной 4 и 5. SELECT * FROM EXAM_MARKS WHERE MARK NOT IN (4,5); Оператор BETWEEN используется для проверки условия вхождения значения поля в заданный интервал, то есть вместо списка значений атрибута этот оператор задает границы его изменения. Пример, вывести информацию о предметах, на изучение которых отводится количество часов, находящееся в пределах между 30 и 40: SELECT * FROM SUBJECT WHERE HOUR BETWEEN 30 AND 40; Замечание! Граничные значения входят во множество значений, с которыми производится сравнение. Оператор LIKE применим только к символьным полям. Этот оператор просматривает строковые значения полей с целью определения, входит ли заданная в операторе LIKE строка (образец поиска) в символьную строку-значение проверяемого поля. Для выборки строковых значений по заданному образцу подстроки можно применять шаблон искомого образца строки, использующий следующий символ: § «_» - определяет возможность наличия в указанном месте одного любого символа; § «%» - допускает присутствие в указанном месте проверяемой строки последовательности любых символов произвольной длины. Пример: написать запрос, выбирающей информацию о студентах, фамилии которых начинаются с буквы «Р». SELECT * FROM STUDENT WHERE SURNAME LIKE ‘P%’; В случае необходимости включения в образец самих символов «_» и «%» применяют так называемые escape -символы. Например, можно задать образец поиска с помощью следующего выражения:
LIKE ‘_\_P’ ESCAPE ‘_\’ В этом выражении символ '\' с помощью ключевого слова ESCAPE объявляется escape -символом. Первый символ «_» будет соответствовать, как и ранее, любому символу в проверяемой строке. Однако второй символ «_», следующий после символа «\», объявленного escape -символом, уже будет интерпретироваться буквально как обычный символ. Внимание! Рассмотренные выше операторы сравнения и операторы IN, BETWEEN, LIKE ни в коем случае нельзя использовать для проверки содержимого поля на пустое значение! 3. Преобразование вывода и встроенные функции В SQL реализованы операторы преобразования данных и встроенные функции, предназначенные для работы со значениями столбцов и/или константами в выражениях. Использование этих операторов допустимо в запросах везде, где допустимы выражения. 3.1. Числовые и символьные константы Несмотря на то, что SQL работает с данными в понятии строк и столбцов таблиц, имеется возможность применения значений выражений, построенных с использованием встроенных функций, констант, имен столбцов, определяемых как своего рода виртуальные столбцы. Они помещаются в списке столбцов и могут сопровождаться псевдонимами. Если в запросе вместо спецификации столбца SQL обнаруживает число, то оно интерпретируется как числовая константа. Символьные константы должны указываться в одинарных кавычках. Пример. SELECT 'Фамилия', SURNAME, 'Имя', NAME, 100 FROMSTUDENT; 3.2 Арифметические операции для преобразования числовых данных Можно использоваться следующие арифметические операции: унарный минус, +, -, *, /. Например: SELECT SURNAME, NAME, STIPEND, -(STIPEND*KURS)/2 FROM STUDENT WHERE KURS=4 AND STIPEND>0; 3.3. Операция конкатенации строк Операция конкатенации «||» позволяет соединять значения двух или более столбцов символьного типа или символьных констант в одну строку. В СУБД Access для этой цели в запросах SQL применяется символ «&» Пример: SELECT SURNAME || ‘_’ || NAME, STIPEND FROM STUDENT WHERE KURS=4 AND STIPEND>0 3.4 Функции преобразования символов в строке LOWER (строка) = LCASE(строка) – перевод в строчные символы UPPER(строка) = UCASE(строка) – перевод в прописные буквы INITCAP(строка) – перевод первой буквы каждого слова строки в прописную.
Агрегирование и групповые функции. Упорядочение выходных полей Агрегирующие функции позволяют получать из таблицы сводную (агрегированную) информацию, выполняя операции над группой строк таблицы. Для задания в SELECT-запросе агрегирующих операций используются следующие ключевые слова: COUNT – определяет количество строк или значений поля, выбранных посредством запроса и не являющихся NULL-значениями; SUM – вычисляет арифметическую сумму всех выбранных значений поля; AVG – вычисляет среднее значение для всех выбранных значений данного поля (в некоторых реализациях - AVERAGE); MAX – вычисляет наибольшее из всех выбранных значений данного поля; MIN – вычисляет наименьшее из всех выбранных значений данного поля; В SELECT-запросе агрегирующие функции используются аналогично именам полей, при этом имена полей используются в качестве аргументов этих функций. 5. Пустые значения в агрегирующих функциях Если аргументом функции COUNT является столбец, содержащий пустое значение, то COUNT вернет число строк, которые не содержат пустые значения и к которым применено определенное в COUNT условие или группирование. Поведение функции COUNT(*) не зависит от пустых значений. Она возвратит общее количество строк в таблице. Функция AVG вычисляет среднее значение всех известных значений множества элементов, то есть эта функция подсчитывает сумму известных значений и делит ее на количество этих значений, а не на общее количество значений, среди которых могут быть NULL-значения. Если столбец состоит только из пустых значений, то функция возвратит NULL. 6. Результат действия трехзначных условных операторов При отсутствии пустых значений условные операторы возвращают либо TRUE либо FALSE. Если в столбце присутствуют пустые значения, то может быть возвращено третье значение: UNKNOWN. Пустые значения оказывают влияние на использование логических операторов NOT, AND, OR. Оператор NOT: Обычный унарный оператор NOT обращает оценку FRUE в FALSE и наоборот, но NOT NULL по прежнем у будет возвращать пустое значение NULL. Следует отличать проверку IS NULL (ISNOTNULL). Оператор AND: Ü Если результат двух условий, объединенных AND известен, то применяются правила булевой логики; Ü Если результат одного из утверждений UNKNOWN, а второго – TRUE, то состояние неизвестного утверждения является определяющим (т.е. результат будет UNKNOWN); Ü Если результат одного из утверждений UNKNOWN, а второго – FALSE, то результат будет FALSE; Ü Если результат обоих утверждений неизвестен, то и результат будет UNKNOWN. Оператор OR: Ü Если результат двух условий, объединенных OR известен, то применяются правила булевой логики; Ü Если результат одного утверждения TRUE, а второго – неизвестен, то результат будет TRUE; Ü Если результат одного утверждения FALSE, а второго – неизвестен, то результат будет неизвестен; Ü Если результат обоих утверждений неизвестен, то и результат будет UNKNOWN. 7. Упорядочение выходных полей Записи в реляционной БД не упорядочены, однако в результате выполнения запроса, данные можно упорядочить. Для этого используется оператор ORDER BY, который позволяет упорядочивать выводимые записи в соответствии со значениями одного или нескольких выбранных столбцов. При этом можно задать возрастающую (ASC) или убывающую (DESC) последовательность сортировки.
|
||||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 2558; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.0.25 (0.014 с.) |