Загальний вигляд запиту 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!