SlideShare a Scribd company logo
MySQL
Web
Владимир Бобров
Базы данных и СУБД
База данных - набор сведений, хранящихся определенным образом.
Система Управления Базой Данных (СУБД) - это совокупность различных
компонентов и т.п.
MySQL, PostgreSQL - СУБД, базы данных - реляционные, объектные, графовые и т.п.
Базовые понятия
Мы далее рассматриваем реляционные базы данных.
Атрибут отношения - столбец в таблице.
Кортеж - набор значений (v1, v2 .. vn). По сути - ряд в таблице
Отношение - сама таблица со всеми кортежами
Пример таблицы
Ключи
Атрибут отношения или множество атрибутов отношения, однозначно
определяющих кортеж в отношении, называется ключом отношения.
Для одного отношения можно найти несколько разных ключей.
Первичный ключ
Элемент из множества ключей. Любой
На практике обычно делают дополнительный атрибут (напр. id) и его определяют
как первичный ключ. В большинстве случаев это полностью удолетворяет
потребностям. В MySQL и большинстве других субд указывается auto_increment,
чтобы избежать дублирования ключа.
Внешний ключ
Внешним ключом может быть любой атрибут отношения. Внешний ключ указывает
на ключ другого отношения.
Используется для связи между отношениями и контроля целостности данных на
уровне базы данных.
Внешний ключ
Внешним ключом может быть любой атрибут отношения. Внешний ключ указывает
на ключ другого отношения.
Используется для связи между отношениями и контроля целостности данных на
уровне базы данных.
Первая нормальная форма
Все значения атрибутов кортежа атомарны. То есть содержат только одно значение.
Вторая нормальная форма
Все атрибуты зависят от первичного ключа и не зависят от его подмножества. Если
ключ состоит из одного атрибута, то пропускаем.
Третья нормальная форма
Нет транзитивных зависимостей неключевых атрибутов от ключевых
DDL (Data Definition Language)
CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE и еще много другого.
CREATE TABLE (MySQL)
CREATE TABLE IF NOT EXIST ‘table_name’ (
‘id’ int(10) NOT NULL AUTO_INCREMENT,
‘test_field’ varchar(250) NOT NULL,
PRIMARY KEY(‘id’)
CONSTRAINT ...
)
Constraints (Ограничения)
Нужны, чтобы контролировать целостность данных
на уровне базы данных.
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
UNIQUE
NOT NULL
DML (Data Manipulation Language)
INSERT, SELECT, UPDATE, DELETE
INSERT
INSERT INTO ‘table’ (v1) VALUES (v2)
INSERT INTO ‘table’ SELECT … (должна совпадать
размерность)
For Only MySQL:
INSERT INTO ‘table’ SET col_name = v2
SELECT
SELECT * FROM ‘table’
WHERE - условие на выбору данных
GROUP BY - группировка данных
HAVING - условие на результат агрегатных функций
ORDER BY - сортировка
LIMIT - ограничение выборки
UPDATE
UPDATE ‘table’ SET col_name = ‘v1’ WHERE col_name
= ‘v2’
DELETE
DELETE FROM ‘table’ WHERE col_name > 1
JOIN
SELECT some_columns FROM table1
[TYPE JOIN] table2 ON table1.col = table2.col;
INNER JOIN
LEFT (OUTER) JOIN
RIGHT (OUTER) JOIN
FULL OUTER JOIN
MySQL
Aliases
SELECT it.test_col as other_name FROM (SELECT *
FROM sdfasda) it
LEFT JOIN table2 it2 ON it.test = it2.test
Подзапросы
SELECT it.test FROM (SELECT * FROM table2 ...) it;
SELECT * FROM table1 WHERE table1.id
IN (1,2,3)

More Related Content

PPT
модуль 17 основы xml
PDF
Василий Захарченко: "Взгляд на queryDsl-sql фреймворк как альтернатива Hiber...
PPT
Web весна 2013 лекция 5
PPTX
работа с потоками ввода вывода
PDF
Лекция #7. Django ORM
PPTX
Работа с БД в Java
PDF
23may 1845 valday young school tkachenko 'development and implementation of t...
PDF
Хранение данных в iPhone. (FMDB, SQL-Persistence, CoreData)
модуль 17 основы xml
Василий Захарченко: "Взгляд на queryDsl-sql фреймворк как альтернатива Hiber...
Web весна 2013 лекция 5
работа с потоками ввода вывода
Лекция #7. Django ORM
Работа с БД в Java
23may 1845 valday young school tkachenko 'development and implementation of t...
Хранение данных в iPhone. (FMDB, SQL-Persistence, CoreData)

