Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Загальний вигляд запиту 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

Параметр LIMIT Оскільки в таблиці student багато записів, використовується обмеження LIMIT, за допомогою якого можна задавати кількість рядків результату запиту, які повинні бути виведені. На місці інформація, що запрошується, вказаний символ " *". Цей символ означає " всі поля". Якщо нам потрібно вивести лише деякі поля, то їх треба перерахувати.

Стовпці, що обчислюються. Уфразі SELECT можна сформувати новий стовпець. У ньому записуватимуться результати обчислення виразу, в якому використовуються значення з інших стовпців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку частку становить фонд кафедри від загального фонду факультету.

SELECT d.Назва, d.Фонд, (d.Фонд / f.Фонд) * 100

FROM ФАКУЛЬТЕТ f, КАФЕДРА d

WHERE f.F = d.F AND F.Назва = " інформатики"

 

 

Вибір потрібних записів. Особливість реляційних СУБД полягає у тому, що вони надають множинно-орієнтовану мову маніпулювання базами даних, тобто результатом дії мовного оператора є таблиця, яка містить множину даних. Мова SQL дозволяє відобразити тільки ті записи таблиці, що задовольняють певну умову. Щоб виконати фільтрацію записів слід задати критерій вибору.

Основні конструкції мови, призначені для вибирання даних. Основна конструкція, призначена у мові SQL для вибирання даних, складається з фраз SELECT і FROM. Фраза FROM вказує, з якої таблиці потрібно вибрати дані, а фраза SELECT - які саме атрибути (стовпці) з цієї таблиці мають бути вибрані. Запит

SELECT Назва поля

FROM Назва таблиці

 

здійснює виведення значень поля з вказаної таблиці. Ці дві фрази обов'язково мають бути в будь-якому запиті.

Запити на вибірку даних не змінюють дані в базі, а лише вибирають їх з таблиць за певними умовами. Результатом виконання будь-якого вибіркового запиту є віртуальна таблиця, що існує нетривалий час.

Для вибирання потрібних записів необхідно задати умови їх вибирання. Для цього використовується фраза WHERE. У ній зазначено, якій умові мають відповідати дані, що підлягають вибору. Алгоритм обробки запиту з фразою WHERE є таким:

- вибрати рядки із таблиці;

- перевірити його відповідність вказаній умові;

- якщо рядок відповідає умові, то вивести значення стовпців, вказаних у фразі SELECT.

Вибірковий SQL-запит має такий формат:

 

SELECT список полів, значення яких треба отримати

FROM список таблиць, з яких вибираються дані

WHERE умова, яку мають задовольняти записи, що вибираються

Вирази, які починаються з ключових слів, прийнято називати фразами. Наприклад, фраза SELECT. Регістр ключових слів значення не має, але їх прийнято писати великими буквами.

Даний запит виводить список прізвищ усіх професорів вузу:

 

SELECT Прізвище

FROM ВИКЛАДАЧ

WHERE Посада = " професор"

 

Умова вибирання записів. У мові SQL існує багато різновидів виразів, у яких використовуються дані різних типів — рядки, числа, логічні значення. Умова — це вираз, що повертає логічне значення – 1 (TRUE) або 0 (FALSE). Умовні вирази обов'язково використовуються у фразі WHERE, а також можуть застосовуватися в інших фразах, наприклад SELECT. Прикладом умовного виразу є конструкція Посада = < професор> в попередньому заптсі.

Оператори — це конструкції, що використовуються у виразах для означення певних дій над даними. Є кілька типів операторів:

- Оператори порівняння арифметичних виразів (табл. 1);

- Логічні оператори (табл. 2);

- Оператори порівняння рядків.

Складні умови вибирання рядків. З таблиці можна вибрати тільки потрібні рядки. В умовах можуть вказуватися будь-який з стовпців або сукупність стовпців. Умови можна і комбінувати. Для цього використовуються логічні оператори AND і OR. Оператори AND і OR можна використати разом. За допомогою дужок можна вказати порядок групування умов. Приклад запиту з використанням складних умов:

 

SELECT * FROM name_table

WHERE (col1= " aaa" AND col2 = " bbb") OR (col3 = " ccc" AND col4 = " ddd");

Підрахунок кількості записів. Процедура підрахунку кількості появи даних певного типу ідентична підрахунку кількості рядків в таблиці, так як на кожне дане є по одному запису. Для цього використовується функція COUNT(), аргументом якої є знак “ * ”. Вона підраховує кількість непустих результатів, і з її допомогою можна написати запит для визначення кількості записів в таблиці:

 

mysql> SELECT COUNT(*) FROM t_name;

 

 

Підрахунок кількості записів за заданим критерієм. Для підрахунку потрібних записів необхідно задати умови їх вибирання. Для цього використовується фраза WHERE. У ній зазначено, якій умові мають відповідати дані, що підлягають обліку. Алгоритм обробки запиту з фразою WHERE є таким:

