Выборка строк (конструкция WHERE)




Зык запросов баз данных

Методическое рекомендации

 

г. Рыбница, 2013

УДК 004.43 (075)

ББК 32.973.2-018.1я7

Я 20

Составители:

Л.К. Скодорова, доцент кафедры ПИ,

А.А. Ляху, ст. преп. кафедры ФМИ.

Рецензенты:

И.А. Павлинов, доцент кафедры прикладной информатики

А.Б. Глазов, ст. преп., кафедры физики, математики и информатики

Язык запросов баз данных: методические рекомендации/ Сост.
Л.К. Скодорова, А.А. Ляху – Рыбница, 2013. – 54 с.

 

Методические рекомендации предназначены для студентов IV курса специальности ПИВЭ (РФ11ДР65ПЭ) и ПОВТ и АС (РФ12ДР62ПО). В работе изложены основные предложения базового варианта SQL, позволяющие познакомиться с основными средствами манипулирования данными. Приведены примеры конструкций SQL.

 

 

УДК 004.43 (075)

ББК 32.973.2-018.1я7

 

Рекомендовано НМС ПГУ им. Т.Г. Шевченко

 

 

Составители: Л.К. Скодорова,
А.А. Ляху, 2010

 


ВВЕДЕНИЕ

Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованны в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).

Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных СУБД.

Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии СУБД. В них решаются специфические проблемы параллельных процессов, целостности и безопасности данных, а также санкционирования доступа.

Совместная работа пользователей в сетях с помощью унифицированных средств общения с базами данных возможна только при наличии стандартного языка манипулирования данными. Таким языком стал SQL, разработанный в 1974 году фирмой IBM. В 1987 году SQL стал международным стандартом баз данных, а в 1992 году вышла вторая версия этого стандарта.

Структурный язык запросов SQL основан на реляционном исчислении с переменными картежами. Язык имеет несколько стандартов.


 

Назначение языка SQL

Любой язык работы с базами данных должен предоставлять пользователю следующие возможности:

• создавать базы данных и таблицы с полным описанием их структуры;

• выполнять основные операции манипулирования данными, такие как вставка, модификация и удаление данных из таблиц;

• выполнять простые и сложные запросы.

Кроме того, язык работы с базами данных должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд должны быть достаточно просты и доступны для изучения. И, наконец, он должен быть универсальным, т.е. отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД к другой. Язык SQL удовлетворяет практически всем этим требованиям. SQL является примером языка преобразования данных, или же языка, предназначенного для работы с таблицами с целью преобразования входных данных к требуемому выходному виду. Язык SQL, который определен стандартом ISO, имеет два основных компонента:

• язык DDL (Data Definition Language), предназначенный для определения структур базы данных и управления доступом к данным;

•язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.

Язык SQL относительно прост в изучении.

• Это непроцедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.

• Как и большинство современных языков, SQL поддерживает свободный формат записи операторов. Это означает, что при вводе отдельные элементы операторов не связаны с фиксированными позициями на экране.

• Структура команд задается набором ключевых слов, представляющих собой обычные слова английского языка, такие как CREATE TABLE (Создать таблицу), INSERT (Вставить), SELECT (Выбрать). Например:

 

CREATE TABLE Staff (staffNo VARCHAR(S), lName VARCHAR(15), salary DECIMAL(7,2))

INSERT INTO Staff VALUES ('SG16', 'Brown', 8300)

SELECT staffNo, IName, salary FROM Staff WHERE salary > 10000

 

• Язык SQL может использоваться широким кругом пользователей, включая администраторов баз данных (АБД), руководящий персонал компании, прикладных программистов и множество других конечных пользователей разных категорий.

В настоящее время для языка SQL существуют международные стандарты, формально определяющие его как стандартный язык создания и манипулирования реляционными базами данных, каковым он фактически и является.

 

Особая роль языка SQL

