Разделы презентаций


Многотабличные запросы. Группировка данных. Запросы на создание и обновление данных

Содержание

Связывание таблиц ::= ON ::= [INNER | {{LEFT | RIGHT | FULL } [OUTER] } ] JOIN =, , =, !-, ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина

Слайды и текст этой презентации

Слайд 1Лекция 18 Многотабличные запросы. Группировка данных. Запросы на создание и

обновление данных

Лекция 18  Многотабличные запросы. Группировка данных. Запросы на создание и обновление данных

Слайд 2Связывание таблиц
::=

ON
::=
[INNER |

{{LEFT | RIGHT | FULL } [OUTER] } ] JOIN


=, <, >, <=, >=, !-, <>

ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина


Связывание таблиц ::= 			ON  ::= [INNER | {{LEFT | RIGHT | FULL } [OUTER] } ]

Слайд 3Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по

ключевому полю ID_Дисциплина)
SELECT Наименование, Семестр, Количество_часов
FROM Учебный_план INNER JOIN Дисциплины
ON

Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
WHERE Количество_часов > 60


Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по ключевому полю ID_Дисциплина)SELECT Наименование, Семестр, Количество_часовFROM Учебный_план

Слайд 4Использование ключевого слова LEFT [OUTER]
SELECT Наименование, Семестр, Отчетность
FROM Дисциплины

LEFT OUTER JOIN Учебный_план
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
WHERE (Наименование LIKE

'%информатик%')



Использование ключевого слова LEFT [OUTER] SELECT Наименование, Семестр, ОтчетностьFROM Дисциплины LEFT OUTER JOIN Учебный_план ON Учебный_план.ID_Дисциплина =

Слайд 5Использование ключевого слова RIGHT [OUTER]

SELECT Отчетность, Семестр, Наименование
FROM Учебный_план

RIGHT OUTER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
WHERE (Наименование LIKE

'%информатик%')
Использование ключевого слова RIGHT [OUTER]SELECT Отчетность, Семестр, Наименование FROM Учебный_план RIGHT OUTER JOIN Дисциплины ON Учебный_план.ID_Дисциплина =

Слайд 6Использование раздела WHERE для связывания таблиц
SELECT Наименование, Семестр, Количество_часов
FROM

Учебный_план INNER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
WHERE (Количество_часов >

60) AND (Семестр = 1)
  
SELECT Наименование, Семестр, Количество_часов
FROM Учебный_план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) AND (Количество_часов > 60) AND (Семестр = 1)


LEFT OUTER JOIN *=
RIGHT OUTER JOIN =*


Использование раздела WHERE для связывания таблиц SELECT Наименование, Семестр, Количество_часовFROM Учебный_план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина =

Слайд 7Раздел GROUP BY
GROUP BY [ALL] [,...,n]
AVG() -

вычисляет среднее значение для указанного столбца
COUNT() - подсчитывает количество

строк в группе (при выполнении группировки) или количество строк результата запроса
МАХ() - возвращает максимальное значение в указанном диапазоне
MIN() - возвращает минимальное значение в указанном диапазоне
SUM() - выполняет обычное суммирование значений в казанном диапазоне
Раздел GROUP BY GROUP BY [ALL] [,...,n] AVG() - вычисляет среднее значение для указанного столбца COUNT() -

Слайд 8AVG
функция

AVG функция

Слайд 9COUNT
функция

COUNTфункция

Слайд 10МАХ
MIN
функция

МАХ MIN функция

Слайд 11SUM
функция

SUM функция

Слайд 12Примеры запросов с группировкой
SELECT Семестр, SUM(Количество_часов) AS 'Нагрузка'
FROM [Учебный_план]
GROUP BY

Семестр


SELECT Семестр, COUNT(*) AS 'Экзамены'
FROM [Учебный_план]
WHERE Отчетность = 'э'
GROUP BY

Семестр
Примеры запросов с группировкойSELECT Семестр, SUM(Количество_часов) AS 'Нагрузка'FROM [Учебный_план]GROUP BY СеместрSELECT Семестр, COUNT(*) AS 'Экзамены'FROM [Учебный_план]WHERE Отчетность

Слайд 13Ключевое слово ALL в разделе GROUP BY
SELECT Семестр, COUNT(*) AS

'Количество часов > 60'
FROM [Учебный_план]
WHERE Количество_часов > 60
GROUP BY Семестр

SELECT

Семестр, COUNT(*) AS 'Количество часов > 60'
FROM [Учебный_план]
WHERE Количество_часов > 60
GROUP BY ALL Семестр


Ключевое слово ALL в разделе GROUP BYSELECT Семестр, COUNT(*) AS 'Количество часов > 60'FROM [Учебный_план]WHERE Количество_часов >

Слайд 14Раздел COMPUTE
COMPUTE
()}[,..., n]
[ BY [,...,n ]

]
SELECT Наименование, Семестр, Количество_часов
FROM Учебный_план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина =

Дисциплины.ID_Дисциплина) AND
(Семестр = 2)
COMPUTE SUM(Количество_часов), COUNT(Семестр)
Раздел COMPUTE COMPUTE 		()}[,..., n] 		[ BY [,...,n ] ] SELECT Наименование, Семестр, Количество_часовFROM Учебный_план, Дисциплины WHERE

