Базы данных. MySQL

Содержание

Слайд 2

Основы SQL: MySQL

Будем использовать MySQL
СУБД с открытым кодом
Бесплатная версия (Community Edition) –

Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия
на www.mysql.com

Слайд 3

Основы SQL: языки запросов

Операции:
над множествами (объединение, пересечение, разность, деление, декартово произведение) над

Основы SQL: языки запросов Операции: над множествами (объединение, пересечение, разность, деление, декартово произведение) над отношениями
отношениями

Слайд 4

Основы SQL: языки запросов

В реляционных СУБД – две группы языков:
реляционная алгебра (операнды

Основы SQL: языки запросов В реляционных СУБД – две группы языков: реляционная
и результаты – отношения)‏
реляционное исчисление (декларативные языки – запросы)‏

Слайд 5

Основы SQL: SQL?

Structured Query Language — язык структурированных запросов
Информационно-логический язык, а не

Основы SQL: SQL? Structured Query Language — язык структурированных запросов Информационно-логический язык,
язык программирования!
Для создания, модификации и управления данными в РБД.

Слайд 6

Основы SQL: синтаксис

Операторы состоят из:
имен операций и функций;
имен таблиц и

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

Слайд 7

Основы SQL: синтаксис

Общий вид простого оператора:
ГЛАГОЛ параметры;
Пример:
SELECT `id` FROM `mytable`;

Основы SQL: синтаксис Общий вид простого оператора: ГЛАГОЛ параметры; Пример: SELECT `id` FROM `mytable`;

Слайд 8

Основы SQL: синтаксис

Выражения не зависят от регистра, не требуют наличия кавычек...
«Правильный» стиль:
INSERT

Основы SQL: синтаксис Выражения не зависят от регистра, не требуют наличия кавычек...
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 */

*/

Слайд 10

Основы SQL: типы данных

Целые числа:
TINYINT — 1 байт, -128..127 (0..255);
SMALLINT — 2

Основы SQL: типы данных Целые числа: TINYINT — 1 байт, -128..127 (0..255);
байта, -32768..32767;
MEDIUMINT — 3 байта;
INT — 4 байта;
BIGINT — 8 байт.

Слайд 11

Основы SQL: типы данных

Дробные числа:
FLOAT (4 байта);
DOUBLE (8 байт).

Основы SQL: типы данных Дробные числа: FLOAT (4 байта); DOUBLE (8 байт).

Слайд 12

Основы SQL: типы данных

Строки:
CHAR — дополняет до «ширины»;
VARCHAR — использует

Основы SQL: типы данных Строки: CHAR — дополняет до «ширины»; VARCHAR —
минимум;
(TINY|MEDIUM|LONG)BLOB — бинарные данные;
TEXT — текстовые данные;
ENUM — одно из значений;
SET — ноль или более значений.

Слайд 13

Основы SQL: типы данных

Другие:
BOOL, BOOLEAN;
SERIAL — BIGINT UNSIGNED NOT NULL

Основы SQL: типы данных Другие: BOOL, BOOLEAN; SERIAL — BIGINT UNSIGNED NOT
AUTO_INCREMENT UNIQUE;
DATETIME, DATE, TIMESTAMP, TIME, YEAR.

Слайд 14

Основы SQL: команды

Базы данных: создание
CREATE DATABASE `db_name`;
* MySQL позволяет создавать БД с

Основы SQL: команды Базы данных: создание CREATE DATABASE `db_name`; * MySQL позволяет
кириллическими и спец. символами в названии, но принято использовать латинские буквы, цифры и «_».

Слайд 15

Основы SQL: команды

Базы данных: удаление
DROP DATABASE `db_name`;
Базы данных: смена текущей
USE `db_name`;

Основы SQL: команды Базы данных: удаление DROP DATABASE `db_name`; Базы данных: смена текущей USE `db_name`;

Слайд 16

Основы SQL: команды