Viewers also liked (20)

PPTX
PHP basic
PPTX
Основы CSS (HTML5 тема 02 - основы CSS)
PPTX
Box model, display and position (HTML5 тема 07 - box model, display position)
PDF
Push Notifications (Lecture 22 – push notifications)
PDF
Где зарыт мобильный клад
PDF
Toolbar (Lecture 16 – toolbar)
PDF
Работа с соцсетями (Lecture 19 – social)
PPTX
Rest
PDF
Работа с геоданными (Lecture 18 – geolocation)
PPTX
Семантика текста (HTML5 тема 04 - семантика текста)
PPTX
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
PPTX
Vershi. 5 идей, которые все изменят. Разработка web-проектов и мобильных прил...
PPTX
Стилизация текста (HTML5 тема 05 - стилизация текста)
PPTX
Сессии и авторизация
PPTX
Yii2
PPTX
Структура HTML документа (HTML5 тема 01 - структура html документа)
PDF
Animations (Lecture 17 – animations)
PPTX
PHP and MySQL
PDF
RxJava+RxAndroid (Lecture 20 – rx java)
PPTX
PHP Advanced
PHP basic
Основы CSS (HTML5 тема 02 - основы CSS)
Box model, display and position (HTML5 тема 07 - box model, display position)
Push Notifications (Lecture 22 – push notifications)
Где зарыт мобильный клад
Toolbar (Lecture 16 – toolbar)
Работа с соцсетями (Lecture 19 – social)
Rest
Работа с геоданными (Lecture 18 – geolocation)
Семантика текста (HTML5 тема 04 - семантика текста)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Vershi. 5 идей, которые все изменят. Разработка web-проектов и мобильных прил...
Стилизация текста (HTML5 тема 05 - стилизация текста)
Сессии и авторизация
Yii2
Структура HTML документа (HTML5 тема 01 - структура html документа)
Animations (Lecture 17 – animations)
PHP and MySQL
RxJava+RxAndroid (Lecture 20 – rx java)
PHP Advanced
Ad

Similar to MySQL (20)

PPTX
Стажировка-2013, разработчики, занятие 11. Базы данных
PPTX
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
PPT
Web весна 2012 лекция 5
PPTX
PPT
Web осень 2012 лекция 5
PPT
раздел 3 реляционные модели данных
PPTX
Реляционные базы данных
PPTX
PDF
Фёдор Строк - Базы данных - SQL, ORM, NoSQL
PPTX
13 14 15_индексирование
PPTX
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
PPT
работа с базами данных с использованием субд My sql
ODP
открытый урок бд
PPTX
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
DOC
007
PPT
DOC
005
PPTX
DBD lection 2. Requirements for DBA in RF, normalization rules, basics of SQL...
DOC
0044
Стажировка-2013, разработчики, занятие 11. Базы данных
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Web весна 2012 лекция 5
Web осень 2012 лекция 5
раздел 3 реляционные модели данных
Реляционные базы данных
Фёдор Строк - Базы данных - SQL, ORM, NoSQL
13 14 15_индексирование
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
работа с базами данных с использованием субд My sql
открытый урок бд
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
007
005
DBD lection 2. Requirements for DBA in RF, normalization rules, basics of SQL...
0044
Ad

More from Noveo (12)

PPTX
Гуманитарные специальности в IT-индустрии
PDF
Material Design (Lecture 15 – material design)
PDF
Database (Lecture 14 – database)
PDF
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
PDF
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
PDF
XML, JSON (Lecture 11 – XML, JSON)
PDF
Работа с графической подсистемой (Lecture 10 – Graphics)
PDF
Fragments (Lecture 09 – Fragments)
PDF
Введение в Android-разработку (Lecture 06 – basics)
PDF
Системы автоматизированной сборки (Lecture 05 – gradle)
PDF
Android - 16 - QR
PDF
03 коллекции
Гуманитарные специальности в IT-индустрии
Material Design (Lecture 15 – material design)
Database (Lecture 14 – database)
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
XML, JSON (Lecture 11 – XML, JSON)
Работа с графической подсистемой (Lecture 10 – Graphics)
Fragments (Lecture 09 – Fragments)
Введение в Android-разработку (Lecture 06 – basics)
Системы автоматизированной сборки (Lecture 05 – gradle)
Android - 16 - QR
03 коллекции

