Мова SQL допускає три типи синтаксичних конструкцій, що починаються з ключового слова SELECT:
Синтаксис команди SELECT в MySQL
Синтаксис команди SELECT в Oracle
Основні ключові слова і параметри команди SELECT в MySQL
- DISTINCT - повертає тільки одне значення для кожного набору однакових обраних значень стовпця
- ALL - повертає всі вибрані рядки, включаючи всі повторювані значення стовпців (приймається за замовчуванням)
- * - вибирає всі стовпці з усіх таблиць або уявлень, перерахованих після оператора FROM
- schema - ідентифікатор повноважень, зазвичай збігається з ім'ям деякого користувача
- table. * view. * - вибирає всі стовпці з зазначеної таблиці, уявлення
- Expr - витягує з таблиці (подання) деякий визначається вираз
- table view - ім'я таблиці (подання), з якої відбувається вибірка даних.
- subquery - підзапит, який сервер обробляє тим же самим способом як уявлення.
- WHERE - обмежує безліч рядків вибіркою тих записів, для яких умова є істинним; якщо ця пропозиція опускається, сервер повертає всі рядки з таблиць.
- GROUP BY - групує вибрані рядки по групах рядків з однаковим значенням зазначених полів і повертає одиночну рядок підсумкової інформації для кожної групи.
- HAVING - обмежує обрані групи рядків такими групами, для яких визначається умова є істинним; якщо ця пропозиція опускається, сервер повертає рядки всіх груп.
- UNION UNION ALL INTERSECT MINUS - об'єднує рядки, повернуті двома твердженнями SELECT з використанням операції перетину множин; для посилання на стовпець вводиться псевдонім для його позначення; пропозиція FOR UPDATE не може використовуватися з цими операторами
- ORDER BY - впорядковує рядки, повернуті запитом.
- Expr - значення виразу визначає правило упорядкування рядків.
- ASC DESC - визначає порядок виведення даних (по зростанню або по спадаючій); значенням за замовчуванням є ASC.
- FOR UPDATE - блокує вибрані рядки.
- OF - блокує обрані рядки для специфічної таблиці в об'єднанні.
- NOWAIT - повертає управління користувачеві, якщо команда SELECT намагається блокувати рядок, яка вже блокована іншим користувачем; якщо ця пропозиція опускається, сервер чекає, поки рядок не стане доступною і тільки тоді повертає результати команди SELECT.
Синтаксис команди SELECT в Oracle
Синтаксис команди SELECT в Oracle
Query table expression clause
For update clause
Основні ключові слова і параметри команди SELECT в Oracle
- DISTINCT - повертає тільки одне значення для кожного набору однакових обраних значень стовпця.
- ALL - повертає всі вибрані рядки в Oracle. включаючи всі повторювані значення стовпців (приймається за замовчуванням).
- * - вибирає всі стовпці з усіх таблиць або уявлень, перерахованих після розділу FROM.
- schema - ідентифікатор повноважень, зазвичай збігається з ім'ям деякого користувача.
- table. * view. * - вибирає всі стовпці з зазначеної таблиці Oracle. уявлення.
- Expr - витягує з таблиці (подання) деякий визначається вираз.
- table view - ім'я таблиці (подання), з якої відбувається вибірка даних.
- c_alias - аліасное ім'я (псевдонім) витягується стовпчика, вирази.
- t_alias - аліасное ім'я (псевдонім) таблиці Oracle.
- subquery - підзапит, який сервер обробляє тим же самим способом як уявлення.
- WHERE - обмежує безліч рядків вибіркою тих записів, для яких умова є істинним; якщо ця пропозиція опускається, сервер повертає всі рядки з таблиць Oracle.
- GROUP BY - групує вибрані рядки по групах рядків з однаковим значенням зазначених полів і повертає одиночну рядок підсумкової інформації для кожної групи.
- HAVING - обмежує обрані групи рядків такими групами, для яких визначається умова є істинним; якщо ця пропозиція опускається, сервер повертає рядки всіх груп.
- UNION [ALL] INTERSECT MINUS - об'єднує рядки, повернуті двома твердженнями SELECT з використанням операції перетину множин; для посилання на стовпець вводиться псевдонім для його позначення. Пропозиція FOR UPDATE не може використовуватися з цими операторами.
- ORDER BY - впорядковує рядки, повернуті запитом: в Expr - вказується значення виразу, яке визначає правило упорядкування рядків по зростанню ASC або зменшенням DESC. Заводський параметр ASC.
- PARTITION - на відміну від ORDER BY дозволяє частково впорядковувати набір даних.
- FOR UPDATE - блокує вибрані рядки.
- NOWAIT - повертає управління користувачеві, якщо команда SELECT намагається блокувати рядок, яка вже блокована іншим користувачем; якщо ця пропозиція опускається, сервер чекає, поки рядок не стане доступною і тільки тоді повертає результати команди SELECT.
Опис команди SELECT
Основою всіх синтаксичних конструкцій, що починаються з ключового слова SELECT. є синтаксична конструкція "табличне вираження".
Семантика табличного вираження полягає в тому, що на основі послідовного застосування розділів FROM. WHERE. GROUP BY і HAVING із заданих в розділі FROM таблиць будується деяка нова результуюча таблиця, порядок проходження рядків якої не визначений і серед рядків якої можуть перебувати дублікати (тобто в загальному випадку таблиця-результат табличного вираження є мультімножество рядків).
Найбільш загальною є конструкція "специфікація курсора". Курсор - це поняття мови SQL. що дозволяє за допомогою набору спеціальних операторів отримати порядковий доступ до результату запиту до БД. До табличних виразів, які беруть участь в специфікації курсору, не пред'являються будь-які обмеження. При визначенні специфікації курсору використовуються три додаткових конструкції: специфікація запиту, вираз запитів і розділ ORDER BY.
У специфікації запиту задається список вибірки (список арифметичних виразів над значеннями стовпців результату табличного вираження і констант). В результаті застосування списку вибірки до результату табличного вираження виробляється побудова нової таблиці, що містить стільки ж побільшало рядків, але взагалі кажучи інше число стовпців, що містять результати обчислення відповідних арифметичних виразів зі списку вибірки.
Вираз запитів - це вираз, що будується за вказаними синтаксичним правилам на основі специфікацій запитів. Єдиною операцією, яку дозволяється використовувати у виразах запитів, є операція UNION (об'єднання таблиць) з можливою різновидом UNION ALL.
Оператор вибірки - це окремий оператор мови SQL. дозволяє отримати результат запиту в прикладній програмі без залучення курсора. Тому оператор вибірки має синтаксис, що відрізняється від синтаксису специфікації курсору, і при його виконанні виникають обмеження на результат табличного вираження. Фактично, і то, і інше диктується специфікою оператора вибірки як одиночного оператора SQL. при його виконанні результат повинен бути поміщений в змінні прикладної програми. Тому в операторі з'являється розділ INTO. що містить список змінних прикладної програми, і виникає то обмеження, що результуюча таблиця повинна містити не більше одного рядка.
У діалекті SQL СУБДOracle підтримується розширений варіант оператора вибірки, результатом якого не обов'язково є таблиця з одного рядка. Таке розширення не підтримуються ні в SQL / 89. ні в SQL / 92.
Підзапит - запит. який може входити в предикат умови вибірки оператора SQL.
До речі, цю статтю Ви можете знайти в інтернеті за запитами:
Команда SELECT. Синтаксис команди SELECT. Опис команди SELECT.