Язык SQL. Выборка данных (оператор SELECT)


Итак, в БД forum есть три таблицы:

· users (пользователи);

· topics (темы);

· posts (сообщения).

Необходимо посмотреть, какие данные в них содержатся. Для этого в SQL существует оператор SELECT. Синтаксис его использования следующий:

SELECT что_выбрать FROM откуда_выбрать;

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

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

SELECT * FROM users;

Это все данные, которые были внесены в таблицу.

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

SELECT id_user FROM users;

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

SELECT name, email FROM users;

Аналогично, можно посмотреть, какие данные содержат и другие таблицы.

Сначала посмотрим, какие существуют темы:

SELECT * FROM topics;

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

SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;

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

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

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

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

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

SELECT имя_столбца FROM имя_таблицы WHERE условие;

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

SELECT * FROM topics WHERE id_author=4;

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

Конечно, было бы удобнее, чтобы вместо 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 'вел%'; Результат:


Дата добавления: 2018-05-10; просмотров: 1834;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.