Содержание
- 2. Процедуры Базы данных: учебный курс Синтаксис для создания процедур может различаться в различных БД. Вот типичный
- 3. JDBC – Создание и вызов процедур Базы данных: учебный курс // Подключаемся к драйверу базы данных
- 4. Процедуры с выходными параметрами Базы данных: учебный курс Изменим наш пример таким образом, чтобы процедура формировала
- 5. JDBC – Работа с выходными параметрами Базы данных: учебный курс // Подготавливаем вызов хранимой процедуры CallableStatement
- 6. JDBC – Работа с именованными параметрами Базы данных: учебный курс // Подготавливаем вызов хранимой процедуры CallableStatement
- 7. Более сложные процедуры Базы данных: учебный курс CREATE FUNCTION dbo.WeekDay(@day INT) RETURNS VARCHAR(20) AS BEGIN RETURN
- 8. Более сложные процедуры Базы данных: учебный курс CREATE PROCEDURE CreateWeek @first INT = 0 AS BEGIN
- 9. Другие объекты в БД Базы данных: учебный курс Представления (VIEW): виртуальные таблицы Новое представление создается с
- 10. Другие объекты в БД Базы данных: учебный курс Функции, возвращающие таблицу Представления не могут быть параметризованы.
- 12. Скачать презентацию
Слайд 2Процедуры
Базы данных: учебный курс
Синтаксис для создания процедур может различаться в различных БД.
Вот
Процедуры
Базы данных: учебный курс
Синтаксис для создания процедур может различаться в различных БД. Вот

CREATE PROCEDURE CreateWeek
@first int = 0
AS
BEGIN
DROP TABLE Weekdays;
CREATE TABLE Weekdays(DayNumber INTEGER, DayName VARCHAR(20),
PRIMARY KEY(DayNumber));
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first, 'Monday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+1, 'Tuesday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+2, 'Wednesday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+3, 'Thursday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+4, 'Friday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+5, 'Saturday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+6, 'Sunday');
END
Слайд 3JDBC – Создание и вызов процедур
Базы данных: учебный курс
// Подключаемся к драйверу
JDBC – Создание и вызов процедур
Базы данных: учебный курс
// Подключаемся к драйверу

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection( "jdbc:sqlserver://127.0.0.1\\SQLAKOUB;databaseName=academy;" + "user=sa;password=*****"); // Подготавливаем вызов хранимой процедуры
CallableStatement cst = conn.prepareCall("Exec CreateWeek 1");
// Осуществляем вызов
cst.execute();
Слайд 4Процедуры с выходными параметрами
Базы данных: учебный курс
Изменим наш пример таким образом, чтобы
Процедуры с выходными параметрами
Базы данных: учебный курс
Изменим наш пример таким образом, чтобы

ALTER PROCEDURE CreateWeek
@first int = 0,
@maxnum int OUTPUT
AS
BEGIN
DROP TABLE Weekdays;
CREATE TABLE Weekdays(DayNumber INTEGER, DayName VARCHAR(20),
PRIMARY KEY(DayNumber));
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first, 'Monday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+1, 'Tuesday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+2, 'Wednesday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+3, 'Thursday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+4, 'Friday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+5, 'Saturday');
INSERT INTO WeekDays(DayNumber, DayName) VALUES(@first+6, 'Sunday');
SET @maxnum = (SELECT Max(DayNumber) FROM Weekdays);
END
Слайд 5JDBC – Работа с выходными параметрами
Базы данных: учебный курс
// Подготавливаем вызов хранимой
JDBC – Работа с выходными параметрами
Базы данных: учебный курс
// Подготавливаем вызов хранимой

CallableStatement cst = conn.prepareCall("Exec CreateWeek ?, ?"); // Подготавливаем параметры (входные и выходные) cst.setInt(1, 0); cst.registerOutParameter(2, Types.INTEGER);
// Осуществляем вызов
cst.execute(); // Доступ к значению выходного параметра: System.out.println(cst.getInt(2));
Слайд 6JDBC – Работа с именованными параметрами
Базы данных: учебный курс
// Подготавливаем вызов хранимой
JDBC – Работа с именованными параметрами
Базы данных: учебный курс
// Подготавливаем вызов хранимой

CallableStatement cst = conn.prepareCall( "Exec CreateWeek @first=?, @maxnum=?"); // Подготавливаем параметры (входные и выходные) cst.setInt("first", 0); cst.registerOutParameter("maxnum", Types.INTEGER);
// Осуществляем вызов
cst.execute(); // Доступ к значению выходного параметра: System.out.println(cst.getInt("maxnum"));
Синтаксис вызова может отличаться в разных БД и даже с разными
драйверами. Например, в других БД вызов мог бы выглядеть
Call CreateWeek(?,?)
{CreateWeek(?,?)}
и т.д.
Слайд 7Более сложные процедуры
Базы данных: учебный курс
CREATE FUNCTION dbo.WeekDay(@day INT) RETURNS VARCHAR(20) AS
BEGIN
Более сложные процедуры
Базы данных: учебный курс
CREATE FUNCTION dbo.WeekDay(@day INT) RETURNS VARCHAR(20) AS
BEGIN

