- Главная
- Информатика
- Язык SQL
Содержание
- 2. Достоинства: Повсеместная распространенность Быстрое обучение в простых случаях Связывание с различными языками программирования Поддержка ODBC и
- 3. Оператор выбора SELECT Язык запросов ( Data Query Language ) в SQL состоит из единственного оператора
- 4. В разделе GROUP BY задается список полей группировки. В разделе HAVING задаются предикаты-условия, накладываемые на каждую
- 5. По стандарту в шаблон могут быть включены специальные символы: -символ подчеркивания ( _ ) — для
- 6. Введение Null -значений вызвало необходимость модификации классической двузначной логики и превращения ее в трехзначную. Все логические
- 7. Предикаты существования EXIST и несуществования NOT EXIST . Эти предикаты относятся к встроенным подзапросам. SELECT —
- 8. Все последующие разделы оператора SELECT являются необязательными. Самый простой запрос SELECT без необязательных частей соответствует просто
- 9. Примеры Вывести список всех групп (без повторений), где должны пройти экзамены. R1= (ФИО, Дисциплина, Оценка); R
- 11. Скачать презентацию
Слайд 2Достоинства:
Повсеместная распространенность
Быстрое обучение в простых случаях
Связывание с различными языками
Достоинства:
Повсеместная распространенность
Быстрое обучение в простых случаях
Связывание с различными языками

программирования
Поддержка ODBC и JDBC
Фактор времени: научились хорошо реализовывать.
Недостатки:
Несоответствие реляционной модели данных (наличие дубликатов, необязательность первичного ключа, возможность упорядочения результатов)
Недостаточно продуманный механизм неопределенных значений
Сложность формулировок и громоздкость.
Литература
Базы данных: модели реализация / Т. С. Карпова. - СПб.: Питер, 2001. - 304 с.: ил.
Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений /Под. ред. проф. А. Д. Хомоненко. - СПб.: КОРОНА принт, 2000. - 416 с.
Поддержка ODBC и JDBC
Фактор времени: научились хорошо реализовывать.
Недостатки:
Несоответствие реляционной модели данных (наличие дубликатов, необязательность первичного ключа, возможность упорядочения результатов)
Недостаточно продуманный механизм неопределенных значений
Сложность формулировок и громоздкость.
Литература
Базы данных: модели реализация / Т. С. Карпова. - СПб.: Питер, 2001. - 304 с.: ил.
Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений /Под. ред. проф. А. Д. Хомоненко. - СПб.: КОРОНА принт, 2000. - 416 с.
Слайд 3Оператор выбора SELECT
Язык запросов ( Data Query Language ) в SQL состоит
Оператор выбора SELECT
Язык запросов ( Data Query Language ) в SQL состоит

из единственного оператора SELECT Этот единственный оператор поиска реализует все операции реляционной алгебры. Синтаксис оператора SELECT имеет следующий вид:
SELECT [ALL | DISTINCT] < список полей >|*)
FROM < Слисок таблиц >
[ WHERE < Предикат - условие выборки или соединения >]
[ GROUP BY < Список полей результата >]
[ HAVING < Предикат - условие для группы >]
[ ORDER BY < Список полей , по которым упорядочить вывод >]
Ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Значит, в результирующий набор могут попасть одинаковые строки. И это нарушение принципов теории отношений.
DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор. Символ *. означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса. В разделе FROM задается перечень исходных отношений (таблиц) запроса. В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц
SELECT [ALL | DISTINCT] < список полей >|*)
FROM < Слисок таблиц >
[ WHERE < Предикат - условие выборки или соединения >]
[ GROUP BY < Список полей результата >]
[ HAVING < Предикат - условие для группы >]
[ ORDER BY < Список полей , по которым упорядочить вывод >]
Ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Значит, в результирующий набор могут попасть одинаковые строки. И это нарушение принципов теории отношений.
DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор. Символ *. означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса. В разделе FROM задается перечень исходных отношений (таблиц) запроса. В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц
Слайд 4В разделе GROUP BY задается список полей группировки.
В разделе HAVING задаются
В разделе GROUP BY задается список полей группировки.
В разделе HAVING задаются

