PPt4Web Хостинг презентаций

Главная / Информатика / SQL Запросы в базах данных
X Код для использования на сайте:

Скопируйте этот код и вставьте его на свой сайт

X

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

После чего скачивание начнётся автоматически!

Кнопки:

Презентация на тему: SQL Запросы в базах данных


Скачать эту презентацию

Презентация на тему: SQL Запросы в базах данных


Скачать эту презентацию

№ слайда 1 Объединение таблиц, группировка записей SQL Запросы в базах данных
Описание слайда:

Объединение таблиц, группировка записей SQL Запросы в базах данных

№ слайда 2 Объединение таблиц (внутреннее объединение) Синтаксис самого простого объединени
Описание слайда:

Объединение таблиц (внутреннее объединение) Синтаксис самого простого объединения следующий: SELECT имена_столбцов_таблицы_1, имена_столбцов_таблицы_2 FROM имя_таблицы_1, имя_таблицы_2; Например, у нас есть две таблицы: в первой хранятся идентификаторы авторов и их имена (users); - во второй темы, созданные авторами и их идентификаторы (topics).

№ слайда 3 Объединение таблиц (внутреннее объединение) Необходимо создать запрос, чтобы в о
Описание слайда:

Объединение таблиц (внутреннее объединение) Необходимо создать запрос, чтобы в ответе были не идентификаторы авторов, а их имена. Создадим простое объединение: SELECT topic_name, name FROM topics, users

№ слайда 4 Объединение таблиц (внутреннее объединение) Получилось не совсем то, ожидалось.
Описание слайда:

Объединение таблиц (внутреннее объединение) Получилось не совсем то, ожидалось. Такое объединение научно называется декартовым произведением, когда каждой строке первой таблицы ставится в соответствие каждая строка второй таблицы. Чтобы результирующая таблица выглядела так, как нам нужно, необходимо указать условие объединения. Мы связываем наши таблицы по идентификатору автора, это и будет нашим условием. Т.е. мы укажем в запросе, что необходимо выводить только те строки, в которых значения поля id_author таблицы topics совпадают со значениями поля id_user таблицы users: SELECT topic_name, name FROM topics, users WHERE topics.id_autor=users.id_user;

№ слайда 5 Объединение таблиц (внутреннее объединение) Т.е. мы в запросе сделали следующее
Описание слайда:

Объединение таблиц (внутреннее объединение) Т.е. мы в запросе сделали следующее условие: если в обеих таблицах есть одинаковые идентификаторы, то строки с этим идентификатором необходимо объединить в одну результирующую строку.

№ слайда 6 Объединение таблиц (внутреннее объединение) На схеме это выглядит следующим обра
Описание слайда:

Объединение таблиц (внутреннее объединение) На схеме это выглядит следующим образом: Если в одной из объединяемых таблиц есть строка с идентификатором, которого нет в другой объединяемой таблице, то в результирующей таблице строки с таким идентификатором не будет. В нашем примере есть пользователь Oleg (id=5), но он не создавал тем, поэтому в результате запроса его нет. При указании условия название столбца пишется после названия таблицы, в которой этот столбец находится (через точку). Это сделано во избежание путаницы, так как столбцы в разных таблицах могут иметь одинаковые названия.

№ слайда 7 Синтаксис объединения с условием:   SELECT имя_таблицы_1.имя_столбца1_таблицы_1,
Описание слайда:

Синтаксис объединения с условием:   SELECT имя_таблицы_1.имя_столбца1_таблицы_1, имя_таблицы_1.имя_столбца2_таблицы_1, имя_таблицы_2.имя_столбца1_таблицы_2, имя_таблицы_2.имя_столбца2_таблицы_2 FROM имя_таблицы_1, имя_таблицы_2 WHERE имя_таблицы_1.имя_столбца_по_которому_объединяем = имя_таблицы_2.имя_столбца_по_которому_объединяем; Если имя столбца уникально, то название таблицы можно опустить (как мы делали в примере), но делать это не рекомендуется. Объединения дают возможность выбирать любую информацию из любых таблиц, причем объединяемых таблиц может быть и три, и четыре, условий для объединения может быть не одно.  Объединение таблиц (внутреннее объединение)

№ слайда 8 Объединение таблиц (внешнее объединение) Позволяет выводить все строки одной таб
Описание слайда:

Объединение таблиц (внешнее объединение) Позволяет выводить все строки одной таблицы и имеющиеся связанные с ними строки из другой таблицы. Например: нам надо вывести всех пользователей и темы, которые они создавали, если таковые имеются. Если мы воспользуемся внутренним объединением, рассмотренным выше, то получим в итоге следующее:  То есть в результирующей таблице есть только те пользователи, которые создавали темы. А нам надо, чтобы выводились все имена.

