Retrieving data using the sql select statement (отримання даних за допомогою команди select мови
List the capabilities of SQL SELECT statements
Оскільки оператор SELECT виробляє вибірку з таблиць БД, то потрібно знати як мінімум назва цієї таблиці, а так само представляти структуру таблиці. Таблиці складаються з колонок і рядків, а значить потрібно знати назву колонок, для того щоб вибрати потрібні рядки. Для того щоб дізнатися цю інформацію використовується оператор DESCRIBE.
DESC [RIBE]
Результатом виконання команди служить список колонок зазначеної таблиці з властивостями кожної (тип даних, максимальна довжина, можливість додавання порожнього значення і т. П.) Колонки.
Типи даних будуть окремо розглядатися пізніше.
Можливості SELECT по вибірці даних
Робота реляційної БД заснована на чіткому математичному апараті, на реляційної теорії і реляційної алгебри. Робота оператора SELECT базується на тій же реляційної математики. Головні принципи роботи оператора проектування (projection), вибірка (selection) і соедініни (joining).
- Проектування - оператор може вибрати все колонки з таблиці, а може тільки деякі, ті, що захоче бачити запускає команду.
- Вибірка - можливість вибирати не всі рядки, а тільки необхідні.
- Соедініни - можливість в запиті пов'язувати таблиці між собою.
Execute a basic SELECT statement
Найпростіший оператор SELECT:
SELECT, DISTINCT і FROM - ключові слова мови SQL. Вони не можуть бути використані в якості імен колонок таблиць і в якості назв об'єктів в БД.
Оператор SELECT завжди складається мінімум з двох обов'язкових виразів - обов'язково повинні бути присутніми SELECT і FROM.
Символ * означає, що потрібно вибрати всі колонки з таблиці (або таблиць). Він зручний для спрощення введення запитів, для того щоб не потрібно було перераховувати колонки. Однак, слід стежити за тим, щоб в обираних таблицях не було колонок з однаковими назвами. У разі дублювання назв колонок, запит завершиться помилкою.
Ключове слово DISTINCT говорить про те, що в результуючих рядках не повинно бути двох повторюваних.
Регістр написання SQL-команд не має значення. Однак, слід враховувати що строкові дані, що застосовуються при побудові запиту, вже будуть чутливі до регістру. Крім цього слід пам'ятати що метадані про різні об'єкти БД за замовчуванням зберігаються в верхньому регістрі у внутрішньому словнику, що не впливає на можливість використання в запитах їх написання в будь-якому регістрі.
Команди SQL розбиваються крапкою з комою або прямим слешем (; або /).
SQL вирази й оператори
SQL в основному призначений для вибірки рядків з таблиць. Але перед представленням результатів над даними можливо зробити перетворення. Залежно від типу колонки можна виконати такі дії:
- Числовий - арифметичні (+, -, /, *);
- Строковий - конкатенація;
- Дата і timestamp - додавання, віднімання.
Арифметичні оператори мають пріоритет виконання.
У разі якщо зустрічаються оператори з однаковим пріоритетом, черговість застосування операторів - справа наліво.
До колонці типу дата можна за допомогою операторів + і - додавати і віднімати числове значення. Результатом буде дата відстоїть на це кількість днів від дати, до якої застосовуємо вираз. Дві дати можна відняти один з одного - результатом буде кількість днів між цими датами. Складати дві дати не можна, тому що це не має сенсу, при спробі скласти дві дати Oracle видасть відповідну помилку.
Рядки можна конкатеніровать (складати) з рядками за допомогою оператора ||.
SELECT 'Name of employee is' || fullname
FROM emp
Name of employee is John Smith
Якщо необхідно щоб в результуючому рядку видався символ '(одинарна лапка) потрібно повторити її двічі' '(не подвійне лапки ", а саме дві поспіль одинарні лапки). Наприклад:
SELECT 'I''m oracloid' «2 Quotes» FROM DUAL;
2 Quotes
-------
I'm oracloid
Псевдоніми колонок (alias)
У запиті для колонок можна застосовувати псевдоніми. Ім'я користувача не повинен містити пробілів або повинен бути укладений в подвійні лапки.
SELECT (CREATION_DATE + 5) Creation Date
FROM emp
SELECT (CREATION_DATE + 5) Creation_Date
FROM emp
SELECT (CREATION_DATE + 5) «Creation Date»
FROM emp
Для того щоб можна було виконувати найпростіші операції за допомогою запитів SQL в Oracle існує допоміжна таблиця DUAL. Вона містить єдину колонку DUMMY і єдиний рядок зі значенням «X». В результаті стають можливими запити типу наведених вище. Наприклад якщо нам потрібно скласти два числа і вивести результат за допомогою команди SQL це можна зробити за допомогою такого запиту:
SELECT (14 + 5) Result FROM DUAL;
Result
-
19
Необхідно запам'ятати, що значення NULL в SQL не є нулем, прогалиною або ще якимось значенням. NULL це відсутність значення. Тому дії з NULL мають деяку специфіку.
Наприклад, арифметичні операції з NULL результатом матиме так само NULL якщо хоча б один доданок дорівнюватиме NULL. наприклад:
SELECT (2 + 3 + null) +3 «Result» FROM DUAL;
Result
---
тобто «Порожньо», «нічого».
Однак, конкатенація рядків з NULL не видасть порожнього значення, NULL просто заміниться порожнечею:
SELECT 'Str1' || null || 'Str2' «Result» FROM DUAL;
Result
----
Str1Str2
Оператор SELECT по суті наріжний камінь SQL. У цьому розділі ми розглянули базові властивості оператора. З трьох основних принципів (проектування, вибірка і з'єднання) ми торкнулися тільки один - проектування. Вибірку звичайно теж розглянули, але тільки в найзагальнішому сенсі, при вибірці ми вибирали все значення з таблиці, ми не накладали обмежень (не використали предикати WHERE).
Загалом розглянули найголовніше і примітивне. Далі буде складніше. І цікавіше.