Submit Search
Upload
Управление данными (sql)
•
Download as PPTX, PDF
•
3 likes
•
2,973 views
Ural Federal University named after First President of Russia B.N. Yeltsin
Follow
Лекции по курсу "Управление данными". Автор Владислав Лавров (vlavrov.com)
Read less
Read more
Education
Technology
Report
Share
Report
Share
1 of 74
Download now
Recommended
Управление данными (реляционная модель)
Управление данными (реляционная модель)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (дополнительно)
Управление данными (дополнительно)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (модели данных)
Управление данными (модели данных)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (Введение в СУБД)
Управление данными (Введение в СУБД)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (литература)
Управление данными (литература)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными. Основы проектирования БД
Управление данными. Основы проектирования БД
Ural Federal University named after First President of Russia B.N. Yeltsin
Recommended
Управление данными (реляционная модель)
Управление данными (реляционная модель)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (дополнительно)
Управление данными (дополнительно)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (модели данных)
Управление данными (модели данных)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (Введение в СУБД)
Управление данными (Введение в СУБД)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (литература)
Управление данными (литература)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)
Ural Federal University named after First President of Russia B.N. Yeltsin
Управление данными. Основы проектирования БД
Управление данными. Основы проектирования БД
Ural Federal University named after First President of Russia B.N. Yeltsin
О.В. Сухорослов "Распределенные хранилища данных"
О.В. Сухорослов "Распределенные хранилища данных"
Yandex
Olap и oltp технологии
Olap и oltp технологии
Ilya Ternovoy
Основы OLAP. Вебинар Workaround в Softengi
Основы OLAP. Вебинар Workaround в Softengi
Softengi
Информатика (прикладное ПО)
Информатика (прикладное ПО)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (рекомендуемые информационные ресурсы)
Информатика (рекомендуемые информационные ресурсы)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (СУБД)
Информатика (СУБД)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (эффективный поиск в Интернет)
Информатика (эффективный поиск в Интернет)
Ural Federal University named after First President of Russia B.N. Yeltsin
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минут
SkillFactory
базы данных
базы данных
Алексей Орловский
Konspekt
Konspekt
Artem
Data Destribution service OMG standart
Data Destribution service OMG standart
Sergei Seleznev
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Mail.ru Group
Информатика (устройство ПК)
Информатика (устройство ПК)
Ural Federal University named after First President of Russia B.N. Yeltsin
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов Oracle
BAKOTECH
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
Igor Shkulipa
Информатика (архитектура ПО)
Информатика (архитектура ПО)
Ural Federal University named after First President of Russia B.N. Yeltsin
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
7bits
Информатика (архитектура)
Информатика (архитектура)
Ural Federal University named after First President of Russia B.N. Yeltsin
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
mikhaelsmirnov
базы данных в Delphi
базы данных в Delphi
Aeka227
Управление данными (транзакции)
Управление данными (транзакции)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)
Ural Federal University named after First President of Russia B.N. Yeltsin
More Related Content
What's hot
О.В. Сухорослов "Распределенные хранилища данных"
О.В. Сухорослов "Распределенные хранилища данных"
Yandex
Olap и oltp технологии
Olap и oltp технологии
Ilya Ternovoy
Основы OLAP. Вебинар Workaround в Softengi
Основы OLAP. Вебинар Workaround в Softengi
Softengi
Информатика (прикладное ПО)
Информатика (прикладное ПО)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (рекомендуемые информационные ресурсы)
Информатика (рекомендуемые информационные ресурсы)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (СУБД)
Информатика (СУБД)
Ural Federal University named after First President of Russia B.N. Yeltsin
Информатика (эффективный поиск в Интернет)
Информатика (эффективный поиск в Интернет)
Ural Federal University named after First President of Russia B.N. Yeltsin
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минут
SkillFactory
базы данных
базы данных
Алексей Орловский
Konspekt
Konspekt
Artem
Data Destribution service OMG standart
Data Destribution service OMG standart
Sergei Seleznev
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Mail.ru Group
Информатика (устройство ПК)
Информатика (устройство ПК)
Ural Federal University named after First President of Russia B.N. Yeltsin
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов Oracle
BAKOTECH
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
Igor Shkulipa
Информатика (архитектура ПО)
Информатика (архитектура ПО)
Ural Federal University named after First President of Russia B.N. Yeltsin
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
7bits
Информатика (архитектура)
Информатика (архитектура)
Ural Federal University named after First President of Russia B.N. Yeltsin
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
mikhaelsmirnov
базы данных в Delphi
базы данных в Delphi
Aeka227
What's hot
(20)
О.В. Сухорослов "Распределенные хранилища данных"
О.В. Сухорослов "Распределенные хранилища данных"
Olap и oltp технологии
Olap и oltp технологии
Основы OLAP. Вебинар Workaround в Softengi
Основы OLAP. Вебинар Workaround в Softengi
Информатика (прикладное ПО)
Информатика (прикладное ПО)
Информатика (рекомендуемые информационные ресурсы)
Информатика (рекомендуемые информационные ресурсы)
Информатика (СУБД)
Информатика (СУБД)
Информатика (эффективный поиск в Интернет)
Информатика (эффективный поиск в Интернет)
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минут
базы данных
базы данных
Konspekt
Konspekt
Data Destribution service OMG standart
Data Destribution service OMG standart
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Информатика (устройство ПК)
Информатика (устройство ПК)
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов Oracle
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
Информатика (архитектура ПО)
Информатика (архитектура ПО)
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Информатика (архитектура)
Информатика (архитектура)
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
базы данных в Delphi
базы данных в Delphi
Viewers also liked
Управление данными (транзакции)
Управление данными (транзакции)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (общие принципы разработки)
МиСПИСиТ (общие принципы разработки)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (введение)
МиСПИСиТ (введение)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (структура)
МиСПИСиТ (структура)
Ural Federal University named after First President of Russia B.N. Yeltsin
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Ural Federal University named after First President of Russia B.N. Yeltsin
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (жизненный цикл)
МиСПИСиТ (жизненный цикл)
Ural Federal University named after First President of Russia B.N. Yeltsin
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
Ural Federal University named after First President of Russia B.N. Yeltsin
3. Общая характеристика АСУ
3. Общая характеристика АСУ
Ural Federal University named after First President of Russia B.N. Yeltsin
Язык программирования C#
Язык программирования C#
Dmitri Soshnikov
Лекция 1. Введение в Android.
Лекция 1. Введение в Android.
Александр Брич
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
Viewers also liked
(18)
Управление данными (транзакции)
Управление данными (транзакции)
МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)
МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)
МиСПИСиТ (общие принципы разработки)
МиСПИСиТ (общие принципы разработки)
МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (введение)
МиСПИСиТ (введение)
МиСПИСиТ (структура)
МиСПИСиТ (структура)
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)
МиСПИСиТ (жизненный цикл)
МиСПИСиТ (жизненный цикл)
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
3. Общая характеристика АСУ
3. Общая характеристика АСУ
Язык программирования C#
Язык программирования C#
Лекция 1. Введение в Android.
Лекция 1. Введение в Android.
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Similar to Управление данными (sql)
0041
0041
JIuc
0039
0039
JIuc
0044
0044
JIuc
Базы данных лекция №7
Базы данных лекция №7
Vitaliy Pak
Стажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данных
7bits
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
Александр Брич
Введение в Oracle
Введение в Oracle
Alexander Rusetsky
Управление Данными. Лекция 7
Управление Данными. Лекция 7
Dmitriy Krukov
Lekcia9
Lekcia9
Aigerim Serubai
лабораторная работа 2
лабораторная работа 2
student_kai
005
005
JIuc
Drupal Migrate
Drupal Migrate
Andrii Podanenko
Использование Sedna в WEB
Использование Sedna в WEB
Alexandre Kalendarev
JDBC
JDBC
Unguryan Vitaliy
Embarcadero All-Access
Embarcadero All-Access
Serghei Urban
My sql 0
My sql 0
Vladimir Burdaev
10 субд
10 субд
Evgeniy Golendyhin
лекция 2
лекция 2
student_kai
Microsoft access 2007
Microsoft access 2007
Andrey Dolinin
Microsoft access 2007
Microsoft access 2007
Andrey Dolinin
Similar to Управление данными (sql)
(20)
0041
0041
0039
0039
0044
0044
Базы данных лекция №7
Базы данных лекция №7
Стажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данных
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
Введение в Oracle
Введение в Oracle
Управление Данными. Лекция 7
Управление Данными. Лекция 7
Lekcia9
Lekcia9
лабораторная работа 2
лабораторная работа 2
005
005
Drupal Migrate
Drupal Migrate
Использование Sedna в WEB
Использование Sedna в WEB
JDBC
JDBC
Embarcadero All-Access
Embarcadero All-Access
My sql 0
My sql 0
10 субд
10 субд
лекция 2
лекция 2
Microsoft access 2007
Microsoft access 2007
Microsoft access 2007
Microsoft access 2007
More from Ural Federal University named after First President of Russia B.N. Yeltsin
2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
Ural Federal University named after First President of Russia B.N. Yeltsin
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
Ural Federal University named after First President of Russia B.N. Yeltsin
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
Ural Federal University named after First President of Russia B.N. Yeltsin
Введение в методы agile
Введение в методы agile
Ural Federal University named after First President of Russia B.N. Yeltsin
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
Ural Federal University named after First President of Russia B.N. Yeltsin
Методоллогии Agile
Методоллогии Agile
Ural Federal University named after First President of Russia B.N. Yeltsin
3. Информация и ее роль
3. Информация и ее роль
Ural Federal University named after First President of Russia B.N. Yeltsin
Наследование и полиморфизм
Наследование и полиморфизм
Ural Federal University named after First President of Russia B.N. Yeltsin
Классы и объекты С#
Классы и объекты С#
Ural Federal University named after First President of Russia B.N. Yeltsin
Составные части объектного подхода
Составные части объектного подхода
Ural Federal University named after First President of Russia B.N. Yeltsin
Интерфейсы
Интерфейсы
Ural Federal University named after First President of Russia B.N. Yeltsin
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
Ural Federal University named after First President of Russia B.N. Yeltsin
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
Ural Federal University named after First President of Russia B.N. Yeltsin
More from Ural Federal University named after First President of Russia B.N. Yeltsin
(20)
2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
Введение в методы agile
Введение в методы agile
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
Методоллогии Agile
Методоллогии Agile
3. Информация и ее роль
3. Информация и ее роль
Наследование и полиморфизм
Наследование и полиморфизм
Классы и объекты С#
Классы и объекты С#
Составные части объектного подхода
Составные части объектного подхода
Интерфейсы
Интерфейсы
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
Управление данными (sql)
1.
1 Управление данными Часть 4. Язык
SQL (©) Владислав Лавров, vlavrov.com
2.
2 4.1. История развития
SQL SQL (Structured Query Language) - это сокращенное название структурированного языка запросов, предоставляющего средства создания и обработки данных в реляционных БД 1970 – доктор Эдгар Кодд создаёт модель реляционной базы данных (опубликована статья «Реляционная модель для больших банков совместно используемых данных» («A Relational Model of Data for Large Shared Data Banks»)) 1974 – начинается разработка проекта System/R компании IBM 1974 – первая статья с описанием языка SEQUEL (Structured English Query Language) 1978 – опытная эксплуатация проекта System/R 1979 – появляется первая коммерческая реляционная СУБД компании Oracle 1981 – компания Relation Technology выпускает СУБД Ingres 1981 – компания IBM создает СУБД SQL/DS 1982 – ANSI формирует комитет по стандартизации языка SQL 1983 – компания IBM объявляет о создании СУБД DB2 1986 – ANSI принимает стандарт SQL-1 Этапы развития языка SQL (©) Владислав Лавров, vlavrov.com
3.
3 1986 – компания
Sybase создает реляционную СУБД для обработки транзакций 1987 – ISO одобряет стандарт SQL-1 1988 – компании Ashton-Tate и Microsoft объявляют о выпуске СУБД SQL Server для операционной системы OS/2 1989 – опубликован первый тест производительности TPC (TPC-A) 1990 – опубликован тест производительности TPC-B 1991 – консорциум SQL Access Group публикует спецификацию доступа к базам данных 1991 – компания Microsoft публикует спецификация протокола ODBC (Open DataBase Connectivity) 1992 – ANSI принимает стандарт SQL-2 1992 – опубликован тест производительности TPC-C (для OLTP-систем, Online Transaction Processing). 1993 – первые поставки систем обслуживания хранилищ данных 1993 – первые поставки программных продуктов, поддерживающих протокол ODBC 1994 – опубликован тест производительности TPC-D (для систем поддержки принятия решений) 1994 – коммерческие поставки серверов баз данных, поддерживающих параллельную обработку Этапы развития языка SQL (продолжение) (©) Владислав Лавров, vlavrov.com
4.
4 1996 – опубликован
стандарт API-функций для доступа к базам данных OLAP и тест производительности OLAP-систем (OnLine Analytical Processing) 1997 – компания IBM выпускает СУБД DB2 Universal Database, унифицировав ее архитектуру для работы на платформах других поставщиков 1998 – компания Microsoft выпустила СУБД SQL Server 7, обеспечив поддержку корпоративных баз данных для платформы Windows NT 1998 – выпущена СУБД Oracle 8i, ознаменовавшая отход от архитектуры клиент/сервер и обеспечивающая интеграцию баз данных с Internet 1999 – ANSI/ISO опубликовали стандарт SQL-3. Добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности. Этапы развития языка SQL (продолжение) (©) Владислав Лавров, vlavrov.com
5.
5 2003 – ANSI/ISO
опубликовали стандарт SQL:2003. Введены расширения для работы с XML-данными, оконные функции (применяемые для работы с OLAP-базами данных), генераторы последовательностей и основанные на них типы данных. 2006 – ANSI/ISO опубликовали стандарт SQL:2006. Функциональность работы с XML- данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery. 2008 – ANSI/ISO опубликовали стандарт SQL:2008. Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL:2003 Этапы развития языка SQL (продолжение) (©) Владислав Лавров, vlavrov.com
6.
6 4.2. Функциональные категории
команд SQL Интерактивный SQL используется для функционирования непосредственно в базе данных, чтобы производить вывод информации для использования ее пользователем. Вложенный SQL состоит из команд SQL помещенных внутри программ, которые обычно написаны на некотором другом языке (типа Паскаля). Формы языка SQL Функциональные категории команд языка SQL DDL (Data Definition Language, Язык Определения Данных) – состоит из команд которые создают объекты (таблицы, индексы, представления и так далее ) в базе данных DML (Data Manipulation Language, Язык Манипулирования Данными) – это набор команд, которые определяют какие значения представлены в таблицах в любой момент времени, а также позволяют помещать, изменять и удалять данные из таблиц БД; DCL (Data Control Language, Язык Управления Данными) – состоит из средств, которые управляют выполнением транзакций, а также определяют разрешить ли пользователю выполнять определенные действия или нет. (©) Владислав Лавров, vlavrov.com
7.
7 Операторы определения данных
DDL (©) Владислав Лавров, vlavrov.com
8.
8 Операторы манипулирования данными
DML (©) Владислав Лавров, vlavrov.com
9.
9 Операторы управления данными
DCL (©) Владислав Лавров, vlavrov.com
10.
10 Операторы управления данными
DCL (продолжение) (©) Владислав Лавров, vlavrov.com
11.
11 4.3. Основные возможности
SQL • предложения определения данных; • запросы на выбор данных; • предложения модификации данных; • предложения управления данными Кроме того, он предоставляет возможность выполнять в этих предложениях: • арифметические вычисления (включая разнообразные функциональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов; • упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея; • создание представлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных; • запоминание выводимого по запросу содержимого таблицы, нескольких таблиц или представления в другой таблице (реляционная операция присваивания). • группирование (агрегатирование) данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и т.п. (©) Владислав Лавров, vlavrov.com
12.
12 4.4. Достоинства языка
SQL • стандартность языка SQL • возможность переноса с одной вычислительной системы на другую • реляционная основа языка • возможность создания интерактивных запросов • возможность программного доступа к БД • обеспечение различного представления данных • возможность динамического изменения и расширения структуры БД • поддержка архитектуры клиент/сервер (©) Владислав Лавров, vlavrov.com
13.
13 4.5. Управление базами
данных с помощью SQL • всякому столбцу таблицы присвоено имя, которое должно быть уникальным для этой таблицы; • столбцы таблицы упорядочиваются слева направо, т.е. столбец 1, столбец 2, ..., столбец n. • строки таблицы не упорядочены (их последовательность определяется лишь последовательностью ввода в таблицу); • в поле на пересечении строки и столбца любой таблицы всегда имеется только одно значение данных и никогда не должно быть множества значений • всем строкам таблицы соответствует одно и то же множество столбцов, хотя в определённых столбцах любая строка может содержать пустые значения (NULL-значения), т.е. может не иметь значений для этих столбцов; • все строки таблицы обязательно отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку такой таблицы; • при выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию. (©) Владислав Лавров, vlavrov.com
14.
14 4.6. Типы данных
в SQL CHARACTER(n), CHAR(n) (n – число символов 0 < n < 254) Строки символов постоянной длины VARCHAR(n) Строки символов переменной длины INTEGER, INT SMALLINT Целые числа Десятичные числа DECIMAL(p,q), DEC(p,q) (0 < p < 16, q < p) Малые целые числа FLOAT (n) (n – число байтов ) Вещественное число с плавающей запятой REAL Вещественное число с плавающей запятой низкой точности DOUBLE PRECISION Вещественное число с плавающей запятой высокой точности (©) Владислав Лавров, vlavrov.com
15.
15 Типы данных в
SQL (продолжение) DATE дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy) TIME время в формате, определяемом специальной командой (по умолчанию hh.mm.ss) DATETIME комбинация даты и времени MONEY деньги (©) Владислав Лавров, vlavrov.com
16.
16 4.7. Определение таблиц
в SQL Пользователь (запрос с терминала или прикладной программы) SQL-запрос Виртуальная таблица Рабочая Представление Базовая таблица Базовая таблица Базовая таблица Сервер базы данных Реальная таблица Хранимая таблица База данных в восприятии пользователя (©) Владислав Лавров, vlavrov.com
17.
17 4.7.1. Команда создания
таблицы CREATE TABLE < table name > ( { < column name > < data type > [ < size > ] [ < colconstr > ... ] } , ... ) ; [ < tabconstr > ] , ... ) ; < table name > - имя таблицы создаваемой этой командой < column name > - имя столбца таблицы < data type > - тип данных, который может содержаться в столбце. Может быть любым из следующих: INTEGER (ЦЕЛОЕ ЧИСЛО), CHARACTER (СИМВОЛЬНОЕ), DECIMAL (ДЕСЯТИЧНОЕ), NUMERIC (ЧИСЛОВОЕ), SMALLINT (НАИМЕНЬШЕЕ ЦЕЛОЕ) FLOAT (С ПЛАВАЮЩЕЙ ТОЧКОЙ) REAL (РЕАЛЬНОЕ), DOUBLE PRECISION (УДВОЕННАЯ ТОЧНОСТЬ С ПЛАВАЮЩЕЙ ТОЧКОЙ), LONG * (ДЛИННОЕ *), VARCHAR * (ПЕРЕМЕННОЕ СИМВОЛЬНОЕ) *, DATE (ДАТА *), TIME (ВРЕМЯ) ( * - указывает на нестандартный для SQL тип данных) (©) Владислав Лавров, vlavrov.com
18.
18 Команда создания таблицы
(продолжение) < size > - размер поля. Его значение зависит от <data type> < colconstr > - ограничение столбца. Может быть любым из следующих: NOT NULL (НЕ НУЛЕВОЙ), UNIQUE (УНИКАЛЬНЫЙ), PRIMARY KEY (ПЕРВИЧНЫЙ КЛЮЧ), CHECK(<predicate>) (ПРОВЕРКА предиката), DEFAULT = (ПО УМОЛЧАНИЮ = <value expression> значимому выражению) REFERENCES <table name> (ССЫЛКА НА имя таблицы [(<column name>, ... )] [( имя столбца) ] ) < tabconstr > - ограничение таблицы. Может быть любым из следующих: UNIQUE (УНИКАЛЬНЫЙ), PRIMARY KEY (ПЕРВИЧНЫЙ КЛЮЧ), CHECK(<predicate>) (ПРОВЕРКА предиката), FOREIGN KEY(<column name>) (ВНЕШНИЙ КЛЮЧ) REFERENCES <table name> (ССЫЛКА НА имя таблицы [(<column name>, ... )] [( имя столбца) ] ) (©) Владислав Лавров, vlavrov.com
19.
19 Информационные сущности БД
«Рембригада» РАБОТНИКИ Табельный_номер ФИО Специальность Почасовая_ставка Бригадир ОБЪЕКТЫ Номер_объекта Адрес_объекта Тип_объекта Уровень_сложности РАБОТА Табельный_номер Номер_объекта Дата_начала Количество_дней 1 1 ¥ ¥ (©) Владислав Лавров, vlavrov.com
20.
20 Пример определения таблиц
для БД «Рембригада» CREATE TABLE РАБОТНИКИ ( ТАБЕЛЬНЫЙ_НОМЕР INTEGER NOT NULL PRIMARY KEY, ФИО CHARACTER (15), СПЕЦИАЛЬНОСТЬ CHARACTER (15), ПОЧАСОВАЯ_СТАВКА DECIMAL (6,1), БРИГАДИР INTEGER ) CREATE TABLE ОБЪЕКТЫ ( НОМЕР_ОБЪЕКТА INTEGER NOT NULL PRIMARY KEY, АДРЕС_ОБЪЕКТА CHARACTER (15), ТИП_ОБЪЕКТА CHARACTER (9) DEFAULT ‘офис’ CHECK (TYPE IN (‘офис’, ’склад’, ’магазин’, ’жилой дом’ ) ), УРОВЕНЬ_СЛОЖНОСТИ INTEGER DEFAULT 1 CHECK (УРОВЕНЬ_СЛОЖНОСТИ > 0 AND УРОВЕНЬ_СЛОЖНОСТИ < 5) ) CREATE TABLE РАБОТА ( ТАБЕЛЬНЫЙ_НОМЕР INTEGER NOT NULL, НОМЕР_ОБЪЕКТА INTEGER NOT NULL, ДАТА_НАЧАЛА DATE, КОЛИЧЕСТВО_ДНЕЙ INTEGER, PRIMARY KEY (ТАБЕЛЬНЫЙ_НОМЕР, НОМЕР_ОБЪЕКТА), FOREIGN KEY ТАБЕЛЬНЫЙ_НОМЕР REFERENCES РАБОТНИКИ ON DELETE CASCADE, FOREIGN KEY НОМЕР_ОБЪЕКТА REFERENCES ОБЪЕКТЫ ON DELETE CASCADE )(©) Владислав Лавров, vlavrov.com
21.
21 4.7.2. Изменение таблицы
после того как она была создана ALTER TABLE < table name > ADD < column name > < data type > < size > ; • Столбец будет добавлен со значением NULL для всех строк таблицы. • Новый столбец станет последним по порядку столбцом таблицы. • Можно добавить сразу несколько новых столбцов, отделив их запятыми, в одной команде. • Имеется возможность удалять или изменять столбцы. (©) Владислав Лавров, vlavrov.com
22.
22 4.7.3. Удаление таблиц DROP
TABLE < table name >; • Чтобы иметь возможность удалить таблицу, пользователь должен иметь права владельца (т.е. быть создателем) этой таблицы. • Прежде, чем удалить таблицу из базы данных SQL потребует очистить ее от данных. (©) Владислав Лавров, vlavrov.com
23.
23 4.7.4. Ограничение значений
данных в таблицах Виды ограничений • Ограничение столбца применяется только к индивидуальным столбцам • Ограничение таблицы применяется к группам из одного и более столбцов (©) Владислав Лавров, vlavrov.com
24.
24 Объявление ограничений В таблице
РАБОТНИКИ ТАБЕЛЬНЫЙ_НОМЕР INTEGER NOT NULL PRIMARY KEY ТИП_ОБЪЕКТА CHARACTER (9) DEFAULT ‘офис’ CHECK (TYPE IN (‘офис’, ’склад’, ’магазин’, ’жилой дом’ ) ), УРОВЕНЬ_СЛОЖНОСТИ INTEGER DEFAULT 1 CHECK (УРОВЕНЬ_СЛОЖНОСТИ > 0 AND УРОВЕНЬ_СЛОЖНОСТИ < 5) В таблице ОБЪЕКТЫ PRIMARY KEY (ТАБЕЛЬНЫЙ_НОМЕР, НОМЕР_ОБЪЕКТА), FOREIGN KEY ТАБЕЛЬНЫЙ_НОМЕР REFERENCES РАБОТНИКИ ON DELETE CASCADE, FOREIGN KEY НОМЕР_ОБЪЕКТА REFERENCES ОБЪЕКТЫ ON DELETE CASCADE В таблице РАБОТА (©) Владислав Лавров, vlavrov.com
25.
25 Опции команды ON
DELETE • CASCADE (распространить) • SET NULL (установить пустое значение) • SET DEFAULT (установить значение по умолчанию) (©) Владислав Лавров, vlavrov.com
26.
26 4.8. Манипуляция данными 4.8.1.
Простые запросы Простой запрос – запрос, который обращается только к одной таблице БД SELECT * | { [ DISTINCT | ALL ] < value expression > , ... } FROM { < table name > [ < alias > ] } , ... [ WHERE < predicate > ] [ GROUP BY { < column name > | < integer > } , ... ] [ HAVING < predicate > ] [ ORDER BY { < column name > | < integer > } , ... ] (©) Владислав Лавров, vlavrov.com
27.
27 Простые запросы (продолжение) <
value expression > - выражение которое производит значение. Оно может включать в себя или содержать <column name>. < table name > - имя или синоним таблицы или представления. < alias > - временный синоним для <table name>, определенный в этой таблице и используемый только в этой команде < predicate > - условие, которое может быть верным или неверным для каждой строки или комбинации строк таблицы в предложении FROM. < column name > - имя столбца в таблице < integer > - число с десятичной точкой, которое показывает <value expression> в предложении SELECT с помощью идентификации его местоположения в этом предложении. (©) Владислав Лавров, vlavrov.com
28.
28 Некоторые пояснения по
синтаксису запроса SELECT (выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями FROM (из) перечисленных таблиц, в которых расположены эти столбцы WHERE (где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк GROUP BY (группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT встроенные SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение) HAVING (имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп (©) Владислав Лавров, vlavrov.com
29.
29 Примеры простых запросов Кто
работает штукатурами? SELECT ФИО FROM РАБОТНИКИ WHERE СПЕЦИАЛЬНОСТЬ = ’штукатур’ БД Результат Запрос (©) Владислав Лавров, vlavrov.com
30.
30 Примеры простых запросов Привести
все данные об объектах типа «офис» SELECT * FROM ОБЪЕКТЫ WHERE ТИП_ОБЪЕКТА = ’офис’ БД Результат Запрос Звездочка (*) в команде SELECT означает «строка целиком» (©) Владислав Лавров, vlavrov.com
31.
31 Примеры простых запросов Какова
недельная зарплата каждого электрика (40-часовая рабочая неделя)? SELECT ФИО, ‘ Недельная зарплата = ’, 40 * Почасовая_ставка FROM РАБОТНИКИ WHERE СПЕЦИАЛЬНОСТЬ = ’электрик ’ ORDER BY ФИО БД Результат Запрос (©) Владислав Лавров, vlavrov.com
32.
32 Примеры простых запросов У
кого почасовая ставка составляет от 60 до 70 руб.? SELECT * FROM РАБОТНИКИ WHERE Почасовая_ставка > = 60 AND Почасовая_ставка < = 70 БД Результат Запрос Для сравнения столбцов с другими столбцами или с константами могут использоваться операторы сравнения (= | <> | < | <= | > | >=) (©) Владислав Лавров, vlavrov.com
33.
33 Операторы условия в
запросах BETWEEN (между) – используется для сравнения некоторой величины с двумя другими, первая из которых меньше второй, если сравниваемая величина может быть равна каждой из данных величин или любому значению между ними. Существует и противоположный предикат NOT BETWEEN, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы. БД Результат Запрос У кого почасовая ставка составляет от 60 до 70 руб.? SELECT * FROM РАБОТНИКИ WHERE Почасовая_ставка BETWEEN 60 AND 70 (©) Владислав Лавров, vlavrov.com
34.
34 Операторы условия в
запросах (продолжение) IN (принадлежит) – условие фразы WHERE считается истинным, если значение принадлежит множеству, состоящему из констант, перечисленных в скобках. Одновременно существует противоположный предикат NOT IN, который истинен тогда, когда сравниваемое значение не входит в заданное множество. БД Результат Запрос Перечислить штукатуров и кровельщиков. SELECT * FROM РАБОТНИКИ WHERE Специальность IN (‘штукатур’, ‘кровельщик’) (©) Владислав Лавров, vlavrov.com
35.
35 Операторы условия в
запросах (продолжение) LIKE (похоже на) – требуется для сравнения символьных переменных с константами. LIKE применим только к полям типа CHAR или VARCHAR, с которыми он используется чтобы находить подстроки. Т.е. он ищет поле символа чтобы видеть, совпадает ли с условием часть его строки. В качестве условия он использует символы шаблона - специальные символы которые могут соответствовать чему-нибудь. Имеются два типа символов шаблона, используемых с LIKE: _ (подчеркивание) – замещает ровно один неопределенный символ, % (процент) – замещает произвольное число символов, начиная с нуля. БД Результат Запрос Перечислить работников, у которых название специальности начинается с фразы «элек» SELECT * FROM РАБОТНИКИ WHERE Специальность LIKE ( ‘элек%’ ) (©) Владислав Лавров, vlavrov.com
36.
36 Операторы условия в
запросах (продолжение) IS NULL – оператор сравнения с неопределенным значением (неизвестным на данный момент времени) Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение. При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. NULL1 ≠ NULL2 (©) Владислав Лавров, vlavrov.com
37.
37 Таблица истинности логических
выражений AND (и) – когда должны удовлетворяться оба разделяемых с помощью AND условия; OR (или) – когда должно удовлетворяться одно из разделяемых с помощью OR условий; AND NOT (и не) – когда должно удовлетворяться первое условие и не должно второе; OR NOT (или не) – когда или должно удовлетворяться первое условие или не должно удовлетворяться второе. (©) Владислав Лавров, vlavrov.com
38.
38 4.8.2. Многотабличные запросы Рабочие
каких специальностей назначены на объект № 435 ? SELECT СПЕЦИАЛЬНОСТЬ FROM РАБОТНИКИ, РАБОТА WHERE РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР AND НОМЕР_ОБЪЕКТА = 435 БД Результат Запрос (©) Владислав Лавров, vlavrov.com
39.
39 Многотабличные запросы (продолжение) Перечислить
работников, указав имена их бригадиров. SELECT A.ФИО, B.ФИО FROM РАБОТНИКИ А, РАБОТНИКИ B WHERE B.ТАБЕЛЬНЫЙ_НОМЕР = A.БРИГАДИР БД Результат Запрос ФИО работника ФИО бригадира (©) Владислав Лавров, vlavrov.com
40.
40 Многотабличные запросы (продолжение) Перечислить
работников, назначенных на объекты типы «офис». SELECT ФИО FROM РАБОТНИКИ, РАБОТА, ОБЪЕКТЫ WHERE РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР AND РАБОТА.НОМЕР_ОБЪЕКТА = ОБЪЕКТЫ.НОМЕР_ОБЪЕКТА AND ТИП_ОБЪЕКТА = ‘офис’ БД Результат Запрос Пример дубликатов фамилий (©) Владислав Лавров, vlavrov.com
41.
41 Многотабличные запросы (продолжение) Перечислить
работников, назначенных на объекты типы «офис». SELECT DISTINCT ФИО FROM РАБОТНИКИ, РАБОТА, ОБЪЕКТЫ WHERE РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР AND РАБОТА.НОМЕР_ОБЪЕКТА = ОБЪЕКТЫ.НОМЕР_ОБЪЕКТА AND ТИП_ОБЪЕКТА = ‘офис’ БД Результат Запрос DISTINCT – оператор, исключающий повторяющиеся строки Дубликаты строк отсутствуют (©) Владислав Лавров, vlavrov.com
42.
42 Вложенный подзапрос – это
подзапрос, заключенный в круглые скобки и вложенный в WHERE фразу предложения SELECT или других предложений, использующих WHERE фразу. Другими словами, это запрос внутри запроса. 4.8.3. Подзапросы Запрос: Рабочие каких специальностей назначены на объект № 435 ? Вложенный подзапрос Внешний запрос SELECT СПЕЦИАЛЬНОСТЬ FROM РАБОТНИКИ WHERE ТАБЕЛЬНЫЙ_НОМЕР IN ( SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТА WHERE НОМЕР_ОБЪЕКТА = 435 ) 1 2 3 (©) Владислав Лавров, vlavrov.com
43.
43 Простой (некоррелированный) подзапрос –
подзапрос, значение которого не зависит ни от какого внешнего запроса. Простые и коррелированные подзапросы Перечислить работников, назначенных на объекты типа «офис». SELECT ФИО FROM РАБОТНИКИ WHERE ТАБЕЛЬНЫЙ_НОМЕР IN ( SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТА WHERE НОМЕР_ОБЪЕКТА IN ( SELECT НОМЕР_ОБЪЕКТА FROM ОБЪЕКТЫ WHERE ТИП_ОБЪЕКТА = ‘офис’ ) ) БД Результат Запрос Вложенный подзапрос № 2 Вложенный подзапрос № 1 Главный запрос (©) Владислав Лавров, vlavrov.com
44.
44 Коррелированный подзапрос – подзапрос,
результат которого зависит от строки, рассматриваемой главным запросом. Простые и коррелированные подзапросы (продолжение) Перечислить работников, чьи почасовые ставки выше, чем почасовые ставки их бригадиров. SELECT ФИО FROM РАБОТНИКИ А WHERE А.ПОЧАСОВАЯ_СТАВКА > ( SELECT B.ПОЧАСОВАЯ_СТАВКА FROM РАБОТНИКИ B WHERE B.ТАБЕЛЬНЫЙ_НОМЕР = A.БРИГАДИР ) БД Результат Запрос Вложенный подзапрос Главный запрос (©) Владислав Лавров, vlavrov.com
45.
45 4.8.4. Операторы EXISTS
и NOT EXISTS БД Результат Запрос Перечислить работников, не назначенных на объект 435. Пример неправильного запроса SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТА WHERE НОМЕР_ОБЪЕКТА <> 435 Работники, ошибочно попавшие в результат запроса (©) Владислав Лавров, vlavrov.com
46.
46 Операторы EXISTS и
NOT EXISTS (продолжение) БД Результат Запрос Перечислить работников, не назначенных на объект 435. SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТНИКИ WHERE NOT EXISTS ( SELECT * FROM РАБОТА WHERE РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР AND НОМЕР_ОБЪЕКТА = 435 ) (©) Владислав Лавров, vlavrov.com
47.
47 Операторы EXISTS и
NOT EXISTS (продолжение) БД Результат Запрос Перечислить работников, не назначенных на объект 435. Другой способ (использование некоррелированного запроса) SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТНИКИ WHERE ТАБЕЛЬНЫЙ_НОМЕР NOT IN ( SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТА WHERE НОМЕР_ОБЪЕКТА = 435 ) (©) Владислав Лавров, vlavrov.com
48.
48 Операторы EXISTS и
NOT EXISTS (продолжение) БД Результат Запрос Перечислить работников, назначенных на каждое здание. Другая формулировка этого же запроса (двойное отрицание): Перечислить работников, для которых не существует здания, на которое они не назначены. SELECT ТАБЕЛЬНЫЙ_НОМЕР FROM РАБОТНИКИ WHERE NOT EXISTS ( SELECT НОМЕР_ОБЪЕКТА FROM ОБЪЕКТЫ WHERE NOT EXISTS ( SELECT * FROM РАБОТА WHERE РАБОТА.НОМЕР_ОБЪЕКТА = ОБЪЕКТЫ.НОМЕР_ОБЪЕКТА AND РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР ) ) NOT EXISTS является единственным средством решения запросов, содержащих в условии слово «каждый». (©) Владислав Лавров, vlavrov.com
49.
49 Примеры запросов Каковы максимальная
и минимальная почасовые ставки ? Каково среднее число дней работы служащих на объекте 435 ? Каково общее число дней, отведенных на штукатурные работы на объекте 312 ? Сколько всего разных специальностей у работников? 4.8.5. Встроенные функции Для реализации запросов надо использовать встроенные в SQL статистические функции: • SUM (сумма), • AVG (среднее), • COUNT (количество), • MAX (максимум), • MIN (минимум). (©) Владислав Лавров, vlavrov.com
50.
50 Встроенные функции (продолжение) БД Результат Запрос
Каковы максимальная и минимальная почасовые ставки? SELECT MAX ( ПОЧАСОВАЯ_СТАВКА ), MIN ( ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ • Функции MAX и MIN оперируют одним столбцом таблицы. Они выбирают максимальное или минимальное значение соответственно из этого столбца. • Столбец может содержать числовые или строковые значения, либо значения даты/времени. • Результат, возвращаемый этими функциями, имеет точно такой же тип данных, что и сам столбец. (©) Владислав Лавров, vlavrov.com
51.
51 Встроенные функции (продолжение) БД Результат Запрос
Каково общее число дней, отведенных на штукатурные работы на объекте 312 ? SELECT SUM ( КОЛИЧЕСТВО_ДНЕЙ ) FROM РАБОТА, РАБОТНИКИ WHERE РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР AND СПЕЦИАЛЬНОСТЬ = ‘штукатур’ AND НОМЕР_ОБЪЕКТА = 312 • Функция SUM вычисляет сумму всех значений столбца. • Данные, содержащиеся в столбце, должны иметь числовой тип (содержать целые числа, десятичные числа или числа с плавающей запятой или денежные величины). • Результат, возвращаемый функцией SUM, имеет тот же тип данных, что и столбец, однако точность результата может быть выше (©) Владислав Лавров, vlavrov.com
52.
52 Встроенные функции (продолжение) БД Результат Запрос
Каково среднее число дней работы служащих на объекте 435? SELECT AVG ( КОЛИЧЕСТВО_ДНЕЙ ) FROM РАБОТА WHERE НОМЕР_ОБЪЕКТА = 435 • Функция AVG вычисляет среднее всех значений столбца. Вначале она суммирует все значения, содержащиеся в столбце, а затем делит сумму на число этих значений. • Данные, содержащиеся в столбце, должны иметь числовой тип. • Результат может иметь не такой же тип, как столбец. Например, если AVG применить к столбцу целых чисел, то результат будет либо десятичным числом, либо числом с плавающей точкой, в зависимости от СУБД. (©) Владислав Лавров, vlavrov.com
53.
53 Встроенные функции (продолжение) БД Результат Запрос
Сколько всего разных специальностей у работников? SELECT COUNT ( DISTINCT СПЕЦИАЛЬНОСТЬ ) FROM РАБОТНИКИ • Функция COUNT подсчитывает число значений в данном столбце или число строк в таблице. • Когда она считает значения столбца, она используется с DISTINCT чтобы производить подсчет различных числовых значений в данном поле. • Тип данных в столбце может быть любым • Функция COUNT всегда возвращает целый тип данных независимо от типа данных столбцов (©) Владислав Лавров, vlavrov.com
54.
54 Встроенные функции (продолжение) БД Результат Запрос
Сколько всего работников зарегистрировано в базе данных? SELECT COUNT ( * ) FROM РАБОТНИКИ • Чтобы подсчитать общее число строк в таблице, надо использовать функцию COUNT со звездочкой вместо имени поля, в частности COUNT (*) • Функция COUNT со звездочкой включает и NULL, и дубликаты, по этой причине DISTINCT не может быть использован. (©) Владислав Лавров, vlavrov.com
55.
55 Встроенные функции (продолжение) БД Результат Запрос
Какова средняя недельная зарплата рабочих? SELECT AVG ( 40 * ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ Все функции, кроме COUNT, можно использовать с вычисляемыми выражениями. (©) Владислав Лавров, vlavrov.com
56.
56 Встроенные функции (продолжение) БД Результат Запрос
Сколько объектов имеют уровень сложности 3 ? SELECT COUNT ( * ) FROM ОБЪЕКТЫ WHERE УРОВЕНЬ_СЛОЖНОСТИ = 3 Функция COUNT может ссылаться на строку целиком, а не на отдельный столбец. Внимание ! Если в команде SELECT стоит встроенная функция, то больше в этой команде SELECT ничего стоять не может ! Однако фраза SELECT, содержащая встроенную функцию, может быть частью подзапроса. Единственным исключением является команда GROUP BY. (©) Владислав Лавров, vlavrov.com
57.
57 4.8.6. Операторы GROUP
BY и HAVING БД Результат Запрос Для работников каждой специальности рассчитать максимальную почасовую ставку. SELECT СПЕЦИАЛЬНОСТЬ, MAX ( ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ GROUP BY СПЕЦИАЛЬНОСТЬ Фраза GROUP BY означает, что строки должны быть разбиты на группы с общими значениями указанного столбца (столбцов). Фраза GROUP BY используется на практике, когда требуется статистическая информация не об отдельном объекте, а о каждой группе. (©) Владислав Лавров, vlavrov.com
58.
58 Операторы GROUP BY
и HAVING (продолжение) БД Результат Запрос Для каждого типа объектов вычислить среднюю продолжительность работ, начиная с 20.10.2001 г. SELECT НОМЕР_ОБЪЕКТА, AVG(КОЛИЧЕСТВО_ДНЕЙ) FROM РАБОТА WHERE ДАТА_НАЧАЛА >= 20/10/01 GROUP BY НОМЕР_ОБЪЕКТА С фразой GROUP BY можно использовать команду WHERE (©) Владислав Лавров, vlavrov.com
59.
59 Операторы GROUP BY
и HAVING (продолжение) БД Результат Запрос Для каждого типа объектов, на которых работают более одного рабочего, вычислить максимальную продолжительность работ. Рассматривать только те объекты, работы на которых начались после 20.10.2001 г. SELECT НОМЕР_ОБЪЕКТА, MAX(КОЛИЧЕСТВО_ДНЕЙ) FROM РАБОТА WHERE ДАТА_НАЧАЛА >= 20/10/01 GROUP BY НОМЕР_ОБЪЕКТА HAVING COUNT ( ТАБЕЛЬНЫЙ_НОМЕР ) >= 2 Фраза HAVING накладывает условия на группы. Другими словами, чтобы применять условия не только к отдельным строкам, но и к группам строк, созданным командой GROUP BY, используется фраза HAVING. (©) Владислав Лавров, vlavrov.com
60.
60 4.8.7. Встроенные функции
и подзапросы БД Результат Запрос У кого из работников почасовая ставка выше средней? SELECT ФИО FROM РАБОТНИКИ WHERE ПОЧАСОВАЯ_СТАВКА > ( SELECT AVG (ПОЧАСОВАЯ_СТАВКА) FROM РАБОТНИКИ ) Встроенные функции могут использоваться только во фразе SELECT или команде HAVING. Однако фраза SELECT, содержащая встроенную функцию, может быть частью подзапроса. (©) Владислав Лавров, vlavrov.com
61.
61 Встроенные функции и
подзапросы (продолжение) БД Результат Запрос У кого из работников почасовая ставка выше средней почасовой ставки среди подчиненных одного и того же менеджера? SELECT А.ФИО FROM РАБОТНИКИ А WHERE А.ПОЧАСОВАЯ_СТАВКА > ( SELECT AVG ( B.ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ B WHERE B.БРИГАДИР = A.БРИГАДИР ) В коррелированных запросах также могут использоваться встроенный функции (©) Владислав Лавров, vlavrov.com
62.
62 4.8.8. Операции изменения
данных Значения данных могут быть помещены, скорректированы и удалены из полей тремя командами языка SQL из категории DML: • INSERT (вставить), • UPDATE (модифицировать), • DELETE (удалить). (©) Владислав Лавров, vlavrov.com
63.
63 Команда INSERT INSERT INTO
< table name > VALUES ( < value >, < value > . . . ) ; Позволяет вводить в таблицу как отдельные строки путем указания значений каждого столбца, так и множества строк путем формулировки запроса, определяющего вводимы строки. Пример. Ввести строку в таблицу РАБОТА INSERT INTO РАБОТА ( ТАБЕЛЬНЫЙ_НОМЕР, НОМЕР_ОБЪЕКТА, ДАТА_НАЧАЛА ) VALUES ( 1284, 485, 13.11.2001 ) (©) Владислав Лавров, vlavrov.com
64.
64 Команда INSERT (продолжение) Пример. Допустим,
что мы создали новую таблицу с именем ОБЪЕКТЫ_2, состоящую из столбцов НОМЕР_ОБЪЕКТА, ТИП_ОБЪЕКТА и УРОВЕНЬ_СЛОЖНОСТИ, и хотим заполнить эту таблицу строками из таблицы ОБЪЕКТЫ, имеющими УРОВЕНЬ_СЛОЖНСТИ = 3. Реализация запроса. INSERT INTO ОБЪЕКТЫ_2 SELECT НОМЕР_ОБЪЕКТА, ТИП_ОБЪЕКТА, УРОВЕНЬ_СЛОЖНОСТИ FROM ОБЪЕКТЫ WHERE УРОВЕНЬ_СЛОЖНОСТИ = 3 (©) Владислав Лавров, vlavrov.com
65.
65 Команда UPDATE Всегда применяется
ко всем строкам, удовлетворяющим условию выражения WHERE. Если фраза WHERE отсутствует, то операция применяется к каждой строке таблицы. Пример. Повысить на 5 процентов почасовую ставку каждого штукатура. UPDATE РАБОТНИКИ SET ПОЧАСОВАЯ_СТАВКА = 1,05 * ПОЧАСОВАЯ_СТАВКА WHERE СПЕЦИАЛЬНОСТЬ = ‘штукатур’ (©) Владислав Лавров, vlavrov.com
66.
66 Команда DELETE Всегда применяется
ко всем строкам, удовлетворяющим условию выражения WHERE. Если фраза WHERE отсутствует, то удаляются все строки таблицы. Пример. Допустим, что все рабочие, чей бригадир имеет табельный номер 1520, были уволены, и необходимо удалить соответствующие строки из базы данных. DELETE FROM РАБОТНИКИ WHERE БРИГАДИР = 1520 (©) Владислав Лавров, vlavrov.com
67.
67 4.8.9. Определение представлений
данных ПРЕДСТАВЛЕНИЕ (VIEW) – объект данных, который не содержит никаких данных. Это – тип таблицы, чье содержание выбирается из других таблиц с помощью выполнения запроса. Они работают в запросах и операторах DML точно также как и основные таблицы, но не содержат никаких собственных данных. Поскольку значения в этих таблицах меняются, то автоматически, их значения могут быть показаны представлением (©) Владислав Лавров, vlavrov.com
68.
68 Определение представлений данных
(продолжение) Пример. Создать представление данных, показывающее всю информацию о работнике, кроме его почасовой ставки. CREATE VIEW П_РАБОТНИКИ AS SELECT ТАБЕЛЬНЫЙ_НОМЕР, ФИО, СПЕЦИАЛЬНОСТЬ, БРИГАДИР FROM РАБОТНИКИ Спецификация запроса (©) Владислав Лавров, vlavrov.com
69.
69 Определение представлений данных
(продолжение) Пример. Создать представление с информацией об электриках: объекты, на которые они назначены работать, и дата начала работы. CREATE VIEW П_ЭЛЕКТРИКИ AS SELECT ФИО, НОМЕР_ОБЪЕКТА, ДАТА_НАЧАЛА FROM РАБОТНИКИ, РАБОТА WHERE СПЕЦИАЛЬНОСТЬ = ‘электрик’ AND РАБОТНИКИ.ТАБЕЛЬНЫЙ_НОМЕР = РАБОТА.ТАБЕЛЬНЫЙ_НОМЕР (©) Владислав Лавров, vlavrov.com
70.
70 Примеры использования представлений Пример
1. Показать все сведения об электриках и объектах, на которых они поработали. SELECT * FROM П_ЭЛЕКТРИКИ Пример 2. Кто из электриков назначен работать на объект 435 ? SELECT ФИО, ДАТА_НАЧАЛА FROM П_ЭЛЕКТРИКИ WHERE НОМЕР_ОБЪЕКТА = 435 (©) Владислав Лавров, vlavrov.com
71.
71 Примеры использования представлений
(продолжение) Пример 3. Создать представление, в котором реализован запрос, определяющий для работников каждой специальности величину максимальной почасовой ставки. CREATE VIEW П_МАКС_СТАВКА ( СПЕЦИАЛЬНОСТЬ, МАКС_СТАВКА ) AS SELECT СПЕЦИАЛЬНОСТЬ, MAX ( ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ GROUP BY СПЕЦИАЛЬНОСТЬ При определении представления данных можно использовать также операции группировки. (©) Владислав Лавров, vlavrov.com
72.
72 Примеры использования представлений
(продолжение) Пример 4. У работников какой специальности максимальная почасовая ставка превышает 70 рублей ? SELECT СПЕЦИАЛЬНОСТЬ FROM П_МАКС_СТАВКА WHERE МАКС_СТАВКА > 70 Этапы выполнения запроса: 1. Выполнить спецификацию запроса из представления SELECT СПЕЦИАЛЬНОСТЬ, MAX ( ПОЧАСОВАЯ_СТАВКА ) FROM РАБОТНИКИ GROUP BY СПЕЦИАЛЬНОСТЬ 2. Выполнить запрос 1 2 (©) Владислав Лавров, vlavrov.com
73.
73 4.8.10. Ограничения на
обновления представлений данных Внимание! Представление может изменяться командами модификации DML, но модификация не будет воздействовать на само представление. Команды будут на самом деле перенаправлены к базовой таблице. Обновлять представления данных можно только тогда, когда его спецификация запроса такова: • В команде SELECT перечислены только имена столбцов, т.е. нет вычислений и встроенных функций), отсутствует ключевое слово DISTINCT. • В команде FROM стоит ссылка только на одну таблицу. Таблица, на которую ссылается фраза FROM, должна быть либо базовой таблицей, либо обновляемым представлением базы данных • Отсутствуют команды GROUP BY, HAVING. (©) Владислав Лавров, vlavrov.com
74.
74 4.8.11. Удаление представлений
данных DROP VIEW < view name > • нет необходимости сначала удалять всё содержание представления данных как это делается с базовой таблицей, потому что содержание представления не является созданным и сохраняется в течении определенной команды. • пользователь должен являться владельцем (т.е. быть создателем) представления, чтобы иметь возможность удалить его. (©) Владислав Лавров, vlavrov.com
Download now