Язык SQL является первым и пока единственным стандартным языком работы с базами данных, который получил достаточно широкое распространение. Есть еще один стандартный язык работы с базами данных, NDL (Network Database Language), который построен на использовании сетевой модели CODASYL, но он применяется лишь в немногих разработках. Практически все крупнейшие разработчики СУБД в настоящее время создают свои продукты с использованием языка SQL либо интерфейса SQL, и большинство таких компаний участвуют в работе, по меньшей мере, одной организации, которая занимается разработкой стандартов этого языка. В SQL сделаны огромные инвестиции как со стороны разработчиков, так и со стороны пользователей. Он стал частью архитектуры приложений (например, такой как System Application Architecture (SAA) корпорации IBM), а также является стратегическим выбором многих крупных и влиятельных организаций (например, консорциума Х/Open, занятого разработкой стандартов для среды UNIX), Язык SQL также принят в качестве федерального стандарта обработки информации (Federal Information Processing Standard – FIPS), который должен соблюдаться в СУБД для получения разрешения продавать ее на территории США. Консорциум разработчиков SQL Access Group прилагает усилия по созданию расширений языка SQL, которые позволят обеспечить взаимодействие разнородных систем. Язык SQL используется в других стандартах и даже оказывает влияние на разработку многих стандартов как инструмент их определения. В качестве примера можно привести стандарты ISO "Information Resource Dictionary System" (IRDS) и "Remote Data Access" (RDA). Разработка языка вызвала определенную заинтересованность научных кругов, выразившуюся как в выработке необходимых теоретических основ, так и в подготовке успешно реализованных технических решений. Это особенно справедливо в отношении оптимизации запросов, методов распределения данных и реализации средств защиты. Начали появляться специализированные реализации языка SQL, предназначенные для новых рынков, такие как OnLine Analytical Processing (OLAP).

Используемая терминология. Стандарт ISO SQL не поддерживает таких формальных терминов, как отношение, атрибут и кортеж, вместо них применяются термины таблица, столбец и строка. В нашем обсуждении языка SQL мы в основном будем опираться на терминологию ISO. Кроме того, следует отметить, что стандарт SQL не предусматривает строгой поддержки тех определений реляционной модели данных. Например, в языке SQL допускается, что созданная в результате выполнения операции SELECT таблица может содержать повторяющиеся строки, устанавливается определенная последовательность столбцов, а пользователю разрешается сортировать строки в таблице.

Запись операторов SQL. В этом разделе кратко описана структура операторов SQL и представлена система обозначений, которая используется для определения формата различных конструкций языка SQL. Оператор SQL состоит из зарезервированных слов, а также из слов, определяемых пользователем. Зарезервированные слова являются постоянной частью языка SQL и имеют определенное значение. Их следует записывать именно так, как указано в стандарте, и нельзя разбивать на части для переноса из одной строки в другую. Слова, определяемые пользователем, задаются самим пользователем (в соответствии с определенными синтаксическими правилами) и представляют собой имена различных объектов базы данных – таблиц, столбцов, представлений, индексов и т.д. Слова в операторе размещаются в соответствии с установленными синтаксическими правилами. Хотя в стандарте это не указано, многие диалекты языка SQL требуют задания в конце оператора некоторого символа, обозначающего окончание его текста (как правило, с этой целью используется точка с запятой (;), например, системы на базе языка Pascal).

Обратите внимание: Синтаксис записи оператора SELECT зависит от используемой СУБД, например, для VFP символ (;) является признаком того, что следующая строка в тексте программы воспринимается интерпретатором, как органическое продолжение предыдущей строки. В других системах, символ переноса команды может быть другим (например, (_,) в VBA).

Большинство компонентов операторов SQL не чувствительно к регистру. Это означает, что могут использоваться любые буквы – как строчные, так и прописные. Одним важным исключением из этого правила являются символьные литералы – данные, которые должны вводиться точно так же, как были введены соответствующие им значения, хранящиеся в базе данных. Например, если в базе данных хранится значение фамилии 'SMITH', а в условии поиска указан символьный литерал 'Smith', то эта запись не будет найдена. Поскольку язык SQL имеет свободный формат, отдельные операторы SQL и их последовательности будут иметь более удобный для чтения вид при использовании отступов и выравнивания. Рекомендуется придерживаться следующих правил.

1.Каждая конструкция в операторе должна начинаться с новой строки.

2.Начало каждой конструкции должно быть обозначено таким же отступом, что и начало других конструкций оператора.

3.Если конструкция состоит из нескольких частей, каждая из них должна начинаться с новой строки с некоторым отступом относительно начала конструкции, что будет указывать на их подчиненность.

