Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб-1-2-теория.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.2. Запрос данных из таблицы MySql select

Запрос данных выполняется с помощью команды MySQL SELECT.

В общем виде синтаксис оператора SELECT имеет следующий вид:

SELECT [ALL/DISTINCT] <список атрибутов>/*

FROM <список таблиц>

[WHERE <условие выборки>]

[ORDER BY <список атрибутов>]

[GROUP BY <список атрибутов>]

[HAVING <условие>]

[UNION<выражение с оператором SELECT>]

В квадратных скобках указываются элементы, которые могут в запросе отсутствовать.

Ключевое слово ALL означает, что результатом будут все строки, удовлетворяющие условию запроса, в том числе и одинаковые строки. DISTINCT означает, что в результирующий набор не включаются одинаковые строки. Далее идет список атрибутов исходной таблицы, которые будут включены в таблицу-результат. Символ* означает, что в таблицу-результат включаются все атрибуты исходной таблицы.

Обязательным ключевым словом является слово FROM, за ним следуют имена таблиц, к которым осуществляется запрос.

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

Ключевое слово ORDER BY задает операцию упорядочения строк таблицы-результата по указанному списку атрибутов.

В предложении с ключевым словом GROUP BY задается список атрибутов группировки (разъяснение этого и последующего ключевого слова будет представлено немного позднее).

В предложении HAVING задаются условия, накладываемые на каждую группу.

Ключевые слова FROM, WHERE ORDER BY используются аналогичным образом и в других операторах манипулирования данными языка SQL.

Короче можно записать:

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

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

Оператор SELECT без условий выводит все данные из указанных столбцов.

Примеры:

Чтобы извлечь имена и фамилии всех сотрудников, выполните следующую команду.

SELECT 1_name, 2_name from rabotniki_data;

Эта команда выводит все данные из столбцов 1_name и 2_name.

При ближайшем рассмотрении можно заметить, что данные представлены в том порядке, в котором они были введены. Более того, последняя строка указывает число строк в таблице - 2.

Чтобы вывести всю таблицу, можно либо ввести имена всех столбцов, либо воспользоваться упрощенной формой оператора SELECT.

SELECT * from rabotniki_data;

Символ * в этом выражении означает 'ВСЕ столбцы'. Поэтому этот оператор выводит все строки всех столбцов.

Рассмотрим ещё один пример.

SELECT 1_name, 2_name, vozrast from rabotniki_data;

Выборка данных с помощью условий

Теперь более подробно рассмотрим формат оператора SELECT.

Его полный формат имеет вид:

SELECT имена_столбцов from имя_таблицы [WHERE ...условия];

Одним из достоинств RDBMS является возможность извлекать данные на основе определенных условий.

Перейдём к рассмотрению операторов сравнения.

Операторы сравнения = и !=

Выборка столбцов с условием для поля "имя".

SELECT f_name, l_name from employee_data where f_name = 'Иван';

Этот оператор выводит имена и фамилии всех сотрудников, которые имеют имя Иван. Отметим, что слово Иван в условии заключено в одиночные кавычки. Можно использовать также двойные кавычки. Кавычки являются обязательными, так как MySQL будет порождать ошибку при их отсутствии. Кроме того сравнения MySQL не различают регистр символов, что означает, что с равным успехом можно использовать "Иван", "иван" и даже "ИвАн".

Выборка столбцов с условием для поля "должность":

SELECT f_name,l_name from employee_data where title="программист";

Выбирает имена и фамилии всех сотрудников, которые являются программистами.

Выборка столбцов с условием для поля "возраст"

SELECT f_name, l_name from employee_data where age = 32;

Это список имен и фамилий всех сотрудников с возрастом 32 года. Вспомните, что тип столбца age был задан как int, поэтому кавычки вокруг 32 не требуются. Это - незначительное различие между текстовым и целочисленным типами столбцов.

Оператор != означает 'не равно' и является противоположным оператору равенства.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]