- вибрати рядки із таблиці;

- перевірити їх відповідність вказаній умові;

- якщо умова виконується, то його додати до підрахунку рядків.

Вибірковий SQL-запит має такий формат:

 

SELECT COUNT(*)

FROM список таблиць, з яких вибираються дані

WHERE умова, яку мають задовольняти записи, що вибираються

 

При допомозі функції COUNT() можна підраховувати записи з таблиці, поля яких задовольняють певним умовам:

 

 

Команди COUNT() і GROUP BY допомагають характеризувати дані різними способами. Наступний запит підраховує кількість різних імен в полі d1.

Формат команди для підрахунку згрупованих даних:

SELECT ім’я поля, по якому групуються дані [інші поля], COUNT(*)

FROM список таблиць, з яких вибираються дані

WHERE умова, яку мають задовольняти записи, що вибираються

GROUP BY ім’я поля, по якому групуються дані

 

При використанні функції COUNT() зовсім не обов’язково завантажувати

Уточнення імен полів. У фразах SELECT і WHERE імена стовпців можна уточнювати іменами таблиць. Якщо в поєднуваних таблицях є стовпці, що мають однакові імена, то посилаючись на такий стовпець у запиті, його ім'я потрібно уточнювати іменем таблиці.

SELECT Група.Код_групи, Назва_Групи, Оцінки.Код_групи,

FROM ГРУПА, Оцінки;

 

Стовпці, що обчислюються. У фразі SELECT можна сформувати новий стовпець. У ньому записуватимуться результати обчислення виразу, в якому використовуються значення з інших стовпців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку частку становить фонд кафедри від загального фонду факультету.

 

SELECT d.Назва, d.Фонд, (d.Фонд / f.Фонд) * 100

FROM ФАКУЛЬТЕТ f, КАФЕДРА d

WHERE f.F = d.F AND F.Назва = " інформатики"

 

Псевдоніми для стовпців. Псевдоніми використовуються для перевизначення імен стовпців. Псевдоніми для імен стовпців і таблиць задаються за допомогою ключового слова AS. В операторі SELECT можна перейменувати стовпці (тобто задати їх псевдонім) або перевизначити ім'я виразів, що містять рядки. В результаті в виводі оператора буде показане нове ім'я (псевдонім).

Наприклад, можна ввести наступний запит:

 

SELECT NAME AS P_NAME

FROM t_name;

 

Cтовпцю name призначено нове ім'я P_ NAME тільки для цього запиту. Результат виконання цього запиту для таблиці t_name буде наступним:

 

P_NAME
Значення полів NAME

 

У результатах виводу вмістиме стовпця name показано в списку під заголовком P_NAME, що є псевдонімом.

Оцінити переваги використання псевдонімів можна тоді, коли створювати складні запити й запити, у яких застосовуються обчислення.

Псевдоніми для таблиць. Псевдоніми можна також використовувати для таблиць:

 

SELECT t_name_new.NAME

FROM t_name AS t_name_new;

 

Результат виконання цього запиту буде аналогічний результату виконання запиту без псевдонімів.

Посилання на таблицю можна замінити псевдонімом, використовуючи tbl_name [AS] alias_name:

 

mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2

WHERE t1.name = t2.name;

 

mysql> SELECT t1.name, t2.salary FROM employee t1, info t2

WHERE t1.name = t2.name;

 

В виразах ORDER BY і GROUP BY для посилання на стовпці, вибрані для виводу інформації, можна використати або імена стовпців, або їх псевдоніми, або їх позиції (місцеположення). Нумерація позицій стовпців починається с 1:

 

mysql> SELECT college, region, seed FROM tournament

ORDER BY region, seed;

 

mysql> SELECT college, region AS r, seed AS s FROM tournament

ORDER BY r, s;

 

mysql> SELECT college, region, seed FROM tournament

ORDER BY 2, 3;

 

Використання псевдонімів. Псевдоніми можна використати для посилання на стовпець в GROUP BY, ORDER BY або в частині HAVING, а також для іменування стовпців новою назвою:

 

SELECT SQRT(a*b) as rt FROM t_name GROUP BY rt HAVING rt > 0;

SELECT id, COUNT(*) AS cnt FROM t_name GROUP BY id HAVING cnt > 0;

SELECT id AS " Customer iden" FROM t_name;

 

Використовуючи ключове слово AS, виразу в SELECT можна присвоїти псевдонім. Псевдонім використовується в ролі імені стовпця в даному виразі і може використовуватися в ORDER BY або HAVING. Наприклад:

 

SELECT CONCAT(last_name, ', ', first_name) AS full_name

FROM mytable ORDER BY full_name;






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.