Слайд 15Использование команды SELECT...INTO
SELECT ID_Студент, Адрес, Телефон
INTO Контакты
FROM Студенты

INTO


SELECT { [[AS] ] [, ..., n] }
INTO


FROM {<имя_исходной_таблицы> [,..., n]}
Использование команды SELECT...INTO SELECT ID_Студент, Адрес, Телефон INTO КонтактыFROM СтудентыINTO SELECT { [[AS] ] [, ..., n]

Слайд 16Работа с таблицей «Контакты»
ALTER TABLE Контакта
ADD CONSTRAINT FK_Контакт
FOREIGN KEY

(ID_Студент)
REFERENCES Студенты

SELECT *
FROM Студенты INNER JOIN Контакты ON

Студенты.ID_Студент = Контакты.ID_Студент
WHERE Телефон LIKE '120%'

SELECT *
FROM Контакты
WHERE Телефон LIKE '120%'

Работа с таблицей «Контакты» ALTER TABLE КонтактаADD CONSTRAINT FK_КонтактFOREIGN KEY (ID_Студент)REFERENCES СтудентыSELECT *FROM Студенты INNER JOIN Контакты

Слайд 17Вставка одной строки
INSERT [INTO] [()]
VALUES ()

INSERT Сводная_ведомость
VALUES

(10, 3, 5)

INSERT INTO Сводная_ведомость
(ID_Дисциплина, ID_Студент)
VALUES (3, 10)

Вставка одной строки INSERT [INTO] [()]VALUES () INSERT 		Сводная_ведомостьVALUES (10, 3, 5)INSERT INTO 	Сводная_ведомость(ID_Дисциплина, ID_Студент) VALUES (3,

Слайд 18Команда INSERT
INSERT [ INTO]

{ [ () ]
{ VALUES
( {

DEFAULT | NULL | } [, ..., n] )
|

<результирующая_таблица>
}
}
| DEFAULT VALUES

Команда INSERT INSERT [ INTO]{ [ () ]{ VALUES( { DEFAULT | NULL | } [, ...,

Слайд 19Вставка результата запроса
CREATE TABLE Студент_2000
(ID_Студент_2000 INTEGER NOT NULL,
Фамилия CHAR(30)

NOT NULL,
Имя CHAR(15) NOT NULL,
Отчество CHAR(20) NOT NULL,
Адрес CHAR(30),
Телефон CHAR(8),

PRIMARY KEY (ID_Студент_2000))
 
INSERT INTO Студент_2000
SELECT ID_Студент, Фамилия, Имя, Отчество, Адрес, Телефон
FROM Студенты
WHERE Год_поступления = 2000

INSERT INTO <имя_таблицы>
SELECT <выражение_запроса>

Вставка результата запроса CREATE TABLE 	Студент_2000 (ID_Студент_2000	INTEGER NOT NULL, Фамилия		CHAR(30) NOT NULL, Имя		CHAR(15) NOT NULL, Отчество		CHAR(20) NOT

Слайд 20Вставка результата запроса
CREATE TABLE Преподаватель_дисциплина
(ID_Дисциплина INTEGER NOT NULL,
ID_ПреподавательINTEGER NOT NULL,

Наименование CHAR(20) NOT NULL,
Фамилия CHAR(30) NOT NULL,
Имя CHAR(15) NOT NULL,
Отчество CHAR(20) NOT

NULL,
Должность CHAR(20) NOT NULL)
INSERT INTO Преподаватель_дисциплина
SELECT DISTINCT Дисциплины.ID_Дисциплина, Кадровый_состав.ID_Преподаватель, Наименование, Фамилия, Имя, Отчество, Должность
FROM Кадровый_состав, Учебный_план, Дисциплины
WHERE
Кадровый_состав.ID_Преподаватель = Учебный_план.ID_Преподаватель AND Дисциплины.ID_Дисциплина = Учебный_план.ID_Дисциплина


Вставка результата запросаCREATE TABLE Преподаватель_дисциплина(ID_Дисциплина	INTEGER NOT NULL, ID_ПреподавательINTEGER NOT NULL, Наименование	CHAR(20) NOT NULL,Фамилия		CHAR(30) NOT NULL, Имя		CHAR(15) NOT

Слайд 21Изменение данных – команда UPDATE
UPDATE Учебный_план
SET Количество_часов = Количество_часов

+ 2
WHERE (Отчетность= ‘э’)
SELECT *
FROM Учебный_план
WHERE (Отчетность= ‘э’) AND

(Семестр = 1)


UPDATE <имя_таблицы>
SET { <имя_колонки> = { <выражение> | DEFAULT | NULL }}[,...,n]
{ [ FROM { <имя_исходной_таблицы> } [,...,n] ]
[ WHERE <условие_отбора> ] }


Изменение данных – команда UPDATE UPDATE Учебный_планSET Количество_часов = Количество_часов + 2WHERE (Отчетность= ‘э’) SELECT *FROM Учебный_планWHERE

Слайд 22Удаление данных – команда DELETE
DELETE
[WHERE ]

DELETE

Учебный_план
WHERE (Отчетность = ‘э')
AND (Семестр = 1)

Удаление данных – команда DELETE DELETE 	[WHERE ]DELETE Учебный_план 	WHERE (Отчетность = ‘э') 			AND (Семестр = 1)

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика