Содержание:
Оператор SELECT sql
SQL-запрос Select предназначен для обычной выборки из базы данных. Т.е. если нам необходимо просто получить данные, не делая с ними никакой обработки и не внося изменений в базу данных, то можно смело использовать данный запмагарос.
Синтаксис оператора SELECT
SELECT * FROM имя_таблицы;Это самый простой вариант работы с оператором, когда мы выбираем все записи из таблицы БД.
Символ
*обозначает выборку всех записей из таблицы. При этом столбцы и строки результирующего набора не упорядочены.
Рассмотрим примеры sql запросов select:
Необходимо выбрать все записи из таблицы
teachersSELECT * FROM teachers; |
Чтобы ограничить количество выбранных записей используется служебное слово
LIMIT:
SELECT * FROM имя_таблицы LIMIT 2,3;В примере происходит выборка 3 записей из таблицы, начиная со 2 записи.
Этот запрос особо необходим при создании блока страниц навигации.
Чтобы упорядочить поля результирующего набора, их следует перечислить через запятую в нужном порядке после слова
SELECT:
SELECT name, zarplata FROM teachers; |
name и zarplata в том же порядке (сначала name, затем zarplata)Список Сортировка в SQL
Чтобы выполнить сортировку по любому из полей, указанных в предложении
SELECT, используется предложениеORDER BY:
SELECT name, zarplata, premia FROM teachers ORDER BY name; |
name, zarplata, premia и отсортирует по полю name (по алфавиту)SELECT `Скорость`,`Память` FROM `pc` ORDER BY `Скорость` ASC |
Или
SELECT `Скорость`,`Память` FROM `pc` ORDER BY 1 ASC |
Сортировку можно выполнять по двум полям:
SELECT `Скорость`,`Память` FROM `pc` ORDER BY `Скорость` ASC, `Память` ASC |
Сортировку можно производить по возрастанию, тогда добавляется параметр
ASC(он же применяется по умолчанию) или по убыванию (в таком случае добавляется параметрDESC):
SELECT name, zarplata, premia FROM teachers ORDER BY name DESC; |
name, zarplata, premia и отсортирует по полю name по убываниюУдаление повторяющихся значений в SQL
В случае когда необходимо получить уникальные строки, можно использовать ключевое слово
DISTINCT.DISTINCT (в переводе с английского ОТЛИЧИЕ) — аргумент, который устраняет двойные значения:
Distinct, в результате будет выдаваться два одинаковых значения. Удалить в sql повторяющиеся значения можно при введении Distinct — в результате дублирующиеся значения не повторяются. SELECT premia FROM teachers; |
SELECT DISTINCT premia FROM teachers; |
Рассмотрим другой пример из базы данных «Компьютерный магазин»:
SELECT Скорость, Память FROM PC; |
В таблице PC первичным ключом является поле code. Поскольку это поле отсутствует в запросе, в приведенном выше результирующем наборе имеются дубликаты строк.
Когда требуется получить уникальные строки (например, нас интересуют только различные комбинации скорости процессора и объема памяти, а не характеристики всех имеющихся компьютеров), то нужно использовать Distinct:
SELECT DISTINCT Скорость, Память FROM PC; |
Продукты выбрать различные страны-производители.id и name из таблицы учителей. Отсортируйте фамилии учителей по убываниюlength) из таблицы курсов (courses), удалив повторяющиеся значенияWord и Excell. Получить уникальные строкиЯзык sql: where условие
Условие выполняется предложением
WHERE <предикат>
которое записывается после предложенияFROM.При этом в результирующий набор попадут только те записи, для которых значение предиката равно
TRUE(истина).
teachers, фамилия которого ИвановSELECT * FROM `teachers` WHERE `name` = 'Иванов' |
Фамилия, Имя, Отчество из таблицы Список, о студентках, имя которых Ольга Несколько условий в SQL
Предикаты (условия) могут состоять как из одного выражения, так и из любой комбинации выражений, построенных с помощью булевых операторов:
AND,ORили NOT
код преподавателя, зарплата которого составляет 10000, а премия 500SELECT * FROM `teachers` WHERE `zarplata`=10000 AND `premia`=500 |
courses вывести длину курса (length), название которого — «Программирование SQL»Реляционные операторы, встречающиеся в условиях:
=Равный
>Больше чем
<Меньше чем
>=Больше чем или равно
<=Меньше чем или равно
<>Не равно
- год рождения которых выше 1983 и обучающихся на первом курсе;
- год рождения которых не 1980 или обучающихся на курсе старше второго.
Between в SQL (между)
Предикат
BETWEENпроверяет, попадают ли значения проверяемого выражения в диапазон, задаваемый пограничными выражениями, соединяемыми служебным словомAND.Синтаксис:
<Проверяемое выражение> [NOT] BETWEEN <Начальное выражение> AND <Конечное выражение>
SELECT name, zarplata FROM teachers WHERE (zarplata BETWEEN 5000 AND 10000); |
SELECT name, zarplata FROM teachers WHERE (zarplata NOT BETWEEN 5000 AND 10000); |
Предикат IN
Предикат
INопределяет, будет ли значение проверяемого выражения обнаружено в наборе значений, который явно определен.Синтаксис:
<Проверяемое выражение> [NOT] IN (<набор значений>)
5000, 10000 или 11000SELECT name, zarplata FROM teachers WHERE (zarplata IN (5000,10000,11000)); |
5000, 10000 или 11000SELECT name, zarplata FROM teachers WHERE (zarplata NOT IN (5000,10000,11000)); |
2000 до 5000 рублей.Предикат IN с подзапросом
Предикат
INопределяет, будет ли значение проверяемого выражения обнаружено в наборе значений, который получен с помощью табличного подзапроса.Синтаксис:
<Проверяемое выражение> [NOT] IN (<подзапрос>)
SELECT `Номер`,`Скорость`,`HD` FROM `pc` WHERE `Скорость` IN (1000,2000,3000) AND `Номер` IN (SELECT `Номер` FROM product WHERE Производитель = "Америка") |
lessons)Язык SQL запрос LIKE
Предикат
LIKEсравнивает проверяемое значение с шаблоном в выражении.Синтаксис:
<Проверяемое значение>[NOT] LIKE <Выражение>
"а"
SELECT * FROM teachers WHERE (name LIKE "%а"); |
Символ % заменяет любую последовательность символов.
% заменяется на символ * м. Упорядочить значения по возрастанию зарплатыЛичные данные вывести Адрес студента, номер телефона которого заканчивается цифрами 33Список, фамилия которых не заканчивается на "ин"