4.Прописные буквы используются для записи зарезервированных слов и должны указываться в операторах точно так же, как это будет показано.

5.Строчные буквы используются для записи слов, определяемых пользователем.

6. Вертикальная черта указывает на необходимость выбора одного из нескольких приведенных значений, например a b | с.

7.Фигурные скобки определяют обязательный элемент, например {а}.

8.Квадратные скобки определяют необязательный элемент, например [а].

9.Многоточие (...) используется для указания необязательной возможности повторения конструкции от нуля до нескольких раз, например { а b } [, с...]. Эта запись означает, что после а или b может следовать от нуля до нескольких повторений с, разделенных запятыми.

На практике для определения структуры базы данных (в основном ее таблиц) используются операторы DDL, а для заполнения этих таблиц данными и выборки из них информации с помощью запросов – операторы DML.

Манипулирование данными

Операторы языка SQL DML:

SELECTвыборка данных из базы;

INSERTвставка данных в таблицу;

UPDATEобновление данных в таблице;

DELETEудаление данных из таблицы.

 

Рассмотрим простые запросы, затем перейдем к более сложным вариантам выборки данных, использующим функции сортировки, группирования, агрегирования, а также выполнения запроса к нескольким таблицам. В базе данных имеются следующие таблицы:

 

Branch (branchNo, street, city, postcode)

Staff (staffNo, fName, lName, position, sex, DOB, salary, branchNo)

PropertyForRent (propertyNo, street, city, postcode, type, rooms, rent, ownerNo, staffNo, branchNo)

Client (clientNo, fName, lName, telNo, prefType, maxRent)

PrivateOwner (ownerNo, fName, lName, address, telNo)

Viewing (clientNo, propertyNo, viewDate, comment)

Литералы. Литералы представляют собой константы, которые используются в операторах SQL. Существуют различные формы литералов для каждого типа данных, которые поддерживаются SQL. Все нечисловые значения данных всегда должны заключаться в одинарные кавычки, а все числовые данные не должны заключаться в одинарные кавычки. Ниже приведен пример использования литералов для вставки данных в таблицу.

 

INSERT INTO PropertyForRent (propertyNo, street, city, postcode, type, rooms, rent, ownerNo, staffNo, branchNo)

VALUES ('PA14', '16 Holhead', 'Aberdeen', 'AB7 5SU', 'House', 6, 650.00, 'C046', 'SA91', ' B007')

 

Значение столбца rooms является литералом целочисленного типа, а значение столбца rent – это десятичный числовой литерал. Ни один из них не должен заключаться в одинарные кавычки. Значения всех остальных столбцов представляют собой символьные строки и обязательно должны быть взяты в одинарные кавычки.

Простые запросы. Назначение оператора SELECT состоит в выборке и отображении данных одной или более таблиц базы данных. Это исключительно мощный оператор, способный выполнять действия, эквивалентные операторам реляционной алгебры выборки, проекции и соединения, причем в пределах единственной выполняемой команды. Оператор SELECT является чаще всего используемой командой языка SQL. Общий формат оператора SELECT имеет следующий вид:

 

SELECT [DISTINCT | ALL] { * | [columnExpression [AS newName]] [, …. ] }

FROM TableName [alias][,... ]

[WHERE condition]

[GROUP BY columnlist] [HAVING condition]

[QRDER BY columnList]

 

Здесь параметр columnExpression представляет собой имя столбца или выражение из нескольких имен. Параметр TableName является именем существующей в базе данных таблицы (или представления), к которой необходимо получить доступ. Необязательный параметр alias – это сокращение, устанавливаемое для имени таблицы TableName. Обработка элементов оператора SELECT выполняется в следующей последовательности.

1. FROM. Определяются имена используемой таблицы или нескольких таблиц.

2. WHERE. Выполняется фильтрация строк объекта в соответствии с заданными условиями.

3. GROUP BY. Образуются группы строк, имеющих одно и то же значение в указанном столбце.

4. HAVING. Фильтруются группы строк объекта в соответствии с указанным условием.

5. SELECT. Устанавливается, какие столбцы должны присутствовать в выходных данных.

6. ORDER BY. Определяется упорядоченность результатов выполнения оператора.

