# Команда SELECT

Команда `SELECT` получает записи из базы данных по определенному условию, которое задается с помощью команды `WHERE`.

Эти записи можно отсортировать с помощью команды ORDER BY, а также можно ограничить их количество с помощью `LIMIT`.

## Синтаксис

`SELECT * FROM имя_таблицы`
`SELECT * FROM имя_таблицы WHERE условие`
`SELECT поле1, поле2... FROM имя_таблицы WHERE условие`

Полный синтаксис:

`SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] [DISTINCT | DISTINCTROW | ALL] select_expression,... [INTO {OUTFILE | DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...] [LIMIT [offset,] rows | rows OFFSET offset] [PROCEDURE procedure_name(argument_list)] [FOR UPDATE | LOCK IN SHARE MODE]]`

## Таблицы для примеров

таблица employees
id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
2 | user2 | 25 | 500
3 | user3 | 23 | 500
4 | user4 | 30 | 900
5 | user5 | 27 | 500
6 | user6 | 28 | 900

## Пример

В данном примере из таблицы выбираются записи, у которых поле id больше `3`-х:

`SELECT * FROM employees WHERE id>3`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
4 | user4 | 30 | 900
5 | user5 | 27 | 500
6 | user6 | 28 | 900

## Пример

В данном примере выбираются записи, у которых поле id меньше `3`-х:

`SELECT * FROM employees WHERE id<=3`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
2 | user2 | 25 | 500
3 | user3 | 23 | 500

## Пример

В данном примере выбираются записи, у которых поле id равно `3`-м:

`SELECT * FROM employees WHERE id=3`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
3 | user3 | 23 | 500

## Пример

В данном примере выбираются записи,у которых поле id НЕ равно `3`-м:

`SELECT * FROM employees WHERE id!=3`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
2 | user2 | 25 | 500
4 | user4 | 30 | 900
5 | user5 | 27 | 500
6 | user6 | 28 | 900

Запрос можно переписать следующим образом:

`SELECT * FROM employees WHERE id<>3`

## Пример

В данном примере отсутствует `WHERE` - поэтому выберутся все записи в таблице:

`SELECT * FROM employees`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
2 | user2 | 25 | 500
3 | user3 | 23 | 500
4 | user4 | 30 | 900
5 | user5 | 27 | 500
6 | user6 | 28 | 900

## Пример

В данном примере вместо * указаны конкретные поля (id, name, age):

`SELECT id, name, age FROM employees`

Результат выполнения кода:

id айди | name имя | age возраст
--- | --- | ---
1 | user1 | 23
2 | user2 | 25
3 | user3 | 23
4 | user4 | 30
5 | user5 | 27
6 | user6 | 28

## Пример

В данном примере выбирается только одно поле - name:

`SELECT name FROM employees`

Результат выполнения кода:

name имя
user1
user2
user3
user4
user5
user6

## Смотрите также

- команду `INSERT`,
  которая вставляет данные в таблицу
- команду `UPDATE`,
  которая обновляет данные в таблице
- команду `DELETE`,
  которая удаляет данные из таблицы
- функцию `COUNT`,
  которая подсчитывает количество записей
- команду SELECT INTO,
  которая копирует данные из одной таблицы в другую

↑