СУБД MySQL. Язык обработки данных SQL

Содержание

Слайд 2

Сервер данных MySQL и его возможности MySQL — это популярный сервер данных, применяемый при создании Web-сайтов.

Сервер данных MySQL и его возможности
MySQL — это популярный сервер

данных, применяемый при создании Web-сайтов.
Слайд 3

MySQL — весьма быстрый и нетребовательный к ресурсам компьютера сервер данных.

MySQL — весьма быстрый и нетребовательный к ресурсам компьютера сервер данных.
Возможностей

MySQL вполне хватает для создания Web-сайтов.
MySQL распространяется бесплатно, более того — его исходные тексты открыты для изучения и доработки.
MySQL прекрасно работает в связке с РНР, технологии создания активных серверных Web-страниц.
Слайд 4

MySQL поддерживает запросы SQL, одновременный доступ нескольких пользователей к базам данных,

MySQL поддерживает запросы SQL, одновременный доступ нескольких пользователей к базам данных,

индексы, права, множество типов данных и пр.
Слайд 5

Можно давать отдельные права на выполнение разных видов запросов SQL. Атрибут

Можно давать отдельные права на выполнение разных видов запросов SQL.
Атрибут прав

SELECT дает пользователю возможность извлекать данные из таблицы.
Права на добавление записей дает атрибут INSERT, на изменение — UPDATE, а на удаление — DELETE.
Также можно дать права на создание, изменение и удаление таблиц и индексов, выполнение служебных операций и пр.
Слайд 6

Можно также задать интернет-адрес компьютера, с которого данный пользователь может подключаться

Можно также задать интернет-адрес компьютера, с которого данный пользователь может подключаться

к серверу.
Фактически интернет-адрес компьютера в MySQL является частью имени пользователя, которое в этом случае записывается вот так:
<имя пользователя>@<интернет-адрес компьютера>
то есть как адрес электронной почты.
Слайд 7

Например: root@localhost Пользователь root имеет право подключаться к серверу данных только с локального компьютера (localhost).

Например:
root@localhost
Пользователь root имеет право подключаться к серверу данных только с локального

компьютера (localhost).
Слайд 8

remote_user@dev.domain.ru Пользователь remote_user может подключиться к серверу только с компьютера dev.domain.ru

remote_user@dev.domain.ru
Пользователь remote_user может подключиться к серверу только с компьютера dev.domain.ru и

ни с какого другого (даже локального).
Слайд 9

Если нужно дать пользователю возможность подключаться с любого компьютера, нужно будет

Если нужно дать пользователю возможность подключаться с любого компьютера, нужно будет

вместо интернет-адреса подставить шаблон %, задающий любой интернет-адрес.
Например:
travelling_user@%
Пользователь travelling_user может подключаться к серверу с любого компьютера — и локального, и удаленного.
Слайд 10

Шаблон % можно использовать и вместо имени пользователя; тогда он будет

Шаблон % можно использовать и вместо имени пользователя; тогда он будет

задавать любого пользователя.
Так, если написать
localhost
то с локального компьютера к серверу сможет подключиться любой пользователь (с любым именем, даже если оно явно не записано в списке пользователей).
А если записать
%@%
то к серверу сможет подключиться любой пользователь с любого компьютера (такому пользователю будет нужно дать минимальные права).
Слайд 11

Схема взаимодействия клиента данных с сервером : Клиент данных формирует запрос

Схема взаимодействия клиента данных с сервером :
Клиент данных формирует запрос на

языке SQL.
2. Клиент данных передает сформированный запрос клиентской части сервера данных, установленной на клиентском компьютере.
3. Клиентская часть "упаковывает" принятый запрос в сетевые пакеты и передает его серверу данных.
4. Сервер данных принимает запрос, расшифровывает его, выполняет и отсылает результат обратно.
5. Клиентская часть сервера данных принимает результат, "распаковывает" его и возвращает клиенту данных.
6. Клиент данных принимает результат и выводит его на экран либо предпринимает какие-то действия (например, сообщает пользователю об ошибке).
Слайд 12

Язык обработки данных SQL

Язык обработки данных

SQL

Слайд 13

SQL - информационно-логический язык, предназначенный для описания хранимых данных, для извлечения

SQL - информационно-логический язык, предназначенный для описания хранимых данных, для извлечения