Порядок конструкций в операторе SELECT не может быть изменен. Только две конструкции оператора – SELECT и FROM – являются обязательными, все остальные конструкции могут быть опущены. Операция выборки с помощью оператора SELECT является замкнутой, в том смысле, что результат запроса к таблице также представляет собой таблицу. Существует множество вариантов использования данного оператора.

Реляционные схемы для той части учебного проекта DreamHome, в которой содержится и обрабатывается информация об аренде собственности, выглядят так:

 

Branch (branchNo, street, cizy, postcode)

Staff (staffNo, fName, IName, position, sex, DOB, salary, branchNo}

PropertyForRent (propertyNo, street, city, postcode, type, rooms,rent, ownerNo, staf fNo, branchNo)

Client (clientNo, fName, IName, telNo, prefType, maxRent)

PrivateOwner (ownerNo, fName, IName, address, telNo)

Viewing (clientNo, propertyNo, viewDate, comment)

Registration (cJlientNo, branchNo, staffNo, dateJoined)

 

Общепринятое обозначение реляционной схемы включает имя отношения, за которым (в скобках) располагаются имена атрибутов. При этом первичный ключ (обычно) подчеркивается.

Концептуальной моделью, или концептуальной схемой, называется множество всех реляционных схем базы данных.

В табл. 1-8 показан пример определения реляционной схемы.

Пример некоторого текущего состояния базы данных учебного проекта DreamHome.

Таблица Branch Таблица 1.

branchNo street city postcode
В005 22 Deer Rd London SW1 4EH
В007 16 Argyll St Aberdeen AB23SU
ВООЗ 163 Main St Glasgow Gil 9QX
В004 32 Manse Rd Bristol BS99 1N2
В002 56 Clover Dr London NW10 6EU

 

 

Таблица Staff Таблица 2.

