КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Синтаксис
END BEGIN AS AS END BEGIN AS AS AS AS AS SELECT * FROM table. Назначение представления — упрощение селект запроса. Не хранится в базе данных, а каждый раз вычисляется. With check option — cпециальная опция, которая указывается при создании представлений. Она приводит к созданию ограничения, условием которому служит условие where. Т.е. ограничение условия берется из where. CREATE VIEW abc SELECT * FROM table WHERE age >= 20. В представлениях можно выполнять все DML-операции: select, insert, update, delete. При этом, так как представления каждый раз вычисляются, все изменения представления будут затрагивать таблицу на основе которой было создано представление. При использовании предложения ORDER BY в представления, встроенной функции, производной таблицы или вложенный запрос, необходимо также указать оператор Top. CREATE VIEW abc SELECT TOP 3 * FROM table ORDER BY name
19. Агрегатные функции: SUM, COUNT, AVG.
Агрегатные функции выполняют вычисление на наборе значений и возвращают одиночное значение. Агрегатные функции, за исключением COUNT, не учитывают значения NULL. Агрегатные функции часто используются в выражении GROUP BY инструкции SELECT. l COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос. l SUM - производит арифметическую сумму всех выбранных значений данного поля l AVG - производит усреднение всех выбранных значений данного поля l MAX - производит наибольшее из всех выбранных значений данного поля l MIN - производит наименьшее из всех выбранных значений данного поля
SELECT Sum (amt) FROM orders;
20. T-SQL: DECLARE, локальные переменные, присвоение инициализация, глобальные переменные, оператор PRINT, оператор IF-ELSE, операторные скобки BEGIN/END, оператор RETURN, конкатенация строк, преобразование типов CAST, конструкции CASE, WHILE, WAITFOR,TRY/CATCH, процедура RAISEERROR.
Declare — объявление переменной. Переменная – область памяти. Всегда начинается с @. Есть 3 способа присвоения: declare @s=1, set @s = 1, select @s = 1. Инициализация: Declare @имя_переменной тип_данных. Переменные бывают: 1. Локальные – переменные, которые используются для временного хранения данных во время запуска пакета инструкций SQL; 2. Глобальные – переменные, обозначенные @@ (стандартные, системные). Print — оператор для вывода значений переменных или обычного текста. if-else — конструкция, которая представляет собой условие (если, иначе). BEGIN-END: блок операторов. Содержит команды, которые выполняются вместе. Оператор return возвращает значение. Конкатенация строк — операция «склеивания» строк. Выполняется при помощи оператора +. Print ‘a’ + ’b’. Cast — оператор, с помощью которого осуществляется преобразование типов. cast (<переменная или значение> as <требуемый тип>). Case — оператор выбора. While – оператор цикла; Waitfor – оператор, который блокирует выполнение пакета, хранимой процедуры или транзакции до наступления указанного времени или интервала времени. Try-catch — конструкция исключения. Raiseerror — cоздает сообщение об ошибке и запускает обработку ошибок для сеанса.
21. Временные таблицы: локальные, глобальные, работа с временными таблицами. Локальные временные таблицы будут видны только вашей сессии, а глобальные таблицы видны всем сессиям. При этом и те, и другие таблицы, уничтожаются после завершения сессии. Локальная временная таблица: Таблица будет существовать только во время выполнения одной сессии, и работать с ней сможете только вы. Например, вы написали большой сценарий, выполняющий определенные действия (например, процедуру, хранящуюся на сервере). Если в этом сценарии создать временную таблицу, то она будет существовать, только пока выполняется сценарий. После этого она автоматически уничтожается. CREATE TABLE #testtable ( id INT PRIMARY KEY ) Глобальная временная таблица: CREATE TABLE ##testtable ( id INT PRIMARY KEY ) 22. Курсоры: определение, общая схема работы, локальные/глобальные, динамические/статические, только для чтения, SCROLL, дополнительная навигация со SCROLL-курсорами, конструкция WHERE CURRENT OF, значение FETCH_STATUS.
Курсор: механизм, позволяющий обрабатывать отдельные строки полученные в результате select-запроса. Схема работы с курсором: DECLARE, OPEN, FETCH, CLOSE, DEALLOCATE. Объявить, открыть, просмотреть, закрыть, удалить. Динамический курсор: изменения данных отображаются в динамике. У динамического курсора в области памяти хранится не более одной строки. Статический курсор: данные выбраны один раз и произошедшие изменения «не видны». Локальный курсор живет в рамках одного пакета или одного скрипта. Глобальный курсор живет в рамках одного соединения. Read-only — курсор только для чтения. Scroll – тип курсора, в котором мы можем двигаться в любом направлении. Работа со скролл курсорами: l last-позиция переходит на последнюю строку; l first-позиция переходит на первую строку; l absolute 5 – на 5 строку относительно начала; l absolute -5 – на 5 строку относительно конца; l relative 5 – на строку, от текущей +5 (вниз на 5); l relative -5 на строку, от текущей -5 (вверх на 5) l next- позиция переходит на следующую строку; l prior-позиция переходит на предыдущую строку. Where current of cursor — изменение текущей строки, очень быстрая операция. работает быстрее обычного where. @@CURSOR_ROWS — возвращает число выбранных строк, имеющихся в последнем открытом курсоре в данном соединении. @@FETCH_STATUS – возвращает состояние последней инструкции FETCH курсора, запущенной в отношении любого курсора, который в настоящий момент открыт соединением.
Синтаксис: DECLARE имя_курсора CURSOR FOR SELECT текст_запроса
Открытие курсора: OPEN имя_курсора Чтение следующей строки из курсора: FETCH имя_курсора INTO список_переменных [1] Пример: FETCH my_cur FROM @CURSOR INTO @ID, @QUA, @VAL, @NAM 23. Процедуры T-SQL: параметры, создание, вызов, возврат значения, системные процедуры.
Хранимая процедура (stored procedure) — это именованный набор команд Transact- SQL, хранящийся непосредственно на сервере и представляющий собой самостоятельный объект базы данных. Типы хранимых процедур: l Системные хранимые процедуры (system stored procedures). Это хранимые процедуры, поставляемые в составе SQL Server 2000 и предназначенные для выполнения различных административных действий — создание учетных записей (sp_addlogin и другие), получение информации об объектах базы данных, управление свойствами сервера и баз данных и т.д. l Пользовательские хранимые процедуры (user-defined stored procedures) l Временные (temporary stored procedures) и локальные временные хранимые процедуры (local temporary stored procedures). Такие процедуры существуют лишь некоторое время, после чего автоматически уничтожаются сервером Синтаксис: CREATE PROCEDURE addproduct @Description NVARCHAR(100), @InStock INT = 0, -- параметр по умолчанию будет равен 0 @IdProd INT out -- выходной параметр INSERT product ([description], instock) VALUES (@Description, @InStock) SET @IdProd = @@IDENTITY RETURN --ПРИМЕР ВЫЗОВА: DECLARE @IdProd INT
EXEC Saddproduct @Description = N'Новый товар', @IdProd = @IdProd output SELECT @IdProd AS N'@IdProd'
Чтобы передать некоторое возвращаемое значение из хранимой процедуры обратно в вызывающий код, достаточно применить оператор RETURN [<Целое число>]. Отличие процедур от функций: l Процедуры могут иметь INPUT/OUTPUT параметры, функции только INPUT; l Хранимые процедуры могут возвращать целочисленное значение вызывающей их процедуре или приложению, функции обязательно должны возвращать какой-то результат. l Функции не могут менять данные и выполнять DDL-операторы, процедуры - могут. l Функции могут быть вызваны из процедуры, а вот процедура не может быть вызвана из функции. l В функциях нельзя управлять транзакциями, в процедурах можно. l В функциях нельзя использовать Try-Catch, в процедурах можно. l Функции могут использоваться в выражении SELECT, процедуры не могут: l Scalar-valued function - возвращают скалярное значение l Inline function - могут возвращать один запрос SELECT l Table-valued function - возвращают переменную типа TABLE
[2] 24. Функции: типы, параметры, создание, вызов, возврат значения, принципы применения.
Возвращаемый тип значения может быть любой, а в процедуре нет. Пользовательские функции подразделяются на 2 основных типа: l Возвращающие скалярное сзначение l Возвращающие таблицу. Создание: Возвращающие скалярное сзначение: CREATE FUNCTION dbo. Dayonly (@Date DATETIME) returns VARCHAR (12) RETURN CONVERT (VARCHA (12), @Date, 101) -----ВЫЗОВ ФУНКЦИИ---- SELECT * FROM orders WHERE dbo. Dayonly (orderdate) = dbo. Dayonly (Getdate ()) Возвращающие таблицу: CREATE FUNCTION dbo.Fnauthorlist() returns TABLE RETURN (SELECT au_id, au_lname + ', ' + au_fname AS au_name, address AS address1, city + ', ' + state + ' ' + zip AS address2 FROM authors)
go -----ВЫЗОВ ФУНКЦИИ---- SELECT * FROM dbo. Fnauthorlist () Описание: в этой функции выполняется возврат таблицы, состоящей из строк, полученных с помощью оператора SELECT, а также несложное форматирование: конкатенация фамилии имени, разделенных запятыми, а также конкатенация трех компонентов адреса для возврата значений столбца address2
25. Триггеры: типы триггеров, создание, назначение применение, вложенные и рекурсивные триггеры, таблицы INSERTED, DELETED и их применение, последовательность выполнения триггеров. Триггер - это хранимая процедура особого типа, вызываемая на выполнение в ответ на определенные события В таблицах INSERTED и DELETED находятся вставленные / удалённые строки. Типы триггеров: l DML запускаются с помощью инструкций INSERT, UPDATE или DELETE. l DDL с помощью инструкций CREATE, ALTER, DROP. Виды триггеров: after и instead of Рекурсивный триггер: CREATE TRIGGER my_trig ON table_name -- tableName -- закрепление триггера к таблице или представлению after INSERT IF @@TRANCOUNT < 2 INSERT table_name (id, name) VALUES (1, 'Test'); CREATE TRIGGER primer5 ON sotrydnik after INSERT, DELETE
Дата добавления: 2015-05-09; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |