Оператор языка sql. In Применяется для проверки наличия значения в списке. Операторы для сравнения данных
12.1. Общее представление об основных операторах языка SQL
Как уже отмечалось в "Программное обеспечение работы с современными базами данных" , все операторы языка SQL разделяются на три составные части: DDL – язык определения данных, DCL – язык управления данными, DML – язык обработки данных .
Приведем примеры основных операторов из вышеуказанных частей (без описания синтаксиса). Описание синтаксиса операторов SQL можно посмотреть в многочисленных книгах по языку SQL , в меню "Справка" конкретных СУБД .
Операторы разграничения доступа пользователей к объектам базы данных (DCL) .
GRANT – создание в системе безопасности записи, разрешающей пользователю работать с данными или выполнять определенные операции SQL .
DENY - создание в системе безопасности записи, запрещающей доступ для определенной учетной записи.
Операторы определения данных (язык DDL) .
Соответствующие операторы предназначены для создания, удаления, изменения основных объектов модели данных реляционных СУБД : таблиц, представлений, индексов.
CREATE TABLE <имя> - создание новой таблицы в базе данных.
DROP TABLE <имя> - удаление таблицы из базы данных .
ALTER TABLE <имя> - изменение структуры существующей таблицы или ограничений целостности, задаваемых для данной таблицы.
При выполнении аналогичных операций с представлениями или индексами в указанных операторах вместо служебного слова TABLE записывается слово VIEW ( представление ) или слово INDEX ( индекс )
Операторы манипулирования данными (язык DML) .
Операторы DML работают с базой данных и используются для изменения данных и получения необходимых сведений.
SELECT – выборка строк, удовлетворяющих заданным условиям. Оператор реализует, в частности, такие операции реляционной алгебры как " селекция " и " проекция ".
UPDATE – изменение значений определенных полей в строках таблицы, удовлетворяющих заданным условиям.
INSERT – вставка новых строк в таблицу.
DELETE – удаление строк таблицы, удовлетворяющих заданным условиям. Применение этого оператора учитывает принципы поддержки целостности, поэтому он не всегда может быть выполнен корректно.
12.2 Интерактивный режим работы с SQL (интерактивный SQL)
Соответствующий режим предусматривает непосредственную работу пользователя с базой данных по следующему алгоритму: используя прикладную программу (клиентское приложение ) или стандартную утилиту, входящую в СУБД , пользователь :
- устанавливает соединение с БД (подтверждая наличие прав доступа);
- вводит соответствующий оператор SQL, при необходимости в режиме диалога вводит дополнительную информацию;
- инициирует выполнение команды.
Текст запроса поступает в
Дисциплина: Базы данных
Операторы языка SQL
Язык SQL включает в себя операторы разных категорий. Любой SQL-оператор состоит из зарезервированных слов и слов, определяемых пользователем в соответствии с установленными синтаксическими правилами. Как и во многих языках программирования, большинство компонентов операторов языка не чувствительны к регистру. Исключение из этого правила как обычно составляют символьные данные, при задании которых необходимо помнить о регистре и использовать тот, который необходим для представления данных.
Для записи операторов в языке принят свободный формат, позволяющий посредством отступов и выравниваний придать SQL-программе более читабельный вид.
каждая фраза в операторе должна начинаться с новой строки;
начало каждой фразы должно быть выровнено с началом остальных фраз оператора;
каждая часть фразы должна начинаться с новой строки с некоторым отступом относительно начала всей фразы, что позволит выделить подчиненные части;
для записи операторов применяются некоторые соглашения:
для записи зарезервированных слов используются прописные буквы;
для записи определяемых пользователем слов используются строчные буквы;
вертикальная черта "|"" указывает на необходимость выбора одного из нескольких значений;
фигурные скобки определяют обязательный элемент;
квадратные скобки определяют необязательный элемент;
многоточие "..." используется для указания необязательной возможности повторения конструкции, от нуля до нескольких раз.
Операторы определения данных (табл.1) применяются для описания структур используемых данных. В состав этой категории входят следующие операторы: create table, drop table, alter table, create view, ALTER VIEW, DROP VIEW.
Таблица 1 . Операторы определения данных
Оператор Пояснение
create table Создать таблицу
DROP table Удалить таблицу
alter table Изменить таблицу
CREATE VIEW Создать представление
alter view Изменить представление
drop view Удалить представление
Операторы манипулирования данными, образующие следующую категорию операторов, предназначены для заполнения таблиц данными и для обновления загруженной в них информации. К данной категории относятся следующие операторы: delete, insert, update (табл.2).
Таблица 2 . Операторы манипулирования данными
Оператор Пояснение
Delete Удаляет одну или несколько строк, соответствующих условиям
фильтрации, из базовой таблицы
INSERT Вставляет одну строку в базовую таблицу
update Обновляет значения одного или нескольких столбцов в одной или
нескольких строках, соответствующих условиям фильтрации
Для выборки информации из базы данных предназначен язык запросов, который в языке SQL представлен одним оператором select (табл.3).
Таблица 3. Язык запросов
Оператор Пояснение
select Выбирает строки; оператор, позволяющий сформировать результирующую
таблицу, соответствующую запросу
Кроме указанных категорий операторов, назначение которых не сложно представить, прочитав пояснения в таблицах, необходимо выделить еще две: операторы управления транзакциями (табл. 4) и средства администрирования данных (табл. 5).
Таблиц 4. Управление транзакциями
Оператор Пояснение
commit Завершить транзакцию- завершить обработку информации,
объединенную в транзакцию
rollback Откатить транзакцию- отменить изменения, проведенные в ходе выполнения
состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернуться
Таблица 5 . Администрирование данных
Оператор Пояснение
ALTER DATABASE Изменить набор основных объектов в базе данных, ограничений, касающихся
всей базы данных
ALTER DBAREA Изменить ранее созданную область хранения
ALTER PASSWORD Изменить пароль для всей базы данных
CREATE DATABASE Создать новую базу данных
CREATE DBAREA Создать новую область хранения и сделать ее доступной для размещения
DROP DATABASE Удалить существующую базу данных
DROP DBAREA Удалить существующую область хранения (если в ней на настоящий момент не
располагаются активные данные)
GRANT Предоставить права доступа на ряд действий над некоторым объектом БД
REVOKE Лишить прав доступа к некоторому объекту или некоторым действиям над
объектом
В коммерческих СУБД набор основных операторов расширен. В большинство СУБД включены операторы определения и удаления индекса запуска хранимых процедур и операторы определения триггеров.
Начинать знакомство с данным языком принято с рассмотрения возможностей языка запросов, который в языке SQL представлен одним оператором select, потому что этот мощный оператор, естественно, является и самым сложным. К тому же в дальнейшем интересно посмотреть, как его можно использовать совместно с операторами манипулирования данными.
Оператор выбора SELECT . Формирование запросов к базе данных
Назначение оператора selecт состоит в выборке и отображении данных одной или нескольких таблиц БД. Этот исключительно мощный, наиболее часто используемый оператор реализует все операции реляционной алгебры. Один и тот же запрос может быть реализован несколькими способами, которые могут существенно отличаться по времени исполнения.
Формат оператора select:
SELECT *|<список полей> FROM <список таблиц>
Указанный порядок следования фраз в операторе select не может быть изменен, но не все его части являются обязательными. К обязательным предложениям относятся только фразы select и from. Все остальные части оператора могут быть использованы по усмотрению программиста. Пояснение:
□ Фраза select :
Наличие ключевого слова all (по умолчанию) означает, что в результирующую таблицу включаются все строки, удовлетворяющие условиям запроса, что может привести к появлению в результирующей таблице одинаковых строк;
Ключевое слово distinct предназначено для приведения таблицы в соответствие с принципами теории отношений, где предполагается отсутствие дубликатов строк;
Символ "* " определяет очень часто встречаемую ситуацию, когда в результирующий набор включаются все столбцы из исходной таблицы запроса.
□ Во фразе from задается перечень исходных таблиц запроса.
□ Во фразе where определяются условия отбора строк результата или условия соединения строк исходных таблиц, подобно операции условного соединения в реляционной алгебре. В качестве условий отбора могут быть использованы следующие предикаты:
Сравнения "= , <>, >, <, >=, <=" - для сравнения результатов вычисления двух выражений; более сложные выражения строятся с помощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом используемых операторов и наличием скобок в выражении;
between А and В - предикат истинен, когда вычисленное значение выражения попадает в заданный диапазон (предикат not between a and В истинен тогда, когда сравниваемое значение не попадает в заданныйинтервал);
in - предикат истинен тогда, когда сравниваемое значение входит в множество заданных значений; при этом множество значений может быть задано простым перечислением или встроенным подзапросом (предикат not in истинен тогда, когда сравниваемое значение не входит в заданное множество);
like и not like - предикаты, смысл которых противоположен, требуют задания шаблона, с которым сравнивается заданное значение; предикат like истинен тогда, когда сравниваемое значение соответствует шаблону, и ложен в противном случае;
IS null - предикат, применяющийся для выявления равенства значения некоторого атрибута неопределенному значению:
<имя атрибута> IS null - принимает значение true, если в данной строке указанный атрибут имеет неопределенное значение и значение false, в противном случае;
<имя атрибута> IS NOT null - все происходит наоборот.
exist и not exist , используемые во встроенных подзапросах.
□ Во фразе group by задается список полей группировки.
□ Во фразе having задаются предикаты-условия, накладываемые на каждую группу.
□ Во фразе order by задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующей таблице.
В стандарте SQL определено понятие NULL-значения, которое вызвало необходимость применения трехзначной логики, где все логические операции выполняются в соответствии с приведенной ниже таблицей истинности (табл.6).
Таблица 6 . Таблица истинности
A AND B | ||||
Т RUE | ||||
1.1. Простые запросы
Запрос 1
Вывести сведения о кафедрах университета.
Данная задача сводится к выборке и выводу информации из одной таблицы, причем выводу подлежат все ее строки и все ее столбцы:
SELECT * FROM kafedra
Результатом выполнения такого запроса будет являться таблица, содержащая сведения обо всех кафедрах университета:
Kod kaf |
Name kaf |
Nom_telef |
Nom_Auditoria |
Col_sotr | |
Иванов Т.М. |
|||||
Общей математики |
Махов К Л. |
||||
Росс Л.Т. |
|||||
Фирсов С.С. |
|||||
Прикладной математики |
Ляхова И.Т. |
Запрос 2
Вывести номера телефонов кафедр университета.
Результат такого запроса должен содержать только два столбца: Name _ kaf и Nom _ telef , поэтому сам запрос должен выглядеть следующим образом:
SELECT Name_kaf, Nom_telef FROM kafedra
Результирующая таблица:
Name kaf Nomjelef
Физики 23-34-24
Общей математики 23-65-43
Истории 23-78-72
Графики 23-99-77
Прикладной математики 23-66-62
В сформированных выше запросах требовалось вывести все строки таблицы, указанной в предложении from. Если при выборке требуется ограничить количество выводимых строк в соответствии с каким-то условием, то этого можно достичь, используя в запросе предложение where. В предложение where можно включить одно или несколько условий отбора строк.
Запрос 3
Вывести сведения о кафедре графики.
SELECT * FROM kafedra WHERE Name_kaf = "Графики"
Ответ на такой запрос будет содержать только одну строку:
Kod.kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav_kaf
004 Графики 23-99-77 385 18 Фирсов C.C.
Запрос 4
Вывести сведения о кафедрах университета, находящихся на первом этаже, учитывая тот факт, что номера аудиторий первого этажа лежат в диапазоне от 1 до 99.
Запрос будет выглядеть следующим образом:
SELECT * FROM kafedra WHERE Nom_Auditoria BETWEEN 1 AND 99
Результат запроса:
Kodjcaf Name_kaf Norn lelef Norn Audit oria Coi_sotr Zavkaf
002 Общей мате- 23-65-43 003 22 Махов К.Л.
математики
В общем случае строки в результирующей таблице выводятся в неупорядоченном каким-либо образом состоянии. Просматривать и анализировать такой материал не всегда удобно. Для сортировки строк по какому-либо столбцу применяется фраза order by. Она включает список разделенных запятыми наименований столбцов, по которым требуется упорядочить выводимую информацию. Данная фраза должна всегда располагаться последней в операторе select и при ее наличии появляется возможность отсортировать строки по возрастанию (asc) или убыванию (desc) значений указанного столбца или комбинации указанных столбцов, независимо о" того, присутствуют эти столбцы в результирующей таблице или нет.
Запрос 5
Вывести сведения о кафедрах университета в виде, отсортированном т столбцу Name _ kaf в порядке возрастания.
Запрос будет выглядеть следующим образом:
SELECT * FROM kafedra ORDER BY Name_caf ASC
Результат данного запроса:
Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf
004 Графики 23-Э9-77 385 18 ФирсовС.С.
003 Истории 23-78-72 465 16 Росс Л.Т.
002 Общей ма- 23-65-43 003 22 Махов К.Л.
тематики
005 Прикладной 23-66-62 028 24 Ляхова И.Т.
математики
001 Физики 23-34-24 132 25 Иванов Т.М.
Часто для улучшения наглядности выводимую информацию полезно отсортировать по нескольким столбцам. Для этого имена столбцов сортировки необходимо перечислить через запятую во фразе order by. При этом выводимая таблица будет содержать строки, упорядоченные по первому указанному во фразе order by столбцу, а строки, имеющие равные значения в этом столбце, будут упорядочены по значениям второго столбца и т. д. слева направо.
Как уже говорилось, в 1970-х годах Эдгар Кодд предложил использовать реляционную модель. Помимо самой модели, он так же предложил язык для работы с данными в рамках этой модели, названный DSL/Alpha. Впоследствии, на основе DSL/Alpha появился язык SQUARE, а на его основе, в свою очередь, язык SEQUEL, который (ввиду некоторой путаницы в торговых марках) был переименован позже в SQL.
Здесь constraint_* может иметь следующие значения (или их комбинации):
- NOT NULL – не может быть “пустым”
- UNIQUE – значение уникально
- PRIMARY KEY – комбинация первых двух
- FOREIGN KEY – указание внешнего ключа
- CHECK – значение должно удовлетворять условию
- DEFAULT – значение по умолчанию
Присутствуют некоторые разночтения в разных реализациях.
Если первичный ключ состоит из нескольких столбцов, необходимо выносить его после объявления столбцов в виде
CONSTRAINT pk_table PRIMARY KEY (col1, col2, .. .)
где pk_table – уникальное название ограничения.
Во многих реализациях, часть CONSTRAINT pk_table можно опустить. В таком случае имя будет сгенерировано автоматически.
Внешний ключ в любом случае объявляется после объявления колонок.
Синтаксис:
CONSTRAINT fk_table FOREIGN KEY (col1, .. .) REFERENCES tbl_name (ref_col1, .. .) ON UPDATE upd_action ON DELETE del_action;
где fk_table – уникальное название ограничения, col1, ... – названия колонок данной таблицы, входящих во внешний ключ, tbl_name – таблица, для которой указанный внешний ключ является первичным, ref_col1, ... – названия соответствующих колонок в tbl_name . upd_action и del_action определяют, как БД реагирует на изменение и удаление записей из tbl_name , и могут принимать одно из значений:
- SET NULL – ссылающиеся колонки col1, ... устанавливается в NULL
- RESTRICT – если есть записи, ссылающиеся на обновляемое/удаляемое значение, обновление/удаление завершается ошибкой
- CASCADE – обновляет/удаляет все ссылающиеся записи
- NO ACTION – ничего не делать
Во многих реализациях, часть CONSTRAINT fk_table можно опустить. В таком случае имя будет сгенерировано автоматически.
SQL(StructuredQueryLanguage- «язык структурированных запросов») - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. ЯзыкSQLосновывается на реляционной алгебре и представляет собой совокупность операторов.
Существует 4 группы операторов. Рассмотрим группу операторов манипуляции данными (Data Manipulation Language, DML, SQL DML )
Выбор данных
Выбор данных представляет собой наиболее часто встречающуюся операцию, выполняемую с помощью SQL. Оператор SELECT - один из самых важных операторов этого языка, применяемый для выбора данных. Синтаксис этого оператора имеет следующий вид:
SELECT column FROM table
Операторы SELECTдолжны содержать словаSELECTиFROM; другие ключевые слова являются необязательными.
За ключевым словом SELECTследуют сведения о том, какие именно поля необходимо включить в результирующий набор данных. Звездочка (*) обозначает все поля таблицы, например:
Для выбора одной колонки применяется следующий синтаксис:
SELECT Company
Пример выбора нескольких колонок имеет вид:
SELECT Company , Phone, Mail
Для указания имен таблиц, из которых выбираются записи, применяется ключевое слово FROM, например:
SELECT * FROM Customers
Этот запрос возвратит все поля из таблицы Customers.
Для фильтрации результатов, возвращаемых оператором SELECT, можно использовать предложениеWHERE(необязательное)
SELECT * FROM Products WHERE Category = 4
В предложении WHEREможно использовать различные выражения,
WHERE expression1 [{AND | OR} expression2 …]
например:
SELECT * FROM Products WHERE Category = 2 AND Postavshik > 10
SELECT Name, Price FROM Products WHERE Category= 3 OR Price < 50
Можно использовать такие операторы:
< Меньше
<= Меньше или равно
<> Не равно
> Больше
>= Больше или равно
Предложение ORDER BY (необязательное) применяется для сортировки результирующего набора данных по одной или нескольким колонкам. Для определения порядка сортировки используются ключевые слова ASC (по возрастанию) или DESC (по убыванию). По умолчанию данные сортируются по возрастанию.
Модификация данных
Помимо извлечения данных язык SQL может быть использован для обновления и удаления данных, копирования записей в другие таблицы и выполнения других операций. Ниже мы рассмотрим операторы UPDATE, DELETE и INSERT, используемые для решения некоторых из этих задач.
Оператор UPDATE
Для изменения значений в одной или нескольких колонках таблицы применяется оператор UPDATE. Синтаксис этого оператора имеет вид:
UPDATE table SET column1 = expression1 WHERE criteria
Выражение в предложении SET может быть константой или результатом вычислений. Например, для повышения цен всех продуктов, стоящих меньше 10 долл., можно выполнить следующий запрос:
UPDATE Products SET Price = Price * 1.1 WHERE Price < 10
Оператор DELETE
Для удаления строк из таблиц следует использовать оператор DELETE, синтаксис которого имеет вид:
DELETE FROM table WHERE criteria
Удалить все продукты стоимость которых меньше 100:
DELETE FROM Products WHERE Price < 100
Оператор INSERT
Для добавления записей в таблицы следует использовать оператор INSERT, синтаксис которого имеет вид:
INSERT INTO table ( VALUES (expression [, …] )
Например, для добавления нового клиента в таблицу Customersможно использовать следующий запрос:
INSERT INTO Customers (CustomerID, CompanyName) VALUES (‘XYZ’, ‘XYZ Deli’)
В языке запросов SQL значительное место занимает оператор SELECT , так как с помощью него мы осуществляем выборку в базе данных. В данной статье мы рассмотрим основы этого, очень важного оператора языка SQL.
В Интернете множество всевозможных статей, книг, самоучителей по SQL, но все они сложны для человека, который никогда не слышал об SQL, а может и вообще о программировании и поэтому для него все эти источники тяжелы для изучения. Здесь я пытаюсь объяснить основу одного оператора, не вдаваясь в глубь (именно это затрудняет изучение, что сразу от основы переходят к сложным запросам ), поэтому сначала необходимо узнать основу, а потом переходить к более сложному, что и облегчает изучение языка SQL. Данная статья отлично подойдет для начинающих, которые хотят научиться писать простые запросы SQL на выборку данных.
Что такое язык SQL и оператор SELECT
SQL – это язык запросов, который служит для манипуляции (управления) данными в реляционных базах данных. Имеет широкую популярность и поэтому любой уважающий себя IT-к должен знать основы этого языка, так как базы данных есть практически в каждой компании.
SELECT – оператор языка SQL, относится к группе операторов манипуляции данными (Data Manipulation Language, DML ) и служит для выборки данных из базы данных.
Примечание! Для того чтобы изучать язык SQL и базы данных существуют специальные бесплатные редакции крупных СУБД, например в SQL Server от компании Microsoft есть редакция Express. Как установить данную СУБД можете почитать в материале — Описание установки Microsoft SQL Server 2016 Express .
Вот самый простой пример использования оператора SELECT.
SELECT * FROM Table
- * — показать все данные;
- FROM — из источника;
- Table — название источника (в нашем случае таблица ).
Но, на практике, зачастую нам нужны не все данные из таблицы, а иногда только некоторые колонки, для этого просто указываем вместо * название нужной колонки (или колонок ), например:
SELECT Price FROM Table
где, Price и есть название колонки.
Примечание! В качестве примера мы используем простую таблицу с перечислением моделей компьютеров, их ценой и названием.
Если Вам нужно указать несколько колонок, то просто перечисляйте их через запятую после оператора SELECT, например
SELECT price, name, model FROM Table
где, price, name, model это колонки из таблицы Table.
Условие выборки – оператор WHERE
В процессе выборке достаточно часто нам требуется отфильтровать данные по определенному условию, т.е. не все данные, а только те, которые соответствуют условию, в конструкции SELECT для этого можно использовать оператор WHERE .
SELECT price FROM Table WHERE price > 100
где, WHERE и есть условие, т.е. мы отображаем только те строки, которые соответствуют нашему условию (цена больше 100) .
Операторы сравнения в SQL
- «>» – больше чего-либо;
- «<» – меньше чего-нибудь;
- «=» – равно;
- «<>» – не равно;
- «>=» – больше или равно;
- «<=» – меньше или равно.
Также можно указывать в условии ключевое слово BETWEEN , т.е. попадает или не попадает значение в определенный промежуток, например
SELECT price FROM table WHERE price BETWEEN 400 AND 600
где, мы указываем, что цена должна быть в промежутке от 400 до 600.
Для проверки, входит ли значение проверяемого выражения в какой-то определенный набор значений, можно использовать предикат IN .
SELECT price FROM table WHERE price IN (400, 600)
В данном случае мы хотим получить только цену со стоимостью 400 и 600.
Если нам нужно получить только уникальные строки источника, можно указать ключевое слово DISTINCT , например
SELECT DISTINCT price FROM Table WHERE price > 100
Примечание! Язык SQL не чувствителен к регистру, запросы можно писать как в одну строку, так и разбивать их на несколько. Например, следующие два запроса абсолютно одинаковые.
SELECT price FROM Table
Select price From Table
Сортировка ORDER BY
Очень часто необходимо отсортировать результат запроса по определенному полю (колонке ). Для этого после запроса указываем конструкцию ORDER BY и те поля (можно несколько через запятую ), по которым необходимо выполнить сортировку.
SELECT price FROM Table ORDER BY price DESC
Этот пример сортировки по убыванию, но можно сортировать и по возрастанию, вместо DESC пишем ASC, но обычно так не пишут, так как сортировка по возрастанию является по умолчанию.
Агрегирующие функции в SQL
В SQL очень полезные так называемые агрегирующие функции, а именно:
- COUNT — количество значений в указанном столбце;
- SUM — сумма значений в указанном столбце;
- AVG — среднее значение в указанном столбце;
- MIN — минимальное значение в указанном столбце;
- MAX — максимальное значение в указанном столбце.
Например, нам нужно получить среднюю цену компьютера, максимальную и минимальную, для этого мы можем написать следующий запрос
SELECT AVG(price), MAX(price), MIN(price) FROM table
Группировка GROUP BY
Можно проводить группировку значений по колонкам, например, нам нужно узнать среднюю цену для каждой модели компьютера, в данном случае запрос будет вот таким
SELECT model, AVG (price) AS AVGPrice FROM table GROUP BY model
Если вы заметили, я здесь применил присвоение «псевдонима » для более удобного восприятия результатов этого запроса, т.е. после колонки пишите AS и название, которое Вы хотите, чтобы отображалась в результатах.
Также как и при использовании условий в отдельных колонках можно указывать и условие на целую группу, с помощью функции HAVING . Например, нам нужно определить максимальную цену компьютера, сгруппированную по моделям этих компов, но максимальная цена которых, меньше 500.
SELECT model, MAX(price) FROM table GROUP BY model HAVING MAX(price) < 500
В этом случае наш запрос выдаст нам сгруппированные по моделям компьютеры, максимальная цена которых, меньше 500.
Примечание! Подробней о группировке в SQL можете почитать вот в этом материале .
NULL значение в SQL
В SQL есть такое значение как NULL. На самом деле NULL это отсутствие значения (т.е. пусто ). Для того чтобы вывести все строки, в которых есть такое значение (например, у нас для какого-нибудь компьютера еще не назначена цена ) можно использовать следующее условие.
SELECT * FROM table WHERE price IS NULL
Что и будет означать поиск всех строк, в которых отсутствует значение для поля price.
Упрощенный синтаксис оператора SELECT
SELECT <Список полей> или * , ...] , ...]Заметка! Если Вас интересует язык T-SQL, то рекомендую почитать мою книгу «Путь программиста T-SQL », в ней я подробно, с большим количеством примеров, рассказываю про основы языка Transact-SQL специально для начинающих.
На сегодня пока все, мы рассмотрели с Вами небольшую часть языка SQL, а именно оператор SELECT. Удачи!