staffNo fName [Name position sex DOB salary branchNo
SL21 John White Manager M l-Oct-45   BOOS
SG37 Ann   Beech Assistant F lO-Nov-60   B003
SG14 David Ford Supervisor M 24-Mar-58   B003
SA9 Mary Howe Assistant F 19-Feb-70   B007
SG5 Susan Brand Manager F 3-Jun-40   BOOS
SL41 Julie Lee   Assistant F 13-Jun-65   BOOS

Таблица PropertyForRent Таблица З.

property No street city postcode type rooms rent
РА14 16Holhead Aberdeen AB7 5SU House    
PL94 6 Argyll St London NW2 'Flat    
PG4 6 Lawrence St Glasgow Gil 9QX Flat    
PG36 2 Manor Rd Glasgow G32 4QX Flat    
PG21 18 Dale Rd Glasgow G12 House    
PG16   5 Novar Dr   Glasgow G129AX Flat    

 

Продолжение таблицы 3.

Owner No staff No Branch No
C046 SA9 B007
C087 SL41 BOOS
C040   BOOS
C093 G37 S BOOS
COS7 SG37 вооз
C093 SG14 вооз

 

Таблица Client Таблица 4.

clientNo fName IName telNo prefType maxRent
CR76 John Kfy 0207-774-5632 Flat  
С056 Aline Stewart 0141-848-1825 Flat  
CR74 Mike Ritchie 01475-392178 House  
CR62 Mary Tregear 01224-196720 Flat  

 

Таблица PrivateOwner Таблица 5.

ownerNo fName IName address telNo
С046 Joe Keogh 2 Fergus Dr, Aberdeen AB2 7SX 01224-861212
С087 Carol Parrel 6 Achray St, Glasgow G32 9DX 0141-357-7419
С040 Tina Murphy 63 Well St, Glasgow G42 0141-943-1728
С093 Tony Shaw 12 Park PI, Glasgow G4 OQR 0141-225-7025  

 

Таблица Viewing Таблица 6.

clientNo propertyNo viewDate comment
CR56 РА14 24-May-Ol too small
CR76 PG4 20-Apr-Ol too remote
CR56 PG4 26-May-Ol  
CR62 РА14 14~May-01 no dining room
CR56 PG36 28-Apr-Ol  

 

Блица Registration Таблица 7.

clientNo branchNo staffNo dateJoined
CR76 В005 SL41 2-Jan-Ol
CR56 вооз SG37 11-Apr-OO
CR74 вооз SG37 16-Nov-99
CR62 В007 SA9 7-Mar-OO

 

Пример 1. Выборка всех столбцов и всех строк. Составьте список подробных сведений о каждом из работников.

Поскольку в приведенном выше запросе не указаны никакие ограничения, в оператор не требуется помещать конструкцию WHERE. Кроме того, необходимо выбрать все существующие в таблице столбцы. Поэтому данный запрос записывается следующим образом:

 

SELECT staffNo, fName, lName, position, sex, DOB, salary, branchNo FROM Staff

 

Поскольку выборка всех имеющихся в таблице столбцов выполнятся достаточно часто, в языке SQL определен упрощенный вариант записи значения "все столбцы" – вместо имен столбцов указывается символ звездочки (*). Приведенный ниже оператор полностью эквивалентен первому и представляет собой упрощенный вариант записи того же самого запроса:

 

SELECT * FROM Staff

 

Результат выполнения этого запроса представлен в табл. 8.

Таблица 8.

Результат выполнения запроса список подробных сведений о каждом из работников

staffNo fName lName position sex DOB salary branchNo
SL21 John White Manager M l-Oct-45 30000.00 B005
SG37 Ann Beech Assistant F 10-Nov-60 12000.00 B003
SG14 David Ford Supervisor M 24-Mar-58 18000.00 B003
SA9 Mary Howe Assistant F 19-Feb-70 9000.00 B007
SG5 Susan Brand Manager F 3-Jun-40 24000.00 B003
SL41 Julie Lee Assistant F 13-Jun-65 9000.00 B005

 

Пример 2. Выборка конкретных столбцов и всех строк. Создайте отчет о заработной плате всех работников с указанием только табельного номера работника (staffNo), его имени и фамилии, а также сведений о зарплате.

 

SELECT staffNo, fName, lName, salary FROM Staff

 

В этом примере на основе таблицы Staff создается новая таблица, включающая только указанные в запросе столбцы staffNo, fName, lName и salary, причем именно в этом порядке. Результат выполнения данного запроса приведен в табл. 9. Обратите внимание, что строки в результирующей таблице могут оказаться неотсортированными, если не дано специальное указание. С другой стороны, в некоторых СУБД сортировка результирующей таблицы выполняется по умолчанию с учетом значений одного или нескольких столбцов (например, в базе данных Microsoft Access сортировка этой результирующей таблицы была бы выполнена по значению первичного ключа staffNo).

Таблица 9.

Результат выполнения запроса

staffNo fName lName salary
SL21 John White 30000.00
SG37 Ann Beech 12000.00
SG14 David Ford 18000.00
SA9 Mary Howe 9000.00
SG5 Susan Brand 24000.00
SL41 Julie Lee 9000.00

 

Пример 3. Использование ключевого слова DISTINCT. Составьте список номеров всех сдаваемых в аренду объектов, осмотренных клиентами.

 

SELECT propertyNo FROM Viewing

 

Результат выполнения этого запроса представлен в табл10. Обратите внимание, что результат выполнения запроса содержит повторяющиеся значения, поскольку, в отличие от операции проекции реляционной алгебры, оператор SELECT не исключает повторяющихся значений при выполнении проекции по значениям одного или нескольких столбцов. Для удаления из результирующей таблицы повторяющихся строк используется ключевое слово DISTINCT.

Откорректированный запрос выглядит следующим образом:

 

SELECT DISTINCT propertyNo FROM Viewing

 

Результаты выполнения второго варианта запроса представлены в табл.11.

 

Таблица 10. Таблица 11.

propertyNo
PA14
PA4
PA4
PA14
PG36
propertyNo
PA14
PA4
PG36

 

 

Пример 4. Вычисляемые поля. Создайте отчет о ежемесячной зарплате всего персонала с указанием табельного номера, имени, фамилии и суммы зарплаты.

SELEC T staffNo, fName, lName, salary/12

FROM Staff

 

Этот запрос почти идентичен запросу из примера 2, за исключением того, что здесь требуется указать сумму не годовой, а ежемесячной зарплаты. В данном случае желаемый результат, может быть достигнут простым делением суммы зарплаты за год на 12. Результаты выполнения запроса представлены в табл. 12.

Таблица 12.

Результат выполнения запроса

staffNo fName lName Exp_1
SL21 John White 2500.00
SG37 Ann Beech 1000.00
SG14 David Ford 1500.00
SA9 Mary Howe 750.00
SG5 Susan Brand 2000.00
SL41 Julie Lee 750.00

 

Это пример использования в запросе вычисляемого поля (иногда эти поля называют расчетными, или производными). В общем случае для создания вычисляемого поля в списке SELECT следует указать некоторое выражение языка SQL. В этих выражениях могут применяться операции сложения, вычитания, умножения и деления. При построении сложных выражений могут использоваться круглые скобки. Для получения значения вычисляемого поля могут использоваться значения из нескольких столбцов таблицы, однако тип данных тех столбцов, которые входят в арифметические выражения, обязательно должен быть цифровым. В таблице, полученной в результате выполнения запроса, четвертый столбец называется Exp_1. Обычно столбцам результирующей таблицы присваиваются имена соответствующих им столбцов исходных таблиц базы данных. Однако в данном случае это правило неприменимо, поскольку в стандарте SQL не определены правила именования производных столбцов. В одних диалектах языка SQL имена таким столбцам присваивают в соответствии с порядком их расположения в таблице (например, соl4), в других диалектах у подобного столбца имя может вовсе отсутствовать или вместо него может использоваться выражение, находящееся в списке SELECT. Стандарт ISO позволяет явным образом задавать другие имена столбцов результирующей таблицы, для чего применяется конструкция AS. При использовании этой конструкции приведенный выше оператор SELECT может быть переписан следующим образом:

 

SELECT staffNo, fName, lName, salary/12 AS monthlySalary

FROM Staff

 

В этом случае четвертый столбец результирующей таблицы будет называться monthlySalary, а не Exp_1.

Выборка строк (конструкция WHERE)

В приведенных выше примерах в результате выполнения операторов SELECT выбирались все строки указанной таблицы. Однако очень часто требуется тем или иным образом ограничить набор строк, помещаемых в результирующую таблицу запроса. Это достигается с помощью указания в запросе конструкции WHERE. Она состоит из ключевого слова WHERE, за которым следует перечень условий поиска, определяющих те строки, которые должны быть выбраны при выполнении запроса. Существует пять основных типов условий поиска (или предикатов, если пользоваться терминологией ISO).

Сравнение. Сравниваются результаты вычисления одного выражения с результатами вычисления другого выражения.

Диапазон. Проверяется, попадает ли результат вычисления выражения в заданный диапазон значений.

Принадлежность к множеству. Проверяется, принадлежит ли результат вычисления выражения к заданному множеству значений.

Соответствие шаблону. Проверяется, отвечает ли некоторое строковое значение заданному шаблону.

Значение NULL. Проверяется, содержит ли данный столбец NULL (неопределенное значение).

 

Пример 5. Условие поиска путем сравнения. Перечислите весь персонал с размером заработной платы больше 10 000 фунтов стерлингов в год.

SELECT staffNo, fName, lName, position, salary

FROM Staff

WHERE salary > 10000

В этом запросе используются таблица Staff и предикат salary>10000. При выполнении запроса будет создана новая таблица, содержащая только те строки таблицы Staff, в которых значение столбца salary больше 10000 фунтов стерлингов. Результаты выполнения запроса представлены в табл. 13.

Результат выполнения запроса Таблица 13.

staffNo fName lName position salary
SL21 John White Manager 30000.00
SG37 Ann Beech Assistant 12000.00
SG14 David Ford Supervisor 18000.00
SG5 Susan Brand Manager 24000.00

В языке SQL можно использовать простые операции сравнения, перечисленные в табл. 14.

 

Операции сравнения Таблица 14

Знак операции Назначение
= Равно
<> Не равно (стандарт ISO)
!= Не равно (используется в некоторых диалектах)
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно

 

Более сложные предикаты могут быть построены с помощью логических операций AND, OR или NOT, а также с помощью скобок, используемых для определения порядка вычисления выражения (если это необходимо или желательно). Вычисление выражений в условиях выполняется по следующим правилам:

• Выражение вычисляется слева направо.

• Первыми вычисляются подвыражения в скобках.

• Операции NOT выполняются перед операциями AND и OR.

• Операции AND выполняются перед операциями OR.

Для устранения любой возможной неоднозначности рекомендуется использовать круглые скобки.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: