Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9_1Язык SQL.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
141 Кб
Скачать
☆

Все поля

Получить список всех студентов со всей необходимой информацией

Запрос: SELECT *

FROM students;

Результат:

SNAM

SFAM

SIMA

SOTCH

STIP

1

Гулый

Степан

Игоревич

60000

2

Макарова

Анна

Петровна

45000

…

…

…

…

…

Список полей

Получить список с фамилией, именем, названием предмета и оценкой по предмету всех студентов

Пример 1

Запрос: SELECT sfam, sima, pname, ocenka

FROM students, predmet, usp;

Результат:

SFAM

SIMA

PNAME

OCENKA

Гулый

Степан

математика

6

Макарова

Анна

математика

6

…

…

…

…

Список полей в определённой последовательности

Пример 2

Запрос:

SELECT PNAME, SFAM, TFAM, OCENKA

FROM STUDENTS, PREDMET, TEACHERS, USP;

Результат:

Получаем список с фамилией всех студентов, названием предмета, фамилией преподавателя и оценкой по предмету

Вычисления:

SELECT SNUM, SFAM, SIMA, SOTCH, STIP*10

FROM STUDENTS;

DISTINCT

Для получения результатов без дубликатов можно воспользоваться аргументом DISTINCT, который обеспечивает возможность устранять повторяющиеся значения из предложения SELECT:

Например:

Имеется таблица продаж за 2008 год - prodaji. Необходимо найти все фирмы, которые покупали у нас товар

№

Data

nazvanie

summa

1

14.05.2008

Omega

1056000

2

05.06.2008

Paradiz

890000

3

20.06.2008

Omega

960000

…

…

…

…

Запрос 1 Запрос 2

SELECT nazvanie SELECT distinct nazvanie

FROM prodaji; FROM prodaji;

Результат Результат

Выведутся все названия фирм Выведутся названия фирм и

они не повторятся

Omega Omega

Paradiz Paradiz

Omega …

…

Литералы

Литералы – это строковые константы, которые применяются наряду с наименованиями столбцов и, таким образом, выступают в роли “псевдо-столбцов”. Строка символов, представляющая собой литерал, должна быть заключена в одинарные или двойные кавычки.

Запрос:

SELECT SFAM, SIMA, “получает”, STIP,

’долларов в год’

FROM students;

WHERE

WHERE – предложение команды SELECT, которое позволяет устанавливать предикаты, условие которых может быть или верным или неверным для любой записи таблицы. Команда извлекает только те записи из таблицы, для которой такое утверждение истинно.

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

  1. Сравнение с использованием реляционных операторов:

= равно > больше

<> не равно < меньше

!= не равно >= больше или равно

<= меньше или равно

  1. Операторы:

BETWEEN IS NULL

IN EXIST

LIKE ANY

CONTAINING ALL

Например:

Запрос: SELECT SFAM, STIP

FROM STUDENTS

WHERE STIP=25.50;

Результат:

SFAM STIP

-------------------------------

Поляков 25.50

Нагорный 25.50

IN, BETWEEN, LIKE, IS NULL

IN определяет набор значений, в которых данное значение должно быть включено.

Запрос 1

SELECT *

FROM STUDENTS

WHERE (SIMA = ‘Анатолий’) OR (SIMA = ‘Владимир’);

Такой же результат можно получить и другим способом :

Запрос 2

SELECT *

FROM STUDENTS

WHERE SIMA IN (‘Анатолий’, ‘Владимир’);

BETWEEN определяет диапазон значений, в который должны умещаться искомые значения, что и делает предикат верным.

Запрос:

SELECT SNUM, OCENCA

FROM USP

WHERE OCENCA BETWEEN 3 AND 5;

Результат:

SNUM OCENCA

----------------------------

15424 5

17451 4

25111 3

34160 4

34161 5

LIKE применим только к полям типа CHAR или VARCHAR, в которых он ищет подстроки, т.е. он ищет символы и проверяет, совпадают ли они с условием. Два типа групповых символов, используемые с LIKE: символ подчеркивания (заменяет любой одиночный символ) и знак процента (замещает последовательность любого числа символов).

Например: Вывести необходимые данные о преподавателях, у которых фамилия начинается на «К»

Запрос: SELECT TFAM, TIMA, TOTCH

FROM TEACHERS

WHERE TFAM LIKE ‘K%’;

Результат запроса:

TFAM TIMA TOTCH

----------------------------------------------------------------

Костыркин Олег Владимирович

Казанко Виталий Владимирович

Если требуется найти строку, которая содержит специальные символы (“%”, “_”) в качестве информационных символов.

Для этого с помощью ключевого слова ESCAPE нужно определить так называемый escape-символ, который, будучи поставленным перед символом “%” или “_”, укажет, что этот символ является информационным. Escape-символ не может быть символом “\” (обратная косая черта) и, вообще говоря, должен представлять собой символ, никогда не появляющийся в упоминаемом столбце как информационный символ. Часто для этих целей используются символы “@” и “~”.

Например: получить список сотрудников, в имени которых содержится “_”

Запрос: SELECT first_name, last_name

FROM employee

WHERE first_name LIKE "%@_%" ESCAPE "@"

В SQL-запросах NULL означает, что значение столбца неизвестно. Предикат IS NULL принимает значение true только тогда, когда выражение слева от ключевых слов “IS NULL” имеет значение null (пусто, не определено). Разрешено также использовать конструкцию IS NOT NULL, которая означает “не пусто”, “имеет какое-либо значение”.

Запрос: SELECT *

FROM USP

WHERE OCENCA IS NULL;

Данных в качестве результата этого запроса не будет, потому что в таблице отсутствуют значения NULL в поле OCENCA.

Запрос: SELECT *

FROM USP

WHERE OCENCA NOT NULL;

Данный запрос выведет все данные по столбцу OCENCA.