предикаты-условия, накладываемые на каждую группу.
В части ORDER BY задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующем отношении.
Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество.
Предикаты сравнения с образцом LIKE и NOT LIKE . Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.
В части ORDER BY задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующем отношении.
Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество.
Предикаты сравнения с образцом LIKE и NOT LIKE . Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.
Слайд 5По стандарту в шаблон могут быть включены специальные символы:
-символ подчеркивания (
По стандарту в шаблон могут быть включены специальные символы:
-символ подчеркивания (

_ ) — для обозначения любого одиночного символа;
-символ процента (%) — для обозначения любой произвольной последовательности символов;
-остальные символы, заданные в шаблоне, обозначают самих себя.
Предикат сравнения с неопределенным значением IS NULL. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:
< имя атрибута >IS NULL и < имя атрибута > IS NOT NULL. Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение «Истина» ( TRUE ), а предикат IS NOT NULL — «Ложь» ( FALSE ), в противном случае предикат IS NULL принимает значение «Ложь», а предикат IS NOT NULL принимает значение «Истина».
-символ процента (%) — для обозначения любой произвольной последовательности символов;
-остальные символы, заданные в шаблоне, обозначают самих себя.
Предикат сравнения с неопределенным значением IS NULL. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:
< имя атрибута >IS NULL и < имя атрибута > IS NOT NULL. Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение «Истина» ( TRUE ), а предикат IS NOT NULL — «Ложь» ( FALSE ), в противном случае предикат IS NULL принимает значение «Ложь», а предикат IS NOT NULL принимает значение «Истина».
Слайд 6Введение Null -значений вызвало необходимость модификации классической двузначной логики и превращения ее
Введение Null -значений вызвало необходимость модификации классической двузначной логики и превращения ее

в трехзначную. Все логические операции, производимые с неопределенными значениями, подчиняются этой логике в соответствии с заданной таблицей истинности:
Слайд 7Предикаты существования EXIST и несуществования NOT EXIST . Эти предикаты относятся к
Предикаты существования EXIST и несуществования NOT EXIST . Эти предикаты относятся к

встроенным подзапросам.
SELECT — ключевое слово, которое сообщает СУБД, что эта команда — запрос. Все запросы начинаются этим словом с доследующим пробелом. За ним может следовать способ выборки — с удалением дубликатов ( DISTINCT ) или без удаления ( ALL , подразумевается по умолчанию). Затем следует список перечисленных через запятую столбцов, которые выбираются запросом из таблиц, или символ '*' (звездочка) для выбора всей строки.
FROM — ключевое слово, подобно SELECT , которое должно быть представлено в каждом запросе. Оно сопровождается пробелом и затем именами таблиц, используемых в качестве источника информации. Таблицам можно присвоить имена-псевдонимы, что бывает полезно для осуществления операции соединения таблицы с самой собою или для доступа из вложенного подзапроса к текущей записи внешнего запроса
SELECT — ключевое слово, которое сообщает СУБД, что эта команда — запрос. Все запросы начинаются этим словом с доследующим пробелом. За ним может следовать способ выборки — с удалением дубликатов ( DISTINCT ) или без удаления ( ALL , подразумевается по умолчанию). Затем следует список перечисленных через запятую столбцов, которые выбираются запросом из таблиц, или символ '*' (звездочка) для выбора всей строки.
FROM — ключевое слово, подобно SELECT , которое должно быть представлено в каждом запросе. Оно сопровождается пробелом и затем именами таблиц, используемых в качестве источника информации. Таблицам можно присвоить имена-псевдонимы, что бывает полезно для осуществления операции соединения таблицы с самой собою или для доступа из вложенного подзапроса к текущей записи внешнего запроса
Слайд 8Все последующие разделы оператора SELECT являются необязательными.
Самый простой запрос SELECT без
Все последующие разделы оператора SELECT являются необязательными.
Самый простой запрос SELECT без

необязательных частей соответствует просто декартову произведению.
Например, выражение SELECT * FROM Rl, R 2
соответствует декартову произведению таблиц R 1 и R 2
Выражение
SELECT Rl.A, R2.B FROM Rl, R 2
соответствует проекции декартова произведения двух таблиц на два столбца А из таблицы R 1 и В из таблицы R 2, при этом дубликаты всех строк сохранены, в отличие от операции проектирования в реляционной алгебре, где при проектировании по умолчанию все дубликаты кортежей уничтожаются.
WHERE — ключевое слово, за которым следует предикат — условие, налагаемое на запись в таблице, которому она должна удовлетворять, чтобы попасть в выборку, аналогично операции селекции в реляционной алгебре.
Например, выражение SELECT * FROM Rl, R 2
соответствует декартову произведению таблиц R 1 и R 2
Выражение
SELECT Rl.A, R2.B FROM Rl, R 2
соответствует проекции декартова произведения двух таблиц на два столбца А из таблицы R 1 и В из таблицы R 2, при этом дубликаты всех строк сохранены, в отличие от операции проектирования в реляционной алгебре, где при проектировании по умолчанию все дубликаты кортежей уничтожаются.
WHERE — ключевое слово, за которым следует предикат — условие, налагаемое на запись в таблице, которому она должна удовлетворять, чтобы попасть в выборку, аналогично операции селекции в реляционной алгебре.
Слайд 9Примеры
Вывести список всех групп (без повторений), где должны пройти экзамены.
R1= (ФИО,
Примеры
Вывести список всех групп (без повторений), где должны пройти экзамены.
R1= (ФИО,

Дисциплина, Оценка); R 2 = (ФИО, Группа);
R3=(Группы, Дисциплина )
SELECT DISTINCT Группы FROM R3
Результат:
Вывести список студентов, которые сдали экзамен по дисциплине «Базы данных» на «отлично».
SELECT ФИО
FROM R 1
WHERE Дисциплина = " Базы данных " AND Оценка = 5
Вывести список всех студентов, которым надо сдавать экзамены с указанием названий дисциплин, по которым должны проводиться эти экзамены.
SELECT ФИО , Дисциплина
FROM R2.R3
WHERE R2.Группа =R 2.Группа
R3=(Группы, Дисциплина )
SELECT DISTINCT Группы FROM R3
Результат:
Вывести список студентов, которые сдали экзамен по дисциплине «Базы данных» на «отлично».
SELECT ФИО
FROM R 1
WHERE Дисциплина = " Базы данных " AND Оценка = 5
Вывести список всех студентов, которым надо сдавать экзамены с указанием названий дисциплин, по которым должны проводиться эти экзамены.
SELECT ФИО , Дисциплина
FROM R2.R3
WHERE R2.Группа =R 2.Группа
- Предыдущая
Актуальные тенденции моды в профессииСледующая -
Спецкурс. Философия помладше