КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Оператор выборки данных SELECT
SELECT [DISTINCT] *| <список выбираемых полей> FROM <список таблиц> [WHERE <условие>] [ORDER BY <список полей>] [GROUP BY <список полей>]
Оператор предназначен для формирования набора данных, структура которого определяется список выбранных полей, а записи – указанными условиями. Символ «*» задает отбор всех полей указанных таблиц. В списке таблиц указываются имена таблиц, из которых формируется набор данных. Слово DISTINCT задает условие, при котором выбираются только записи с различными значениями. Например, результатом следующего запроса будет список всех фамилий из таблицы students.
SELECT students.name FROM students
Результат следующего запроса – все различные фамилии.
SELECT DISTINCT students.name FROM students
Ключевое слово FROM позволяет задавать для таблиц так называемые «алиасы» (псевдонимы), а затем использовать их для доступа к полям. Например,
SELECT s.name FROM students s или
SELECT s.name, s.date_birth FROM students s
Алиасы удобно использовать для обозначения доступа к полям таблиц с длинными именами. Для полей таблиц, указанных в операторе SELECT, также можно задавать имена с помощью ключевого слова AS:
SELECT s.name AS fio, s.date_birth AS birth
Новые имена для полей можно использовать только в рамках данного запроса, реальные имена полей в таблице не будут изменяться! В условии в части WHERE задается логическое выражение, связывающее значения полей таблиц, из которых выбирается информация. Например, следующий оператор выбирает всех студентов первого курса с их фамилиями и адресами.
SELECT s.fio, s.adress FROM students s WHERE s.course=1
Логическое выражение может быть простым или сложным. В сложном логическом выражении используются логические операции NOT, AND, OR. Например, следующий оператор формирует набор данных, содержащий фамилии и адреса студентов первого курса, первой группы.
SELECT s.fio, s.adress FROM students s WHERE (s.course=1) AND (s.group_st=1)
Чаще всего запросы используются для выборки данных из нескольких таблиц. Например, для выбора фамилий студентов и всех их оценок за интересующую сессию необходимо выполнить следующий запрос:
SELECT s.name, m.mark FROM students s, marks m WHERE (s.id_stud=m.id_stud) AND (m.date_sem= ' 01.02.2001')
Можно добавить и наименования дисциплин:
SELECT s.name, m.mark, sb.name FROM students s, marks m, subjects sb WHERE (s.id_stud=m.id_stud) AND (m.id_subj=sb.id_subj)
|