Таблицы: создание
CREATE TABLE `table_name` (
/*описание полей таблицы*/
`название_поля` тип параметры,
`название_поля`

Основы SQL: команды Таблицы: создание CREATE TABLE `table_name` ( /*описание полей таблицы*/
тип,
`название_поля` тип параметры
);

Слайд 17

Основы SQL: команды

Таблицы: создание
Пример:
CREATE TABLE `news` (
`id` mediumint(8) UNSIGNED PRIMARY

Основы SQL: команды Таблицы: создание Пример: CREATE TABLE `news` ( `id` mediumint(8)
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`;

Слайд 19

Основы SQL: команды

Таблицы: модификации
Добавление столбца
ALTER TABLE `table_name`
ADD COLUMN `new_column`
описание_столбца
[FIRST

Основы SQL: команды Таблицы: модификации Добавление столбца ALTER TABLE `table_name` ADD COLUMN
| AFTER`after_column`];

Слайд 20

Основы SQL: команды

Таблицы: модификации
Модификация столбца
ALTER TABLE `table_name`
MODIFY COLUMN `bad_column`
описание_столбца;

Основы SQL: команды Таблицы: модификации Модификация столбца ALTER TABLE `table_name` MODIFY COLUMN `bad_column` описание_столбца;

Слайд 21

Основы SQL: команды

Таблицы: модификации
Удаление столбца
ALTER TABLE `table_name`
DROP COLUMN
`very_bad_column`;

Основы SQL: команды Таблицы: модификации Удаление столбца ALTER TABLE `table_name` DROP COLUMN `very_bad_column`;

Слайд 22

Основы SQL: команды

Таблицы: удаление
DROP TABLE `table_name`;

Основы SQL: команды Таблицы: удаление DROP TABLE `table_name`;

Слайд 23

Основы SQL: команды

Строки: добавление
INSERT INTO `table_name`
[ (`field1`,`field2`, ..., `fieldN`) ]
VALUES

Основы SQL: команды Строки: добавление INSERT INTO `table_name` [ (`field1`,`field2`, ..., `fieldN`)
('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 условие ];
условие ];

Слайд 25

Основы SQL: команды

Строки: удаление
DELETE FROM `table_name`
[ WHERE условие ];

Основы SQL: команды Строки: удаление DELETE FROM `table_name` [ WHERE условие ];

Слайд 26

Основы SQL: выборка

SELECT `field1`,
`field2`, ..., `fieldN`
FROM `table1`,
`table2`, ..., `tableN`

Основы SQL: выборка SELECT `field1`, `field2`, ..., `fieldN` FROM `table1`, `table2`, ...,
[ WHERE условие ]
[ ORDER BY `field1`,
`field2`, ..., `fieldN`
[ ASC | DESC ] ]

Слайд 27

Основы SQL: выборка

SELECT * FROM `table_name`;
+------+------+
| num | id |

Основы SQL: выборка SELECT * FROM `table_name`; +------+------+ | num | id

+------+------+
| 1 | 1 |
| 1 | 2 |
| 3 | 2 |
| 1 | 7 |
| 2 | 1 |
| 1 | 42 |
+------+------+

Слайд 28

Основы SQL: выборка

WHERE
Условный оператор
Используется для исключения строк
Дописывается в выражение с SELECT

Основы SQL: выборка WHERE Условный оператор Используется для исключения строк Дописывается в выражение с SELECT

Слайд 29

Основы SQL: выборка

SELECT * FROM `table_name`
WHERE `num` = 1 AND (

Основы SQL: выборка SELECT * FROM `table_name` WHERE `num` = 1 AND
`id` > 5 OR `id` < 2 );
+------+------+
| num | id |
+------+------+
| 1 | 1 |
| 1 | 7 |
| 1 | 42 |
+------+------+

Слайд 30

Основы SQL: выборка

ORDER BY
Определяет порядок сортировки
Добавляется после WHERE

Основы SQL: выборка ORDER BY Определяет порядок сортировки Добавляется после WHERE

Слайд 31

Основы SQL: выборка

SELECT * FROM `table_name`
ORDER BY `num` ASC, `id` DESC;

Основы SQL: выборка SELECT * FROM `table_name` ORDER BY `num` ASC, `id`

+------+------+
| num | id |
+------+------+
| 1 | 42 |
| 1 | 7 |
| 1 | 2 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+------+------+

Слайд 32

Основы SQL: выборка

LIMIT
Ограничивает число строк
Добавляется в самый конец

Основы SQL: выборка LIMIT Ограничивает число строк Добавляется в самый конец

Слайд 33

Основы SQL: выборка

SELECT * FROM `table_name`
LIMIT 2;
+------+------+
| num | id |
+------+------+
|

Основы SQL: выборка SELECT * FROM `table_name` LIMIT 2; +------+------+ | num
1 | 1 |
| 1 | 2 |
+------+------+

Слайд 34

Основы SQL: выборка

GROUP BY
Группирует строки
По значениям столбцов
Каждое значение должно быть единственным

Основы SQL: выборка GROUP BY Группирует строки По значениям столбцов Каждое значение должно быть единственным

Слайд 35

Основы SQL: выборка

SELECT * FROM `table_name`
GROUP BY `num`;
+------+------+
| num | id

Основы SQL: выборка SELECT * FROM `table_name` GROUP BY `num`; +------+------+ |
|
+------+------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+------+------+

Слайд 36

Основы SQL: выборка

HAVING
Аналог WHERE для ORDER BY
Исключает группы
Дописывается после ORDER BY

Основы SQL: выборка HAVING Аналог WHERE для ORDER BY Исключает группы Дописывается после ORDER BY

Слайд 37

Основы SQL: выборка

SELECT * FROM `table_name`
GROUP BY `id` HAVING `id` >

Основы SQL: выборка SELECT * FROM `table_name` GROUP BY `id` HAVING `id`
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`; +------------+-----------+
|
+------------+-----------+
| 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
| 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`;
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`; +------------+
|
+------------+