Выборка данных — оператор SELECT




Практическая работа №4

Выборка и сортировка данных

Выборка данных — оператор SELECT

Итак, в нашей БД forum есть три таблицы: users (пользователи), topics (темы) и posts (сообщения). И мы хотим посмотреть, какие данные в них содержатся. Для этого в SQL существует оператор SELECT. Синтаксис его использования следующий:

1. <span style="color: #000000;">SELECT что_выбрать FROM откуда_выбрать;</span>

Вместо «что_выбрать» мы должны указать либо имя столбца, значения которого хотим увидеть, либо имена нескольких столбцов через запятую, либо символ звездочки (*), означающий выбор всех столбцов таблицы. Вместо «откуда_выбрать» следует указать имя таблицы.

Давайте сначала посмотрим все столбцы из таблицы users:

1. <span style="color: #000000;">SELECT * FROM users;</span>

Вот и все наши данные, которые мы вносили в эту таблицу. Но предположим, что мы хотим посмотреть только столбец id_user (например, в прошлом уроке, нам надо было для заполнения таблицы topics (темы) знать, какие id_user есть в таблице users). Для этого в запросе мы укажем имя этого столбца:

1. <span style="color: #000000;">SELECT id_user FROM users;</span>

Ну, а если мы захотим посмотреть, например, имена и e-mail наших пользователей, то мы перечислим интересующие столбцы через запятую:

1. <span style="color: #000000;">SELECT name, email FROM users;</span>

Аналогично, вы можете посмотреть, какие данные содержат и другие наши таблицы. Давайте посмотрим, какие у нас существуют темы:

1. <span style="color: #000000;">SELECT * FROM topics;</span>

Сейчас у нас всего 4 темы, а если их будет 100? Хотелось бы, чтобы они выводились, например, по алфавиту. Для этого в SQL существует ключевое слово ORDER BY после которого указывается имя столбца по которому будет происходить сортировка. Синтаксис следующий:

1. <span style="color: #000000;">SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;</span>

По умолчанию сортировка идет по возрастанию, но это можно изменить, добавив ключевое слово DESC

Теперь наши данные отсортированы в порядке по убыванию.

Сортировку можно производить сразу по нескольким столбцам. Например, следующий запрос отсортирует данные по столбцу topic_name, и если в этом столбце будет несколько одинаковых строк, то в столбце id_author будет осуществлена сортировка по убыванию:

Сравните результат с результатом предыдущего запроса.

Очень часто нам не нужна вся информация из таблицы. Например, мы хотим узнать, какие темы были созданы пользователем sveta (id=4). Для этого в SQL есть ключевое слово WHERE, синтаксис у такого запроса следующий:

1. <span style="color: #000000;">SELECT имя_столбца FROM имя_таблицы WHERE условие;</span>

Для нашего примера условием является идентификатор пользователя, т.е. нам нужны только те строки, в столбце id_author которых стоит 4 (идентификатор пользователя sveta):

1. <span style="color: #000000;">SELECT * FROM topics WHERE id_author=4;</span>

Или мы хотим узнать, кто создал тему «велосипеды»:

Конечно, было бы удобнее, чтобы вместо id автора, выводилось его имя, но имена хранятся в другой таблице. В последующих уроках мы узнаем, как выбирать данные из нескольких таблиц. А пока узнаем, какие условия можно задавать, используя ключевое слово WHERE.

Оператор Описание
= (равно) Отбираются значения равные указанному Пример: SELECT * FROM topics WHERE id_author=4; Результат:
> (больше) Отбираются значения больше указанного Пример: SELECT * FROM topics WHERE id_author>2; Результат:
< (меньше) Отбираются значения меньше указанного Пример: SELECT * FROM topics WHERE id_author<3; Результат:
>= (больше или равно) Отбираются значения большие и равные указанному Пример: SELECT * FROM topics WHERE id_author>=2; Результат:
<= (меньше или равно) Отбираются значения меньшие и равные указанному Пример: SELECT * FROM topics WHERE id_author<=3; Результат:
!= (не равно) Отбираются значения не равные указанному Пример: SELECT * FROM topics WHERE id_author!=1; Результат:
IS NOT NULL Отбираются строки, имеющие значения в указанном поле Пример: SELECT * FROM topics WHERE id_author IS NOT NULL; Результат:
IS NULL Отбираются строки, не имеющие значения в указанном поле Пример: SELECT * FROM topics WHERE id_author IS NULL; Результат: Empty set — нет таких строк.
BETWEEN (между) Отбираются значения, находящиеся между указанными Пример: SELECT * FROM topics WHERE id_author BETWEEN 1 AND 3; Результат:
IN (значение содержится) Отбираются значения, соответствующие указанным Пример: SELECT * FROM topics WHERE id_author IN (1, 4); Результат:
NOT IN (значение не содержится) Отбираются значения, кроме указанных Пример: SELECT * FROM topics WHERE id_author NOT IN (1, 4); Результат:
LIKE (соответствие) Отбираются значения, соответствующие образцу Пример: SELECT * FROM topics WHERE topic_name LIKE ‘вел%’; Результат: Возможные метасимволы оператора LIKE будут рассмотрены ниже.
NOT LIKE (не соответствие) Отбираются значения, не соответствующие образцу Пример: SELECT * FROM topics WHERE topic_name NOT LIKE ‘вел%’; Результат:


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: