У стандарті ANSI/ISO визначений формат числових і строкових констант, або літералів, які представляють|уявляють| конкретні значення даних. Цей формат використовується в більшості реалізації SQL|.
Числові константи. Цілі і десяткові константи (відомі також під назвою точних числових літералів) в операторах SQL| представляються у вигляді звичайних|звичних|. десяткових чисел з|із| необов'язковим знаком плюс (+) або мінус (-) перед ними:
21 -3752000,00 +497500,8778
Константи з|із| плаваючою комою (відомі також під назвою приблизних числових літералів) визначаються за допомогою символу Е і мають такий же формат, як і в більшості мов|язиків| програмування. Нижче наведені приклади констант з|із| плаваючою комою:
1.5Е3 -3.14159Е1 2.5Е-7 0.783926Е21
Символ Е читається як "помножити на десять|десятеро| в мірі|ступені|", так що перша константа представляє|уявляє| число "1,5 помножити на десять|десятеро| в мірі|ступені| 3", або 1500.
Строкові константи. Відповідно до стандарту ANSI/ISO, строкові константи в SQL| мають бути поміщені|ув'язнені| в одинарні лапки, як показано в наступних|слідуючих| прикладах|зразках|:
Jones|, John| J.' 'New| York|' 'Western|'
Якщо необхідно включити в строкову константу одинарну лапку, замість неї слід написати дві одинарні лапки.
Константи дати і часу. У реляційних СУБД календарні дати, час і інтервали часу представляються у вигляді строкових констант. Формати цих констант в різних СУБД відрізняються один від одного. Крім того, способи запису часу і дати змінюються залежно від країни.
Символьні константи. Окрім|крім| призначених для користувача констант, в SQL| існують спеціальні символьні константи, що повертають значення, що зберігаються в самій СУБД.
До стандарту SQL2| увійшли найбільш корисні символьні константи з|із| різних реалізації SQL|, зокрема константи CURRENT_DATE|, CURRENT_TIME|, CURRENT_TIMESTAMP|, а також USER|, SESSION_USER| і SYSTEM_USER| (звернете увагу на знак підкреслення!).
Вирази в SQL| використовуються для виконання операцій над значеннями, ліченими|прочитаними| з|із| бази даних або використовуваними для пошуку в базі. даних. Наприклад, в наступному|слідуючому| запиті обчислюється|вичисляє| процентне|відсоткове| співвідношення об'єму|обсягу| і плану продажів для кожного офісу:
Відповідно до стандарту ANSI/ISO, у виразах можна використовувати чотири арифметичні операції: складання (X + Y), віднімання (X – Y), множення (X * Y) і ділення|поділка| (X / Y). Для формування складних виразів можна використовувати дужки.
Відсутні дані (значення NULL|). Оскільки база даних є моделлю реального світу, окремі елементи даних в ній неминуче будуть відсутні або личити|пасувати| не для всієї суті|єства|. Для вказівки на такі дані используеB|?ся спеціальна константа – NULL|.
Вбудовані функції
До стандарту SQL2| увійшли найбільш корисні функції з|із| різних реалізації SQL|. Ці функції перераховані в таблце|.
таблиця. 9.2 Вбудованих функцій SQL|.
Функція
Повертається
ВIT LENGTH(рядок)
кількість бітів в рядку
САSТ(значение AS тип даних)
значення, перетворене тип даних (наприклад, дата перетворена в рядок)
CHAR_LENGTH(рядок)
довжина рядка символів
CONVERT(рядок USING функція)
рядок, перетворений відповідно до вказаної функції
CURRENT_DATE
поточна дата
CURRENT_TIME(точність)
поточний час з вказаною точністю
CURRENT_IMESTAMP (точність)
поточна дата і час з вказаною точністю
EXTRACT(частина FROM значення)
вказана частина (DAY, HOUR і так далі) із значення типа DATETIME
LOWER(рядок)
рядок, перетворений до нижнього регістра
OCTETLENGTH(рядок)
число байтів в рядку символів
POSITION(перша строка IN другий рядок)
позиція, з якою починається входження першого рядка в другий рядок
SUBSTRING(рядок FROM n FOR довжина)
частина рядка, що починається з n-го символу і має вказану довжину
TRANSLATE(рядок USING функція)
рядок, перетворений за допомогою вказаної функції
TRIM(BOTH символ FROM рядок)
рядок, в якому видалені перші і останні вказані символи
TRIM(LEADING символ FROM рядок)
рядок, в якому видалені перші вказані символи
TRIM(TRAILING символ FROM рядок)
рядок, в якому видалені останні вказані символи
UPPER(рядок)
рядок, перетворений до верхнього регістра
Запити на читання даних. Оператор SELECT|
Оператор SELECT| застосовується для побудови|шикування| вибірок даних і має наступний|слідуючий| синтаксис:
У пропозиції|реченні| SELECT|, з якої починаються всі оператори SELECT|, необхідно вказати елементи даних, які будуть повернені в результаті|внаслідок| запиту Ці елементи задаються у вигляді списку повертаних стовпців, розділених комами Для кожного елементу з|із| цього списку в таблиці результатів запиту буде створений один стовпець Стовпці в таблиці результатів будуть розташовані|схильні| в тому ж порядку|ладі|, що і елементами списку повертаних стовпців Повертаний стовпець може бути:
1. ім'я стовпця, що ідентифікує один із стовпців, що містяться|утримуються| в таблицях, які перераховані в пропозиції|реченні| FROM| Коли як повертаний стовпець вказується|указує| ім'я стовпця таблиці бази даних SQL| просто бере значення цього стовпця для кожного з рядків таблицю і поміщає його у відповідний рядок таблиці результатів запиту;
2. константа, що показує, що в кожному рядку результатів запиту повинне міститися|утримуватися| одне і те ж значення
3. вираження|вираз|, що показує, що SQL| повинен обчислювати|вичисляти| значення, що поміщається в результати запиту, по формулі, визначеній у вираженні|виразі|.
Пропозиція|речення| FROM|
Пропозиція|речення| FROM| складається з ключового|джерельного| слова FROM|, за яким слідує|прямує| список специфікаторів таблиць, розділених комами Кожен специфікатор таблиці ідентифікує таблицю, що містить|утримує| дані, які прочитує запит Такі таблиці називаються вихідними|початковими| таблицями запиту (і оператора SELECT|), оскільки всі дані, що містяться|утримуються| в таблиці результатів запиту, беруться з|із| них.
Результатом SQL-запроса| на читання завжди є таблиця, що містить|утримує| дані і нічим що не відрізняється від таблиць бази даних
Окрім|крім| стовпців, значення яких прочитуються безпосередньо з|із| бази даних, SQL-запрос| на читання може містити|утримувати| обчислювані|вичисляти| стовпці, значення яких визначаються на підставі значень, що зберігаються в базі даних. Щоб|аби| отримати|одержувати| обчислюваний|вичисляти| стовпець, в списку повертаних стовпців необхідно вказати вираження|вираз|.
Інколи|іноді| потрібно отримати|одержувати| вміст всіх стовпців таблиці. На практиці така ситуація може виникнути, коли ви вперше|уперше| стикаєтеся з|із| новою базою даних і необхідно швидко отримати|одержувати| уявлення про її структуру і що зберігаються в ній даних. З врахуванням|з урахуванням| цього в SQL| дозволяється використовувати замість списку .возвращаемых стовпців символ зірочки (*), який означає, що потрібно прочитати всі стовпці:
Показати всі дані, що містяться|утримуються| в таблиці Students|.
SELECT| *
FROM| Students|
Рядки, що повторюються, з|із| таблиці результатів запиту можна видалити|віддаляти|, якщо в операторові SELECT| перед списком повертаних стовпців вказати ключове|джерельне| слово DISTINCT|.
Відбір рядків (пропозиція|речення| WHERE|)
SQL-запити|, що прочитують з|із| таблиці всі рядки, корисні при перегляді бази даних і створенні|створінні| звітів, проте|однак| рідко застосовуються для чого-небудь ще Зазвичай|звично| потрібно вибрати з|із| таблиці декілька рядків і включити в результати запиту лише|тільки| їх Щоб|аби| вказати, які рядки потрібно відібрати, слід використовувати пропозицію|речення| WHERE|.
Пропозиція|речення| WHERE| складається з ключового|джерельного| слова WHERE|, за яким слідує|прямує| умова пошуку, що визначає, які саме рядки потрібно прочитати.
Якщо умова пошуку має значення TRUE|, рядок буде включений в результати запиту.
Якщо умова пошуку має значення FALSE| або NULL|, то рядок виключається з|із| результатів запиту.