MySQL

  • 2. Базы данных и СУБД База данных - набор сведений, хранящихся определенным образом. Система Управления Базой Данных (СУБД) - это совокупность различных компонентов и т.п. MySQL, PostgreSQL - СУБД, базы данных - реляционные, объектные, графовые и т.п.
  • 3. Базовые понятия Мы далее рассматриваем реляционные базы данных. Атрибут отношения - столбец в таблице. Кортеж - набор значений (v1, v2 .. vn). По сути - ряд в таблице Отношение - сама таблица со всеми кортежами
  • 5. Ключи Атрибут отношения или множество атрибутов отношения, однозначно определяющих кортеж в отношении, называется ключом отношения. Для одного отношения можно найти несколько разных ключей.
  • 6. Первичный ключ Элемент из множества ключей. Любой На практике обычно делают дополнительный атрибут (напр. id) и его определяют как первичный ключ. В большинстве случаев это полностью удолетворяет потребностям. В MySQL и большинстве других субд указывается auto_increment, чтобы избежать дублирования ключа.
  • 7. Внешний ключ Внешним ключом может быть любой атрибут отношения. Внешний ключ указывает на ключ другого отношения. Используется для связи между отношениями и контроля целостности данных на уровне базы данных.
  • 8. Внешний ключ Внешним ключом может быть любой атрибут отношения. Внешний ключ указывает на ключ другого отношения. Используется для связи между отношениями и контроля целостности данных на уровне базы данных.
  • 9. Первая нормальная форма Все значения атрибутов кортежа атомарны. То есть содержат только одно значение.
  • 10. Вторая нормальная форма Все атрибуты зависят от первичного ключа и не зависят от его подмножества. Если ключ состоит из одного атрибута, то пропускаем.
  • 11. Третья нормальная форма Нет транзитивных зависимостей неключевых атрибутов от ключевых
  • 12. DDL (Data Definition Language) CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE и еще много другого.
  • 13. CREATE TABLE (MySQL) CREATE TABLE IF NOT EXIST ‘table_name’ ( ‘id’ int(10) NOT NULL AUTO_INCREMENT, ‘test_field’ varchar(250) NOT NULL, PRIMARY KEY(‘id’) CONSTRAINT ... )
  • 14. Constraints (Ограничения) Нужны, чтобы контролировать целостность данных на уровне базы данных. PRIMARY KEY FOREIGN KEY CHECK DEFAULT UNIQUE NOT NULL
  • 15. DML (Data Manipulation Language) INSERT, SELECT, UPDATE, DELETE
  • 16. INSERT INSERT INTO ‘table’ (v1) VALUES (v2) INSERT INTO ‘table’ SELECT … (должна совпадать размерность) For Only MySQL: INSERT INTO ‘table’ SET col_name = v2
  • 17. SELECT SELECT * FROM ‘table’ WHERE - условие на выбору данных GROUP BY - группировка данных HAVING - условие на результат агрегатных функций ORDER BY - сортировка LIMIT - ограничение выборки
  • 18. UPDATE UPDATE ‘table’ SET col_name = ‘v1’ WHERE col_name = ‘v2’
  • 19. DELETE DELETE FROM ‘table’ WHERE col_name > 1
  • 20. JOIN SELECT some_columns FROM table1 [TYPE JOIN] table2 ON table1.col = table2.col; INNER JOIN LEFT (OUTER) JOIN RIGHT (OUTER) JOIN FULL OUTER JOIN
  • 22. Aliases SELECT it.test_col as other_name FROM (SELECT * FROM sdfasda) it LEFT JOIN table2 it2 ON it.test = it2.test
  • 23. Подзапросы SELECT it.test FROM (SELECT * FROM table2 ...) it; SELECT * FROM table1 WHERE table1.id IN (1,2,3)