CASE @day
WHEN 0 THEN 'Monday'
WHEN 1 THEN 'Tuesday'
WHEN 2 THEN 'Wednesday'
WHEN 3 THEN 'Thursday'
WHEN 4 THEN 'Friday'
WHEN 5 THEN 'Saturday'
WHEN 6 THEN 'Sunday'
END
END
В разных БД есть синтаксис для исполнения программ, подобный
синтаксису обычных языков программирования. Например, в Transact-SQL:
Слайд 8Более сложные процедуры
Базы данных: учебный курс
CREATE PROCEDURE CreateWeek
@first INT = 0
AS
BEGIN
DECLARE
Более сложные процедуры
Базы данных: учебный курс
CREATE PROCEDURE CreateWeek
@first INT = 0
AS
BEGIN
DECLARE

SET @ndx = 0; SET @ord = (7 - @first) % 7;
DROP TABLE Weekdays;
CREATE TABLE Weekdays(DayOrder INT, DayNumber INT, DayName VARCHAR(20), PRIMARY KEY(DayNumber));
WHILE (@ndx < 7) BEGIN
INSERT INTO WeekDays(DayOrder, DayNumber, DayName) VALUES(@ndx, @ord, dbo.WeekDay(@ndx));
SET @ndx = @ndx + 1;
SET @ord = (@ord + 1) % 7;
END
END
Теперь наша процедура по созданию таблицы в Transact-SQL могла бы
выглядеть так:
Слайд 9Другие объекты в БД
Базы данных: учебный курс
Представления (VIEW): виртуальные таблицы
Новое представление создается
Другие объекты в БД
Базы данных: учебный курс
Представления (VIEW): виртуальные таблицы
Новое представление создается

CREATE VIEW Weekend AS
SELECT * FROM Weekdays WHERE DayOrder >= 5
Теперь это представление можно использовать как обычную таблицу, например:
SELECT DayName FROM Weekend
И даже:
INSERT INTO Weekend (DayOrder, DayNumber, DayName) VALUES (7, 8, 'Googleday')
Обычно представления используют для создания запросов, используемых позже
в качестве «подзапросов»:
CREATE VIEW MaxPercent AS
SELECT Uid, Max([Percent]) AS MaxPercent FROM pu GROUP BY Uid
SELECT Name, MaxPercent FROM Users INNER JOIN MaxPercent ON Users.Id = MaxPercent.Uid
Слайд 10Другие объекты в БД
Базы данных: учебный курс
Функции, возвращающие таблицу
Представления не могут быть
Другие объекты в БД
Базы данных: учебный курс
Функции, возвращающие таблицу
Представления не могут быть

Сначала создадим «общую виртуальную таблицу процентов»
CREATE VIEW UsersPercent AS
SELECT Uid, Sum([Percent]) AS SumPercent FROM pu GROUP BY Uid
CREATE FUNCTION FreeUsers(@p INT)
RETURNS TABLE
AS
RETURN SELECT Users.*, SumPercent FROM Users INNER JOIN UsersPerecent ON Users.Id = UsersPercent.Uid
WHERE SumPercent < @p
SELECT fu.* FROM FreeUsers(80) AS fu
Александр Михайлович Бутлеров
Опера, балет, мюзикл
МеркуловаЕлена Борисовна
Приглашаем вас в наш конный клуб
Презентация на тему Чтение и понимание текста
Дионисий и его творчество
Составь задачуна УМЕНЬШЕНИЕ ЧИСЛА НА НЕСКОЛЬКО ЕДИНИЦ
Публичная презентация результатов педагогической деятельностии инновационной работыучителя начальных классов МКОУ «Лицей се
ИСТОРИЯ МОЛДОВЫ
Нитраты
Разработка концепции позиционирования
Economic importance of soil
Презентация на тему Действия с многочленами
В стремлении к самосовершенствованию
№ 208-839-368 Русский язык.Тема. Обобщение сведений о падежах имен существительных. (4 класс)
Презентация на тему Паустовский «Жильцы старого дома» 3 класс
PR -обеспечение политических институтов
Пятно как средство выражения. Ритм пятен
Арбитражный процесс
Профессиональное выгорание педагогов. Пути преодоления
Разработка интернет-магазина женской одежды
Молекулярная генетика
Правила поведения для малышей - Правила поведения в обществе
ПРИРОДНЫЕ ПОЖАРЫ НА ТЕРРИТОРИИ ЗМЕЙНОГОРСКОГО РАЙОНА АЛТАЙСКОГО КРАЯ СХЕМА ЭВАКУАЦИИ НАСЕЛЕНИЯ ИЗ ЗОН ВОЗМОЖНЫХ ЛЕСНЫХ ПОЖАРОВ 1
Презентация на тему Пчелы и муравьи - общественные насекомые
Александр Сергеевич Пушкин
MOTIVATION AND SEMANTIC CHANGE
1. Долиною плача и скорби иду я, Изранены ноги, нет силы идти; Хоть трудно, но все же шагаю, минуя Соблазны и бездны греха на пути.