хранимых данных и для модификации данных.
Слайд 14

Запросы SQL можно разделить на три группы: Запросы управления данными (запросы

Запросы SQL можно разделить на три группы:

Запросы управления данными (запросы выборки

данных, добавления, изменения и удаления записей).
Запросы определения данных (запросы создания, изменения и удаления баз данных, таблиц, индексов, связей и пр.).
Служебные запросы. Выполняют различные технические задачи: сбор статистики использования баз данных, резервное копирование и пр.
Слайд 15

Компоненты SQL язык определения данных (ЯОД) DDL – Data Definition Language

Компоненты SQL

язык определения данных (ЯОД)
DDL – Data Definition Language

язык манипулирова-ния данными

(ЯМД)
DML
– Data Manipulation Language

язык управления данными (ЯУД)
DCL – Data Control Language

CREATE
ALTER
DROP

SELECT
INSERT
UPDATE
DELETE

GRANT
REVOKE
DENY

Слайд 16

Создание БД Create - позволяет создавать базы данных и таблицы CREATE

Создание БД

Create - позволяет создавать базы данных и таблицы
CREATE mydb;


- создание пустой БД mydb
Слайд 17

Создание таблиц Базовые таблицы создаются с помощью предложения CREATE TABLE: CREATE TABLE имя_таблицы (описание_поля_1, [описание_поля_2] [,…]);

Создание таблиц

Базовые таблицы создаются с помощью предложения CREATE TABLE:
CREATE TABLE имя_таблицы

(описание_поля_1, [описание_поля_2]
[,…]);
Слайд 18

Описание поля таблицы имя_поля тип_данных [ограничения] где имя_поля – имя поля

Описание поля таблицы

имя_поля тип_данных [ограничения]
где
имя_поля – имя поля (столбца) таблицы;
тип_данных

– спецификация одного из типов данных
Слайд 19

Ограничения: NOT NULL – запрещает пустые ячейки в данном поле DEFAULT

Ограничения:
NOT NULL – запрещает пустые ячейки в данном поле
DEFAULT по_умолч –

определяет значение по умолчанию
UNIQUE – значение в поле должно быть уникальным
PRIMARY KEY – указывает, что поле является первичным ключом
UNSIGNED - запрещает числовым полям принимать отрицательные значения
AUTO_INCREMENT - превращает обычное целочисленное поле в поле счетчика
и др.
Слайд 20

Некоторые типы данных, поддерживаемые MySQL

Некоторые типы данных, поддерживаемые MySQL

Слайд 21

Некоторые типы данных, поддерживаемые MySQL (продолжение)

Некоторые типы данных, поддерживаемые MySQL (продолжение)

Слайд 22

Описание таблицы items

Описание таблицы items

Слайд 23

Описание таблицы categories

Описание таблицы categories

Слайд 24

Таблица items Таблица categories

Таблица items

Таблица categories

Слайд 25

CREATE TABLE categories ( id smallint UNSIGNED AUTO_INCREMENT , name varchar(

CREATE TABLE categories
( id smallint UNSIGNED AUTO_INCREMENT , name varchar( 15 )

NOT NULL , file bool NOT NULL , PRIMARY KEY ( id ) )
Слайд 26

CREATE TABLE items (id smallint UNSIGNED AUTO_INCREMENT, autor varchar(40) NOT NULL,

CREATE TABLE items
(id smallint UNSIGNED AUTO_INCREMENT,
autor varchar(40) NOT NULL,
name varchar(80)

NOT NULL,
added date NOT NULL,
href varchar(255),
catid smallint NOT NULL,
PRIMARY KEY (id))
Слайд 27

Удаление таблиц и баз данных DROP TABLE имя_таблицы;

Удаление таблиц и баз данных

DROP TABLE имя_таблицы;

Слайд 28

Изменение записей таблицы

Изменение записей таблицы

Слайд 29

Добавление записи INSERT INTO ( ) VALUES ( );

Добавление записи

INSERT INTO <имя таблицы>
(<имена полей, разделенные запятыми>)
VALUES (<значения

полей, разделенные запятыми>);
Слайд 30

Пример: INSERT INTO items (name, author) VALUES ("Цвет в веб-дизайне", "Кирсанов, Д.");

Пример:
INSERT INTO items (name, author) VALUES ("Цвет в веб-дизайне", "Кирсанов, Д.");

Слайд 31

UPDATE SET = , = ... WHERE ; Изменение записи

UPDATE <имя таблицы>
SET
<имя 1-го поля>=<новое значение 1-го поля>, <имя 2-го

поля>=<новое значение 2-го поля>
...
WHERE <критерий фильтрации для нахождения изменяемой записи>;

Изменение записи

Слайд 32

Например UPDATE categories SET name="Internet" WHERE id=1;

Например
UPDATE categories
SET name="Internet"
WHERE id=1;

Слайд 33

DELETE FROM WHERE ; Удаление записи

DELETE FROM <имя таблицы>
WHERE <критерий фильтрации, необходимый для нахождения удаляемой записи>;

Удаление

записи
Слайд 34

Пример: DELETE FROM categories WHERE id=3;

Пример:
DELETE FROM categories
WHERE id=3;

Слайд 35

SELECT [DISTINCT] * | FROM ; Если вместо списка полей подставить

SELECT [DISTINCT] * | <список полей, разделенных запятыми>
FROM <имя таблицы>;
Если вместо

списка полей подставить знак звездочка (*), будут выбраны все поля.

Простейший запрос выборки данных

Слайд 36

Примеры SELECT * FROM items; SELECT name FROM categories;

Примеры
SELECT * FROM items;
SELECT name FROM categories;

Слайд 37

Список значений поля name таблицы categories, возвращенных запросом SQL SELECT name FROM categories;

Список значений поля name таблицы categories, возвращенных запросом SQL SELECT name

FROM categories;
Слайд 38

Если указано ключевое слово DISTINCT, то возвращаются только уникальные строки. Например,

Если указано ключевое слово DISTINCT, то возвращаются только уникальные строки. Например,

запрос:
SELECT DISTINCT name FROM categories;
вернет результат
Вместо двух строк «Интернет» получили одну.
Слайд 39

Сортировка данных Для задания порядка сортировки служит дополнительные ключевые слова ORDER

Сортировка данных

Для задания порядка сортировки служит дополнительные ключевые слова ORDER BY,

которые ставятся в конец запроса:
. . . ORDER BY <список критериев сортировки через запятую>
Слайд 40

Критерии сортировки имеют такой вид: [DESC]

Критерии сортировки имеют такой вид:
<имя поля, по которому ведется сортировка> [DESC]

Слайд 41

Поля, по которым должна вестись сортировка записей, перечисляются через запятую после

Поля, по которым должна вестись сортировка записей, перечисляются через запятую после

ключевого слова ORDER BY, которое, в свою очередь, ставится в конце запроса перед знаком точки с запятой.
Правила сортировки:
1. Сначала записи сортируются по полю, указанному первым в списке.
2. Если для некоторых записей значения этого поля одинаковы, то записи далее сортируются по полю, указанному вторым в списке.
3. Если для каких-то записей значения и этого поля одинаковы, то они будут отсортированы по полю, указанному третьим в списке.
4. И т.д.
Слайд 42

По умолчанию записи сортируются, так, чтобы значения поля выстроились по возрастанию.

По умолчанию записи сортируются, так, чтобы значения поля выстроились по возрастанию.


Если нужно отсортировать их по убыванию значений данного поля, нужно после имени этого поля поставить ключевое слово DESC.
Слайд 43

Примеры: SELECT * FROM items ORDER BY author; SELECT file, name

Примеры:
SELECT * FROM items ORDER BY author;
SELECT file, name FROM

categories ORDER BY file, name DESC;
Слайд 44

Слайд 45

Фильтрация данных Для фильтрации используется ключевое слово WHERE. Это слово ставится

Фильтрация данных

Для фильтрации используется ключевое слово WHERE.
Это слово ставится между

ключевыми словами FROM и ORDER BY:
. . . WHERE <список критериев фильтрации через запятую> . . .
Слайд 46

Сами критерии фильтрации имеют вид:

Сами критерии фильтрации имеют вид:
<имя поля> <оператор сравнения>
<заданное значение>

Слайд 47

Оператор сравнения задает равенство или неравенство заданного значения и значения поля.

Оператор сравнения задает равенство или неравенство заданного значения и значения поля.


Например:
id = 3

имя поля

оператор сравнения

заданное значение

Слайд 48

Доступные в стандарте SQL операторы сравнения

Доступные в стандарте SQL операторы сравнения

Слайд 49

SELECT * FROM items WHERE author="Кирсанов, Д."; SELECT * FROM items WHERE author "Андреев, А.";

SELECT * FROM items WHERE author="Кирсанов, Д.";
SELECT * FROM items

WHERE author<>"Андреев, А.";
Слайд 50

Строковые величины, являющиеся частью критериев в запросах SQL, должны заключаться в кавычки!

Строковые величины, являющиеся частью критериев в запросах SQL, должны заключаться в

кавычки!
Слайд 51

SELECT * FROM items WHERE author="Кирсанов, Д." OR author="Андреев, А."; SELECT

SELECT * FROM items WHERE author="Кирсанов, Д." OR author="Андреев, А.";
SELECT id

FROM categories WHERE name="Интернет" AND file=true;

Логические операторы OR и AND

Слайд 52

SELECT * FROM categories WHERE NOT id = 3; Логический оператор NOT (НЕ)

SELECT * FROM categories WHERE NOT id = 3;

Логический оператор NOT

(НЕ)
Слайд 53

Логические операторы можно комбинировать SELECT * FROM items WHERE NOT (author="Кирсанов,

Логические операторы можно комбинировать
SELECT * FROM items WHERE NOT (author="Кирсанов,

Д." OR
author="Андреев, А.");
SELECT * FROM items WHERE NOT author="Кирсанов, Д." OR
author="Андреев, А.";
Слайд 54

Задание связей между таблицами Чтобы связать две таблицы и получить из

Задание связей между таблицами

Чтобы связать две таблицы и получить из

них данные, используется ключевое слово WHERE.

SELECT items.author, items.name, categories.name
FROM items, categories
WHERE items.catid=categories.id;

Слайд 55

SELECT items.author, items.name, categories.name FROM items, categories WHERE items.catid=categories.id;

SELECT items.author, items.name, categories.name FROM items, categories
WHERE items.catid=categories.id;

Слайд 56

Слайд 57

SELECT items.author, items.name, categories.name FROM items, categories WHERE items.catid=categories.id AND categories.file=false ORDER BY categories.name, items.name;

SELECT items.author, items.name, categories.name
FROM items, categories
WHERE items.catid=categories.id AND categories.file=false
ORDER BY

categories.name, items.name;
Слайд 58

Псевдонимы полей Язык SQL предоставляет возможность дать полю другое имя (так

Псевдонимы полей

Язык SQL предоставляет возможность дать полю другое имя (так

называемый псевдоним). Псевдоним создается с помощью ключевого слова AS:
SELECT . . . <имя поля> AS <псевдоним>, . . .
Слайд 59

SELECT items.author, items.name AS item_name, categories.name AS cat_name FROM items, categories

SELECT items.author, items.name AS item_name, categories.name AS cat_name
FROM items, categories
WHERE

items.catid=categories.id AND categories.file=false
ORDER BY categories.name, items.name;
Слайд 60

Агрегатные функции SQL Группировка — это объединение записей в группы по

Агрегатные функции SQL

Группировка — это объединение записей в группы по

какому-либо критерию, называемому критерием группировки. Выполняется группировка с помощью ключевого слова GROUP BY, после которого записываются сами критерии группировки:
GROUP BY <имена полей, по которым будут группироваться записи, через запятую>
Ставится перед ключевыми словами ORDER BY.
Слайд 61

Поля, по которым ведется группировка записей, должны быть первыми в списке

Поля, по которым ведется группировка записей, должны быть первыми в списке

полей ключевого слова SELECT и располагаться в том же порядке, в котором они перечислены после ключевого слова GROUP BY.
Поля, по которым ведется группировка записей, должны быть первыми в списке полей ключевого слова ORDER BY и, опять же, располагаться в том же порядке, в котором они перечислены после ключевого слова GROUP BY.
Слайд 62

Нужно получить количество статей в каждой категории. SELECT categories.name, COUNT(items.name) AS

Нужно получить количество статей в каждой категории.

SELECT categories.name, COUNT(items.name) AS

item_count
FROM items, categories
WHERE items.catid=categories.id AND categories.file=false
GROUP BY categories.name
ORDER BY categories.name;
Слайд 63

Результат:

Результат: