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