SELECT SQL
Команда SQL SELECT используется для выборки данных из базы данных. Она имеет следующий синтаксис:
SELECT [ALL | DISTINCT] {список столбцов}
FROM {имя таблицы}
[WHERE условие]
[ORDER BY столбец [ASC | DESC]]
Команда начинается с ключевого слова SELECT, за которым следует список столбцов, которые нужно выбрать. Затем идет ключевое слово FROM, за которым указывается имя таблицы, из которой нужно выбрать данные.
Если указано ключевое слово WHERE, то выбираются только те строки, которые удовлетворяют указанному условию. Если указано ключевое слово ORDER BY, то результаты сортируются в указанном порядке.
---
Не многие владеют в совершенстве языками, а если говорит о языках программирования, то большая часть знает о них только то, что изучали в школе. Однако в полной мере об используемых языках, для управления компьютерными программами, можно почерпнуть только при глубоком изучении материала, в высших учебных заведениях и путем самостоятельного обучения.
Огромное количество программ позволяют выбирать данные для финансовых и других отчетов в считанные минуты. Одна из самых простых и к тому же удобных - SQL SELECT. При знакомстве с ней любой программист сможет без проблем рассказать о том, что SQL – это язык программирования, помогающий структурировать все необходимые запросы, а SELECT – это команда, используемая в комбинации с SQL. Безусловно, в сочетании SQL SELECT позволяют проводить все необходимые действия, изложенные на примерах данной страницы. В связи, с чем нижеизложенный материал более подробно и наглядно характеризует возможности SQL SELECT. Поэтому, установив программу, используемую SQL SELECT, вы сэкономите время своих сотрудников, а также деньги предприятия.
С помощью запроса SQL SELECT можно выполнять выборку данных из таблицы. Следующие примеры запросов SQL SELECT используются в таких SQL СУБД как MySQL, Oracle, Access и других.
Для выполнения следующих SQL запросов SELECT нам необходимо прежде всего изучить структуру таблиц.
Имя таблицы | Имя поля | Тип поля | Примечание |
---|---|---|---|
FAKULTET | KOD_F | Integer | PRIMARY KEY |
NAZV_F | Char, 30 | ||
SPEC | KOD_S | Integer | PRIMARY KEY |
KOD_F | Integer | ||
NAZV_S | Char, 50 | ||
STUDENT | KOD_STUD | Integer | PRIMARY KEY |
KOD_S | Integer | ||
FAM | Char, 30 | ||
IM | Char, 15 | ||
OT | Char, 15 | ||
STIP | Decimal, 3 | ||
BALL | Decimal, 3 |
Примеры запросов SELECT на языке SQL:
SELECT SQL. Пример №1
Выбрать студентов, получающих стипендию, равную 150.
SELECT FAM FROM STUDENT WHERE STIP=150;
С помощью данного SQL запроса SELECT выбираются все значения из таблицы STUDENT, поле STIP которых строго равно 150.
SELECT SQL. Пример №2
Выбрать студентов, имеющих балл от 82 до 90. Студенты должны быть отсортированы в порядке убывания балла.
SELECT FAM FROM STUDENT WHERE BALL BETWEEN 81 AND 91 ORDER BY BALL DESC;
Как видно из SQL примера, чтобы выбрать студентов, которые имеют балл от 82 до 90, мы используем условие BETWEEN. Чтобы отсортировать в убывающем порядке DESC.
SELECT SQL. Пример №3
Выбрать студентов, фамилии которых начинаются с буквы «А».
SELECT FAM FROM STUDENT WHERE FAM LIKE 'А%';
Для того, чтобы выбрать фамилии, начинающиеся с буквы «А», мы используем оператор SQL LIKE для поиска значений по образцу.
SELECT SQL. Пример №4
Подсчитать средний балл на каждом факультете.
SELECT NAZV_F As Название, ROUND(AVG(BALL), 2) As СредБалл FROM FAKULTET, SPEC, STUDENT WHERE STUDENT.KOD_S=SPEC.KOD_S AND SPEC.KOD_F=FAKULTET.KOD_F GROUP BY NAZV_F;
Пример запроса SQL SELECT показывает нам использование функции SQL AVG для вычисления среднего значения, ROUND для округления значения, раздела GROUP BY для группировки столбцов.
SELECT SQL. Пример №5
Подсчитать количество студентов, обучающихся на каждом факультете. Вывести в запросе название факультета, комментарий – «обучается», количество студентов, комментарий «человек».
SELECT NAZV_F||' обучается '||COUNT(STUDENT.BALL)||' человек' As CountStudOnFakultet FROM FAKULTET, SPEC, STUDENT WHERE STUDENT.KOD_S=SPEC.KOD_S AND SPEC.KOD_F=FAKULTET.KOD_F GROUP BY NAZV_F;
SQL SELECT. Пример №6
Упорядочить студентов по факультетам, специальностям, фамилиям.
SELECT NAZV_F, NAZV_S, FAM FROM FAKULTET, SPEC, STUDENT WHERE STUDENT.KOD_S=SPEC.KOD_S AND SPEC.KOD_F=FAKULTET.KOD_F ORDER BY NAZV_F, NAZV_S, FAM;
SQL SELECT. Пример №7
Определить, кто учится на специальности, к которой относится студент «Асанов».
SELECT FAM FROM STUDENT WHERE STUDENT.KOD_S=(SELECT KOD_S FROM STUDENT WHERE FAM='Асанов');
В данном SQL примере мы используем подзапрос SQL SELECT, который возвращает код специальности, на которой учится студент по фамилии Асанов.
SQL SELECT. Пример №8
Показать, какие специальности встречаются в таблице STUDENT. Дубликаты исключить. Вывести в запросе названия специальностей.
SELECT DISTINCT NAZV_S FROM SPEC, STUDENT WHERE STUDENT.KOD_S=SPEC.KOD_S;
Здесь мы с помощью SQL ограничения DISTINCT выводим только различные значения.
SQL SELECT. Пример №9
Извлечь из базы данных все данные по сотрудникам, принятым на работу после 01.01.1980 г. в формате “Сотрудник < фамилия сотрудника и его инициалы> принят на работу < дата принятия на работу>”.
SELECT CONCAT(CONCAT(CONCAT('Сотрудник ', sname), CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1))), CONCAT('принят на работу ', acceptdate)) FROM employees WHERE acceptdate > to_date('01.01.80','dd.mm.yyyy');
В данном SQL SELECT, используя SQL функцию CONCAT мы выводим все поля таблицы в одну строчку. SQL функция to_date возвращает привычное для СУБД значение даты.
SQL SELECT. Пример №10
Извлечь из базы данных перечень должностей, которые имеют сотрудники следующих отделов: 'БИОТЕХНОЛОГИЙ', 'ИНЖЕНЕРНОЙ ЭКОЛОГИИ'. В запросе использовать названия отделов.
SELECT pname FROM posts, departments, employees WHERE posts.pid = employees.pid AND employees.did = departments.did AND (departments.dname = 'БИОТЕХНОЛОГИЙ' OR departments.dname = 'ИНЖЕНЕРНОЙ ЭКОЛОГИИ');
Пояснение: posts - таблица должностей, departments - таблица отделов, employees - таблица сотрудников, pname - название должности.
SQL SELECT. Пример №11
Извлечь из базы данных значение максимального личного шифра и фамилию сотрудника с этим номером в формате “Максимальный личный шифр < значение шифра> имеет сотрудник < фамилия сотрудника и его инициалы>”.
SELECT 'Максимальный личный шифр '||eid||' имеет сотрудник '||sname||' '||SUBSTR(fname, 0, 1)||'. '||SUBSTR(otch, 0, 1)||'.' As Максимальный_личный_шифр FROM employees WHERE eid = (SELECT MAX(eid) from employees);
Для вывода максимального личного шифра мы устанавливаем условие в WHERE так, чтобы шифр был равен полученному максимальному шифру из подзапроса SELECT, используя функцию MAX.
SQL SELECT. Пример №12
Получить из базы данных значение числа записей в таблице данных о сотрудниках в формате “Таблица данных о сотрудниках содержит < число записей> записей”.
SELECT 'Таблица данных о сотрудниках содержит '||COUNT(*)||' записей' FROM employees;
Используя SQL функцию COUNT, выводим количество записей таблицы employees.
SQL SELECT. Пример №13
Получить единым запросом список отделов и должностей предприятия.
SELECT pname FROM posts UNION SELECT dname FROM departments;
С помощью UNION мы объединяем два запроса SQL SELECT и выводим их как один.
SQL SELECT. Пример №14
Вывести 30 комментариев начиная с 5 комментария из таблицы replies, кроме комментариев автора 'Вася'. Данные сортируются по дате добавления комментария в убывающем порядке.
SELECT * FROM replies WHERE author!='Вася' ORDER BY date DESC LIMIT 5, 30;
SQL SELECT. Пример №15
Получить из SQL таблицы news одну новость с пометкой "Важные новости".
SELECT * FROM news WHERE status='Важные новости' LIMIT 1;
В данном SQL примере мы выбираем все столбцы поля, у которого столбец status равен 'Важные новости'. SQL ограничение LIMIT 1 означает, что выбираем только одну запись.
SQL SELECT. Пример №16
Получить имя письма из таблицы "mail_inbox с идентификатором 1565.
SELECT name FROM mail_inbox WHERE id='1565';
SQL SELECT. Пример №17
Получить название рекламного пакета с идентификатором 24.
SELECT title FROM ad_packages WHERE id='24';
SQL SELECT. Пример №18
Вывести столбцы id, title, price, c_type с сортировкой по идентификатору в возрастающем порядке.
SELECT id, title, price, c_type FROM ad_packages ORDER BY id ASC;
SQL SELECT. Пример №19
Вывести все записи из SQL таблицы actions с идентификатором 1234567890.
SELECT * actions WHERE uid='1234567890';
SQL SELECT. Пример №20
Выбрать все записи из таблицы buypts с сортировкой по полю c_type по убыванию и по полю price по убыванию
SELECT * FROM buypts ORDER BY c_type DESC, price DESC;
SQL SELECT. Пример №21
SELECT uid FROM refs WHERE rid='19';
SQL SELECT. Пример №22
SELECT * FROM sellpts ORDER BY price ASC;
SQL SELECT. Пример №23
SELECT * FROM useronline WHERE uid='1';
SQL SELECT. Пример №24
SELECT * FROM mail_inbox WHERE uid='4590' AND status='unread';
SQL SELECT. Пример №25
SELECT * FROM buyref WHERE rid!='5' ORDER BY dateStamp DESC;
MySQL SQL SELECT. Пример №26
SELECT id FROM replies WHERE nid='5';
MySQL SQL SELECT. Пример №27
SELECT id, dateStamp, title, text FROM news WHERE dateStamp='1232342412';
Oracle SQL SELECT. Пример №28
SELECT id, dateStamp, author, text, remote_addr FROM replies WHERE nid='45' ORDER BY dateStamp ASC;
- Артур, 20 октября 2022, 11:59Начали хорошо с таблицой для анализа, с заданиями, с запросами, с объяснением запросов. Потом уже примеры пошли из других таблиц без указания таблиц, потом и объяснения запросов закончились, а в конце и задания, только одни примеры остались. А в остальном супер -кратко и по делу