№ слайда 9 Объединение таблиц (внешнее объединение) Немного изменим запрос:   SELECT users.
Описание слайда:

Объединение таблиц (внешнее объединение) Немного изменим запрос:   SELECT users.name, topics.topic_name FROM users LEFT OUTER JOIN topics ON users.id_user=topics.id_author; И получим желаемый результат - все пользователи и темы, ими созданные. Если пользователь не создавал тему, но в соответствующем столбце стоит значение NULL. 

№ слайда 10 Объединение таблиц (внешнее объединение) В запрос было добавлено ключевое слово
Описание слайда:

Объединение таблиц (внешнее объединение) В запрос было добавлено ключевое слово - LEFT OUTER JOIN, указав тем самым, что из таблицы слева надо взять все строки, и поменяли ключевое слово WHERE на ON. Кроме ключевого слова LEFT OUTER JOIN может быть использовано ключевое слово RIGHT OUTER JOIN. Тогда будут выбираться все строки из правой таблицы и имеющиеся связанные с ними из левой таблицы. Если написать FULL OUTER JOIN произойдет полное внешнее объединение, которое извлечет все строки из обеих таблиц и свяжет между собой те, которые могут быть связаны. Синтаксис для внешнего объединения следующий: SELECT имя_таблицы_1.имя_столбца, имя_таблицы_2.имя_столбца FROM имя_таблицы_1 ТИП ОБЪЕДИНЕНИЯ имя_таблицы_2 ON условие_объединения;

№ слайда 11 Объединение таблиц (внешнее объединение) Поменяем в нашем запросе левостороннее
Описание слайда:

Объединение таблиц (внешнее объединение) Поменяем в нашем запросе левостороннее объединение на правостороннее Теперь есть все темы (все строки из правой таблицы), а пользователи только те, которые темы создавали (т.е. из левой таблицы выбираются только те строки, которые связаны с правой таблицей).

№ слайда 12 Группировка записей и функция COUNT() Для того, чтобы посмотреть какие сообщения
Описание слайда:

Группировка записей и функция COUNT() Для того, чтобы посмотреть какие сообщения и в каких темах имеются воспользуемся запросом SELECT*FROM posts;

№ слайда 13 Группировка записей и функция COUNT() Для того, чтобы узнать сколько сообщений и
Описание слайда:

Группировка записей и функция COUNT() Для того, чтобы узнать сколько сообщений имеется на форуме можно воспользоваться встроенной функцией COUNT(). Эта функция подсчитывает число строк. Причем, если в качестве аргумента этой функции выступает *, то подсчитываются все строки таблицы. А если в качестве аргумента указывается имя столбца, то подсчитываются только те строки, которые имеют значение в указанном столбце. В нашем примере оба аргумента дадут одинаковый результат, т.к. все столбцы таблицы имеют тип NOT NULL. Напишем запрос, используя в качестве аргумента столбец id_topic:   SELECT COUNT(id_topic) FROM posts;

№ слайда 14 Группировка записей и функция COUNT() Получим: Т.е., в наших темах имеется 4 соо
Описание слайда:

Группировка записей и функция COUNT() Получим: Т.е., в наших темах имеется 4 сообщения

№ слайда 15 Группировка записей и функция COUNT() Для того чтобы узнать сколько сообщений им
Описание слайда:

Группировка записей и функция COUNT() Для того чтобы узнать сколько сообщений имеется в каждой теме, нужно сгруппировать наши сообщения по темам и вычислить для каждой группы количество сообщений. Для группировки в SQL используется оператор GROUP BY.   SELECT id_topic, COUNT(id_topic) FROM posts GROUP BY id_topic; Оператор GROUP BY указывает СУБД сгруппировать данные по столбцу id_topic (т.е. каждая тема - отдельная группа) и для каждой группы подсчитать количество строк:  Для оператора GROUP BY можно задавать такие же условия, как и для оператора WHERE, только WHERE фильтрует строки, а HAVING - группы.

№ слайда 16 Группировка записей и функция COUNT() Результат выполнения запроса: Если бы в по
Описание слайда:

Группировка записей и функция COUNT() Результат выполнения запроса: Если бы в поле id_topic были возможны отсутствия значений, то такие строки были бы объединены в отдельную группу со значением NULL.

№ слайда 17 Группировка записей и функция COUNT() Предположим, что нас интересуют только те
Описание слайда:

Группировка записей и функция COUNT() Предположим, что нас интересуют только те группы, в которых больше двух сообщений. В обычном запросе мы указали бы условие с помощью оператора WHERE, но этот оператор умеет работать только со строками, а для групп те же функции выполняет оператор HAVING:   SELECT id_topic, COUNT(id_topic) FROM posts GROUP BY id_topic HAVING COUNT(id_topic) > 2; Результат:

Скачать эту презентацию

Презентации по предмету
Презентации из категории
Лучшее на fresher.ru