Загальний вигляд запиту SELECT
Всі елементи запиту повинні бути представлені саме в такому порядку, у якому вони перераховані:
SELECT [STRAIGHTJOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT]
[SQL_BUFFER_RESULT]
[HIGHPRIORITY]
[DISTINCT | DISTINCTROW ALL]
шукані поля,.
[INTO {OUTFILE | DUMPFILE} 'filename' exportoptions]
[FROM список таблиць
[WHERE умовний вираз]
[GROUP BY список полів]
[HAVING умовний вираз]
[ORDER BY {натуральне число | назва поля | формула}
[ASC | DESC] ,...]
[LIMIT [відступ,] кількість_рядків]
[PROCEDURE назва процедури] ]
SELECT-запити служать для одержання даних з таблиць по заданих критеріях. Також запити SELECT можуть використовуватися для обчислень, наприклад:
SELECT 1 + 1; (виведе 2)
Шуканому виразу можна призначити псевдонім (alias). Цей псевдонім буде використовуватися в назві колонки в представленні результату й у розділах ORDER BY і HAVING:
SELECT 1 + 1 as псевдонім;
ORDER BY псевдонім
Також можна задавати псевдоніми для таблиць.
SELECT *
FROM table1 as a, table2 as b
WHERE a.fieldname = b.fieldname
Команда DROP.Команда DROP призначена для видалення таблиць з баз даних і самих баз даних.
Синтаксис команди DROP
Приклад використання команди DROP
Порівняння по шаблонах.В MySQL реалізовано стандартне для SQL порівняння по шаблонах. В SQL при порівнянні по шаблону символ `_' позначає будь-який одиничний символ, а `%' - визначену кількість символів (включаючи нуль символів). В MySQL і SQL-шаблонах по замовчуванню не враховується регістр символів. При роботі з шаблонами SQL використання операторів = або <> не допускається , замість цього використовуються оператори порівняння LIKE або NOT LIKE.
|
|
Знайти всі імена, що починаються з `b':
mysql> SELECT *
FROM А
WHERE name LIKE "b%";
Знайти всі імена, що закінчуються на `fy', можна так:
mysql> SELECT *
FROM А
WHERE name LIKE "%fy";
Знайти всі імена, що містять`w',:
mysql> SELECT *
FROM А
WHERE name LIKE "%w%";
Знайти всі імена, що містять п’ять символів, можна при допомозі шаблонного символу `_':
mysql> SELECT *
FROM А
WHERE name LIKE "_____";
В іншому типі шаблонів в MySQL, використовуються розширені регулярні вирази. При пошуку співпадінь на основі такого шаблону треба користуватися операторами REGEXP і NOT REGEXP (або їх синонімами - RLIKE і NOT RLIKE).
Нижче наведено характеристики розширених регулярних виразів:
- `.' позначає будь-який символ.
- Клас символів `[...]' позначає будь-який з символів в дужках. Наприклад, `[abc]' позначає `a', `b' або `c'. Набір символів можна позначити з допомогою риски. `[a-z]' позначає будь-яку букву нижнього регістру, а `[0-9]' - будь-яку цифру.
- `*' позначає нуль або більше екземплярів символу, що стоїть перед ним. Наприклад, `x*' позначає будь-яку кількість символів `x', `[0-9]*' позначає будь-яку кількість цифр, а `.*' - будь-яку кількість любих символів.
- Для шаблона видається співпадіння, якщо пошуковий контекст виявлений в будь-який з частин значення, в якому проводиться пошук (для шаблонів SQL співпадіння видається тільки в випадку, якщо співпадають всі значення).
|
|
- ``Закріпити'' шаблон так, щоб перевіряти співпадіння з початком або кінцем значення можна з допомогою символів `^' (початок) або `$' (кінець), які розміщується в початку або в конці шаблоні відповідно.
Знайти всі імена, що починаються з `b', можна при допомозі символу `^', прив’язавши шаблон до початку імені:
mysql> SELECT *
FROM А
WHERE name REGEXP "^b";
Для пошуку символів `b' верхнього або нижнього регістра є запит:
mysql> SELECT *
FROM А
WHERE name REGEXP "^[bB]";
Для врахування регістра символів можна використати ключове слова BINARY. В цьому запиті позитивний результат пошуку буде тільки при виявленні символу 'b' нижнього регістра в початку імені:
mysql> SELECT * FROM А WHERE name REGEXP BINARY "^b";
Знайти всі імена, що закінчуються на `fy', можна при допомозі символу `$', прив’язавши шаблон до кінця імені:
mysql> SELECT * FROM А WHERE name REGEXP "fy$";
Знайти всі імена, що містять символ `w' будь-якого регістра, можна так:
mysql> SELECT * FROM А WHERE name REGEXP "w";
Знайти всі імена, що містять п’ять символів, можна, якщо прив’язати пошук до початку і кінця імені з допомогою символів `^' і `$' і поставить п’ять символів `.' між ними:
|
|
mysql> SELECT * FROM А WHERE name REGEXP "^.....$";
Попередній запит можна записати і при допомозі оператора `{n}' (``повторити-n-раз''):
mysql> SELECT * FROM А WHERE name REGEXP "^.{5}$";
Питання вхідного контролю
1 Які цілочисельні типи в MySQL ви знаєте?
2 Які типи з плаваючою крапкою ви знаєте в MySQL?
3 Вкажіть основні типи дати/часу та формат їх запису в MySQL.
4 Які стрічкові типи даних ви знаєте в MySQL?
5 Який загальний вигляд запиту SELECT?
Постановка завдання
Створити базу даних Успішність з чотирьох таблиць: Група, Студенти, Дисципліни, Оцінки
Створити таблицю Група з вказаними властивостями полів.
Кодгрупи | НаваГрупи | ЧислоСтудентів | Куратор |
Числовий | Текстовий, 5 | Числовий | Текстовий, 30 |
Створити таблицю Студенти з вказаними властивостями полів.
КодСтудента | Прізвище | Імя | ДатаНар |
Числовий | Текстовий, 15 | Текстовий, 10 | Дата/час |
Створити таблицю Дисципліна з вказаними властивостями полів.
КодДисципліни | НазваДисципліни | ПрізВикладача | ІмяПобатькові |
Числовий | Текстовий, 10 | Текстовий, 15 | Текстовий, 20 |
Створити таблицю Оцінка з вказаними властивостями полів.
|
|
Дата добавления: 2018-05-13; просмотров: 210; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!