русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Синтаксис оператора SELECT


Дата добавления: 2015-07-09; просмотров: 1084; Нарушение авторских прав


Рассмотрим упрощенный синтаксис этого оператора.

SELECT [ALL | DISTINCT] <список выбора>

FROM <ссылка на таблицу> [, <ссылка на таблицу>]...

[WHERE <условия поиска>]

[GROUP BY <список столбцов> [HAVING <условия поиска>]]

[ORDER BY <список упорядочения>];

Разберем предложения оператора.

SELECT [ALL | DISTINCT]

<список выбора> — список выбираемых столбцов, констант, функций или выражений, разделенных запятыми.

Необязательное ключевое слово ALL означает, что выбираются все строки, соответствующие условию поиска. Это значение по умолчанию, и обычно в операторе не указывается. Ключевое слово DISTINCT указывает, что в выходной набор данных попадут лишь отличающиеся строки, дубликаты будут отбрасываться.

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

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

<имя таблицы>.<имя столбца>

или

<псевдоним таблицы>.<имя столбца>

Уточненные имена столбцов обязательно должны присутствовать в операторах SELECT, где присутствует несколько таблиц, это позволит избежать двусмысленности при обращении к столбцам с одинаковым именем из разных таблиц. Такая ситуация может возникнуть при выполнении соединений таблиц.

При задании имени столбца из таблицы, константы или любого выражения можно после ключевого слова AS указать текст, который будет помещаться в заголовок отображаемой таблицы. Такой текст называется псевдонимом или алиасом столбца. Если псевдоним содержит пробелы, специальные символы или буквы кириллицы, то этот текст нужно заключить в двойные кавычки. Например:



SELECT CITY.CT_NAME AS "Город", AIRPORT.AP_NAME AS "Аэропорт"

FROM AIRPORT INNER JOIN CITY

ON AIRPORT.AP_CT_CODE = CITY.CT_CODE

WHERE CITY.CT_NAME = 'Москва'

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

ВНИМАНИЕ!

Не путайте описанные таким образом псевдонимы столбцов с псевдонимами таблиц (см. дальше). Если псевдонимы таблиц можно использовать в операторе, где они определены, для уточнения ссылок на столбцы, то с псевдонимами столбцов дело обстоит несколько сложнее. В разных версиях разных серверов баз данных их можно использовать по-разному.

Чуть позже мы рассмотрим некоторые варианты.

FROM <ссылка на таблицу> задает список имен таблиц, в которых осуществляется поиск. Здесь же можно указывать соединения (JOIN) таблиц, представления (см. в конце этой главы).

Необязательное предложение WHERE <условия поиска> определяет условия поиска строк в таблицах. На самом деле это предложение не является таким уж необязательным. Если таблица в базе данных содержит тысячи строк, то, во-первых, вам вряд ли понадобится за один раз такое количество записей, поскольку просмотреть их вы просто физически не сможете, а во-вторых, выборка больших объемов данных на сервере приводит к увеличению сетевого трафика и перегрузке сети.

Необязательное предложение GROUP BY <имя столбца> группирует найденные строки в соответствии со значением указанного столбца.

Необязательное предложение HAVING <условия поиска> определяет дополнительные условия поиска для использования в GROUP BY.

Необязательное предложение ORDER BY <список имен> позволяет упорядочить найденные строки, указывая список имен столбцов (здесь опять же можно использовать уточненные имена в виде <имя таблицы>.<имя столбца>), а также направление сортировки для каждого столбца — ключевые слова ASCENDING (по возрастанию) или DESCENDING (по убыванию).

Для разъяснения содержания запроса в любом месте может быть размещен комментарий - произвольный текст ограниченный парой символов, спереди / *, сзади */ (так же как в языке С).

Синтаксис:

/ * т е к с т . . .*/

Текст комментария может занимать несколько строк.

Многие СУБД допускают удобный способ комментирования при помощи пары символов ‘--’, текст от этой пары до конца строки будет считаться комментарием.

Простые варианты поиска данных

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

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

В самом простом варианте оператора SELECT можно указать вместо списка отображаемых столбцов символ *, например:[1]

SELECT * FROM PERSON

Этот оператор возвращает все столбцы всех строк таблицы PERSON

Листинг 1. Выбор всех столбцов всех строк таблицы людей

PR_CODE PR_NAME PR_NAME2 PR_NAME3 PR_BIRTHDAY
Зеленина Надежда Александровна 11.12.1965
Бычкова Марина Валентиновна 01.04.1957
Мельчакова Оксана Владимировна 06.07.1978
Бычков Максим Владимирович 08.09.1970
Попутько Павел Павлович 05.05.1959
Лебедев Александр Анатольевич 03.04.1977
Варанкина Елена Алевтиновна 01.02.1952
Лядов Олег Владимирович 07.06.1964
Вашкарина Лариса Вилльевна 05.11.1980
Верхоланцева Анна Николаевна 06.10.1991
Алексеев Юлий Альбертович 19.09.1974

Следует исключить из списка коды личностей, которые обычному человеку ничего не говорят. Выполним оператор в следующем виде:[2]

SELECT PR_NAME, PR_NAME2,PR_NAME3,PR_BIRTHDAY

FROM PERSON

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

Заголовки нам с вами, как проектировщикам таблиц нашей базы данных, понятны. Однако другим людям следует долго объяснять, что это такое. Лучше сразу сформировать заголовки на русском языке. Выполните:[3]

SELECT PR_NAME2 AS"Имя",

PR_NAME3 AS"Отчество",

PR_NAMEAS"Фамилия",

PR_BIRTHDAYAS"Дата рождения"

FROM PERSON

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

Листинг 2. Добавление осмысленных заголовков

Имя Отчество Фамилия Дата рождения
Надежда Александровна Зеленина 11.12.1965
Марина Валентиновна Бычкова 01.04.1957
Оксана Владимировна Мельчакова 06.07.1978
Максим Владимирович Бычков 08.09.1970
Павел Павлович Попутько 05.05.1959
Александр Анатольевич Лебедев 03.04.1977
Елена Алевтиновна Варанкина 01.02.1952
Олег Владимирович Лядов 07.06.1964
Лариса Вилльевна Вашкарина 05.11.1980
Анна Николаевна Верхоланцева 06.10.1991
Юлий Альбертович Алексеев 19.09.1974

 

 



<== предыдущая лекция | следующая лекция ==>
Тестовая база данных | ЗАМЕЧАНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.286 сек.