Слайд 2Основы SQL: MySQL
Будем использовать MySQL
СУБД с открытым кодом
Бесплатная версия (Community Edition) –
![Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-1.jpg)
на www.mysql.com
Слайд 3Основы SQL: языки запросов
Операции:
над множествами (объединение, пересечение, разность, деление, декартово произведение) над
![Основы SQL: языки запросов Операции: над множествами (объединение, пересечение, разность, деление, декартово произведение) над отношениями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-2.jpg)
отношениями
Слайд 4Основы SQL: языки запросов
В реляционных СУБД – две группы языков:
реляционная алгебра (операнды
![Основы SQL: языки запросов В реляционных СУБД – две группы языков: реляционная](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-3.jpg)
и результаты – отношения)
реляционное исчисление (декларативные языки – запросы)
Слайд 5Основы SQL: SQL?
Structured Query Language — язык структурированных запросов
Информационно-логический язык, а не
![Основы SQL: SQL? Structured Query Language — язык структурированных запросов Информационно-логический язык,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-4.jpg)
язык программирования!
Для создания, модификации и управления данными в РБД.
Слайд 6Основы SQL: синтаксис
Операторы состоят из:
имен операций и функций;
имен таблиц и
![Основы SQL: синтаксис Операторы состоят из: имен операций и функций; имен таблиц](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-5.jpg)
их столбцов;
зарезервированных ключевых слов и специальных символов;
логических, арифметических и строковых выражений.
Слайд 7Основы SQL: синтаксис
Общий вид простого оператора:
ГЛАГОЛ параметры;
Пример:
SELECT `id` FROM `mytable`;
![Основы SQL: синтаксис Общий вид простого оператора: ГЛАГОЛ параметры; Пример: SELECT `id` FROM `mytable`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-6.jpg)
Слайд 8Основы SQL: синтаксис
Выражения не зависят от регистра, не требуют наличия кавычек...
«Правильный» стиль:
INSERT
![Основы SQL: синтаксис Выражения не зависят от регистра, не требуют наличия кавычек...](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-7.jpg)
INTO `news` (`id`,`post_date`) VALUES (42, '2008-06-01 04:13:15');
Слайд 9Основы SQL: синтаксис
Комментарии:
-- Структура таблицы
/*
Версия сервера: 5.0.54
Версия PHP: 5.2.6RC1-pl1
![Основы SQL: синтаксис Комментарии: -- Структура таблицы /* Версия сервера: 5.0.54 Версия PHP: 5.2.6RC1-pl1 */](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-8.jpg)
*/
Слайд 10Основы SQL: типы данных
Целые числа:
TINYINT — 1 байт, -128..127 (0..255);
SMALLINT — 2
![Основы SQL: типы данных Целые числа: TINYINT — 1 байт, -128..127 (0..255);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-9.jpg)
байта, -32768..32767;
MEDIUMINT — 3 байта;
INT — 4 байта;
BIGINT — 8 байт.
Слайд 11Основы SQL: типы данных
Дробные числа:
FLOAT (4 байта);
DOUBLE (8 байт).
![Основы SQL: типы данных Дробные числа: FLOAT (4 байта); DOUBLE (8 байт).](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-10.jpg)
Слайд 12Основы SQL: типы данных
Строки:
CHAR — дополняет до «ширины»;
VARCHAR — использует
![Основы SQL: типы данных Строки: CHAR — дополняет до «ширины»; VARCHAR —](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-11.jpg)
минимум;
(TINY|MEDIUM|LONG)BLOB — бинарные данные;
TEXT — текстовые данные;
ENUM — одно из значений;
SET — ноль или более значений.
Слайд 13Основы SQL: типы данных
Другие:
BOOL, BOOLEAN;
SERIAL — BIGINT UNSIGNED NOT NULL
![Основы SQL: типы данных Другие: BOOL, BOOLEAN; SERIAL — BIGINT UNSIGNED NOT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-12.jpg)
AUTO_INCREMENT UNIQUE;
DATETIME, DATE, TIMESTAMP, TIME, YEAR.
Слайд 14Основы SQL: команды
Базы данных: создание
CREATE DATABASE `db_name`;
* MySQL позволяет создавать БД с
![Основы SQL: команды Базы данных: создание CREATE DATABASE `db_name`; * MySQL позволяет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-13.jpg)
кириллическими и спец. символами в названии, но принято использовать латинские буквы, цифры и «_».
Слайд 15Основы SQL: команды
Базы данных: удаление
DROP DATABASE `db_name`;
Базы данных: смена текущей
USE `db_name`;
![Основы SQL: команды Базы данных: удаление DROP DATABASE `db_name`; Базы данных: смена текущей USE `db_name`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-14.jpg)
Слайд 16Основы SQL: команды
Таблицы: создание
CREATE TABLE `table_name` (
/*описание полей таблицы*/
`название_поля` тип параметры,
`название_поля`
![Основы SQL: команды Таблицы: создание CREATE TABLE `table_name` ( /*описание полей таблицы*/](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-15.jpg)
тип,
`название_поля` тип параметры
);
Слайд 17Основы SQL: команды
Таблицы: создание
Пример:
CREATE TABLE `news` (
`id` mediumint(8) UNSIGNED PRIMARY
![Основы SQL: команды Таблицы: создание Пример: CREATE TABLE `news` ( `id` mediumint(8)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-16.jpg)
KEY NOT NULL AUTO_INCREMENT,
`posted` TIMESTAMP NOT NULL,
`content` TEXT,
);
Слайд 18Основы SQL: команды
Таблицы: модификации
Переименование
ALTER TABLE `table_name` RENAME TO `table_name2`;
![Основы SQL: команды Таблицы: модификации Переименование ALTER TABLE `table_name` RENAME TO `table_name2`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-17.jpg)
Слайд 19Основы SQL: команды
Таблицы: модификации
Добавление столбца
ALTER TABLE `table_name`
ADD COLUMN `new_column`
описание_столбца
[FIRST
![Основы SQL: команды Таблицы: модификации Добавление столбца ALTER TABLE `table_name` ADD COLUMN](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-18.jpg)
| AFTER`after_column`];
Слайд 20Основы SQL: команды
Таблицы: модификации
Модификация столбца
ALTER TABLE `table_name`
MODIFY COLUMN `bad_column`
описание_столбца;
![Основы SQL: команды Таблицы: модификации Модификация столбца ALTER TABLE `table_name` MODIFY COLUMN `bad_column` описание_столбца;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-19.jpg)
Слайд 21Основы SQL: команды
Таблицы: модификации
Удаление столбца
ALTER TABLE `table_name`
DROP COLUMN
`very_bad_column`;
![Основы SQL: команды Таблицы: модификации Удаление столбца ALTER TABLE `table_name` DROP COLUMN `very_bad_column`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-20.jpg)
Слайд 22Основы SQL: команды
Таблицы: удаление
DROP TABLE `table_name`;
![Основы SQL: команды Таблицы: удаление DROP TABLE `table_name`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-21.jpg)
Слайд 23Основы SQL: команды
Строки: добавление
INSERT INTO `table_name`
[ (`field1`,`field2`, ..., `fieldN`) ]
VALUES
![Основы SQL: команды Строки: добавление INSERT INTO `table_name` [ (`field1`,`field2`, ..., `fieldN`)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-22.jpg)
('value1',
'value2', ..., `valueN`);
Слайд 24Основы SQL: команды
Строки: модификация
UPDATE `table_name`
SET `field1`='value1',
`field2`='value2', ...,
`fieldN`='valueN'
[ WHERE
![Основы SQL: команды Строки: модификация UPDATE `table_name` SET `field1`='value1', `field2`='value2', ..., `fieldN`='valueN' [ WHERE условие ];](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-23.jpg)
условие ];
Слайд 25Основы SQL: команды
Строки: удаление
DELETE FROM `table_name`
[ WHERE условие ];
![Основы SQL: команды Строки: удаление DELETE FROM `table_name` [ WHERE условие ];](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-24.jpg)
Слайд 26Основы SQL: выборка
SELECT `field1`,
`field2`, ..., `fieldN`
FROM `table1`,
`table2`, ..., `tableN`
![Основы SQL: выборка SELECT `field1`, `field2`, ..., `fieldN` FROM `table1`, `table2`, ...,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-25.jpg)
[ WHERE условие ]
[ ORDER BY `field1`,
`field2`, ..., `fieldN`
[ ASC | DESC ] ]
Слайд 27Основы SQL: выборка
SELECT * FROM `table_name`;
+------+------+
| num | id |
![Основы SQL: выборка SELECT * FROM `table_name`; +------+------+ | num | id](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-26.jpg)
+------+------+
| 1 | 1 |
| 1 | 2 |
| 3 | 2 |
| 1 | 7 |
| 2 | 1 |
| 1 | 42 |
+------+------+
Слайд 28Основы SQL: выборка
WHERE
Условный оператор
Используется для исключения строк
Дописывается в выражение с SELECT
![Основы SQL: выборка WHERE Условный оператор Используется для исключения строк Дописывается в выражение с SELECT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-27.jpg)
Слайд 29Основы SQL: выборка
SELECT * FROM `table_name`
WHERE `num` = 1 AND (
![Основы SQL: выборка SELECT * FROM `table_name` WHERE `num` = 1 AND](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-28.jpg)
`id` > 5 OR `id` < 2 );
+------+------+
| num | id |
+------+------+
| 1 | 1 |
| 1 | 7 |
| 1 | 42 |
+------+------+
Слайд 30Основы SQL: выборка
ORDER BY
Определяет порядок сортировки
Добавляется после WHERE
![Основы SQL: выборка ORDER BY Определяет порядок сортировки Добавляется после WHERE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-29.jpg)
Слайд 31Основы SQL: выборка
SELECT * FROM `table_name`
ORDER BY `num` ASC, `id` DESC;
![Основы SQL: выборка SELECT * FROM `table_name` ORDER BY `num` ASC, `id`](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-30.jpg)
+------+------+
| num | id |
+------+------+
| 1 | 42 |
| 1 | 7 |
| 1 | 2 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+------+------+
Слайд 32Основы SQL: выборка
LIMIT
Ограничивает число строк
Добавляется в самый конец
![Основы SQL: выборка LIMIT Ограничивает число строк Добавляется в самый конец](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-31.jpg)
Слайд 33Основы SQL: выборка
SELECT * FROM `table_name`
LIMIT 2;
+------+------+
| num | id |
+------+------+
|
![Основы SQL: выборка SELECT * FROM `table_name` LIMIT 2; +------+------+ | num](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-32.jpg)
1 | 1 |
| 1 | 2 |
+------+------+
Слайд 34Основы SQL: выборка
GROUP BY
Группирует строки
По значениям столбцов
Каждое значение должно быть единственным
![Основы SQL: выборка GROUP BY Группирует строки По значениям столбцов Каждое значение должно быть единственным](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-33.jpg)
Слайд 35Основы SQL: выборка
SELECT * FROM `table_name`
GROUP BY `num`;
+------+------+
| num | id
![Основы SQL: выборка SELECT * FROM `table_name` GROUP BY `num`; +------+------+ |](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-34.jpg)
|
+------+------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+------+------+
Слайд 36Основы SQL: выборка
HAVING
Аналог WHERE для ORDER BY
Исключает группы
Дописывается после ORDER BY
![Основы SQL: выборка HAVING Аналог WHERE для ORDER BY Исключает группы Дописывается после ORDER BY](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-35.jpg)
Слайд 37Основы SQL: выборка
SELECT * FROM `table_name`
GROUP BY `id` HAVING `id` >
![Основы SQL: выборка SELECT * FROM `table_name` GROUP BY `id` HAVING `id`](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-36.jpg)
1;
+------+------+
| num | id |
+------+------+
| 1 | 2 |
| 1 | 7 |
| 1 | 42 |
+------+------+
Слайд 38Основы SQL: функции
SUM – суммирование
SELECT SUM(`num`), SUM(`id`) FROM `table_name`;
+------------+-----------+
| SUM(`num`) | SUM(`id`)
![Основы SQL: функции SUM – суммирование SELECT SUM(`num`), SUM(`id`) FROM `table_name`; +------------+-----------+](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-37.jpg)
|
+------------+-----------+
| 9 | 55 |
+------------+-----------+
Слайд 39Основы SQL: функции
COUNT – подсчет строк
SELECT COUNT(`num`), COUNT(DISTINCT `id`) FROM `table_name`;
+--------------+-----------------------+
| COUNT(`num`)
![Основы SQL: функции COUNT – подсчет строк SELECT COUNT(`num`), COUNT(DISTINCT `id`) FROM](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-38.jpg)
| COUNT(DISTINCT `num`) |
+--------------+-----------------------+
| 6 | 3 |
+--------------+-----------------------+
Слайд 40Основы SQL: функции
MIN, MAX – минимум/максимум
SELECT MIN(`num`), MAX(`num`) FROM `table_name`;
+------------+------------+
| MIN(`num`) |
![Основы SQL: функции MIN, MAX – минимум/максимум SELECT MIN(`num`), MAX(`num`) FROM `table_name`;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-39.jpg)
MAX(`num`) |
+------------+------------+
| 1 | 3 |
+------------+------------+
Слайд 41Основы SQL: функции
AVG – среднее значение
SELECT AVG(`num`)
FROM `table_name`;
+------------+
| AVG(`num`) |
+------------+
| 1.5000
![Основы SQL: функции AVG – среднее значение SELECT AVG(`num`) FROM `table_name`; +------------+](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/878088/slide-40.jpg)
|
+------------+