Помощь в написании студенческих работ
Антистрессовый сервис

Новые операторы языка манипулирования данными (DML)

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Values ('Princess', 104,'Sweet aroma', 4200,'11/30/2014','For children'). Values ('Calvin Klein', 102,'Hot aroma', 8900,'3/21/2011','For men'). Values ('Eclat', 100,'Cold aroma', 5600,'10/5/2010','For women'). Использование предложения TABLESAMPLE. Select parfum_name, destination, price, Row_Number (). Select parfum_name, destination, price, DENSE_RANK (). SELECT letter, cosmetic_name FROM… Читать ещё >

Новые операторы языка манипулирования данными (DML) (реферат, курсовая, диплом, контрольная)

Факультет информационных технологий Кафедра компьютерной инжинерий Дисциплина: Проектирование и администрирование базы данных Лабораторная работа № 2 и № 3

НОВЫЕ ОПЕРАТОРЫ ЯЗЫКА МАНИПУЛИРОВАНИЯ ДАННЫМИ (DML)

Выполнила: Смайлова Сая.

Проверила: Найзабаева Л.

Алматы- 2010

create table Parfums (

parfum_name varchar (20),

parfum_id int,

parfum_type varchar (20),

price int,

use_time datetime,

destination varchar (20),

primary key (parfum_id)

)

insert into Parfums

values ('Eclat', 100,'Cold aroma', 5600,'10/5/2010','For women')

insert into Parfums

values ('Nina Richy', 101,'Sweet aroma', 11 500,'7/15/2012','For women')

insert into Parfums

values ('Calvin Klein', 102,'Hot aroma', 8900,'3/21/2011','For men')

insert into Parfums

values ('Princess', 104,'Sweet aroma', 4200,'11/30/2014','For children')

create table Cosmetics (

cosmetic_id int,

cosmetic_name varchar (20),

cosmetic_type varchar (20),

price int,

amount int,

use_time datetime,

firma varchar (20),

representive varchar (20)

)

insert into Cosmetics

values (200,'Garnier Light','Day cream', 1900,120,'3/8/2011','Avon','Nurzhanova Asel')

insert into Cosmetics

values (201,'MaxFactor','Eyelash', 2300,209,'7/8/2010','Oriflame','Smailova Saya')

insert into Cosmetics

values (202,'Pharma','Makeup remover', 3000,260,'11/18/2010','Maybeeline','Tanabaeva Gulzada')

insert into Cosmetics

values (203,'Baby Body','Lotion', 300,80,'9/20/2012','Nivea','Erimbetova Laura')

1) CTE— выражения для упрощения читаемости запросов

with first as

(

select *

from Parfums

where destination like 'for women'

)

select * from first

order by price;

2) Однократный вызов CTE

WITH

maxi AS (SELECT (max (amount))AS v FROM Cosmetics),

mini AS (SELECT (min (price))AS v FROM Cosmetics)

SELECT cosmetic_id, cosmetic_name, amount, price

FROM Cosmetics as co, mini, maxi

WHERE co. amount=maxi.v or co. price= mini. v;

3) Использование CTE для рекурсивного прохода по дереву

WITH alphavit AS (

SELECT ASCII ('A') code, CHAR (ASCII ('A')) letter

UNION ALL

SELECT code+1, CHAR (code+1) FROM alphavit

WHERE code+1 <= ASCII ('Z')

)

SELECT letter, cosmetic_name FROM alphavit, Cosmetics

where cosmetic_name like letter+'%';

4) Оператор PIVOT

SELECT cosmetic_name, [Avon],[Oriflame],[Nivea]

—INTO tmpUnpivot

FROM Cosmetics

PIVOT (

sum (amount)

FOR [firma] IN ([Avon],[Oriflame],[Nivea])

)PVT;

5) Оператор UNPIVOT

SELECT cosmetic_name, firma, amount

FROM tmpUnpivot pvt

UNPIVOT (amount FOR firma

IN ([Avon],[Oriflame],[Nivea])

)unpvt;

6) Оператор CROSS APPLY

alter FUNCTION parf (@cos_id as int)

RETURNS TABLE AS

RETURN

SELECT top (1) cosmetic_name, cosmetic_type

FROM Cosmetics

WHERE cosmetic_id=@cos_id;

SELECT mro.*, price

FROM Parfums

CROSS APPLY parf (parfum_id) as mro;

7) Оператор OUTER APPLY

SELECT mro.*, price

FROM Parfums

OUTER APPLY parf (parfum_id) as mro;

8) Функции ранжирования

select parfum_name, destination, price, Rank ()

over (Partition BY destination order by price DESC)

as Rank

from Parfums

9) DENSE_RANK ()

select parfum_name, destination, price, DENSE_RANK ()

over (Partition BY destination order by price DESC)

as Rank

from Parfums

10) Row_Number ()

select parfum_name, destination, price, Row_Number ()

over (Partition BY destination order by price DESC)

as Rank

from Parfums

11) Ntile ()

select parfum_name, destination, price, Ntile (3)

over (Partition BY destination order by price DESC)

as Rank

from Parfums

12) Оператор TOP

DECLARE @var1 AS int, @var2 AS int;

SET @var1=1;

SET @var2=2;

SELECT TOP (@var1*@var2) *

FROM Parfums;

13) Использование предложения TABLESAMPLE

SELECT *

FROM Cosmetics SYSTEM TABLESAMPLE (100 PERCENT);

SELECT parfum_name, parfum_type

FROM Parfums p TABLESAMPLE (100 percent)

join Cosmetics c TABLESAMPLE (100 percent)

on c. cosmetic_id=p.parfum_id

14) Создание хранимой процедуры с использованием нового обработчика ошибок

CREATE PROCEDURE saya

AS

BEGIN

BEGIN TRY

SELECT * FROM Parfums;

END TRY

BEGIN CATCH

SELECT

ERROR_NUMBER () AS ErrorNumber,

ERROR_SEVERITY () AS ErrorSeverity

ERROR_STATE () AS ErrorState

ERROR_PROCEDURE () AS ErrorProcedure

ERROR_LINE () AS ErrorLine

ERROR_MESSAGE ()

END CATCH

END;

GO

exec saya

15) Создание хранимой процедуры с использованием функции, возвращающей состояние транзакции

CREATE PROCEDURE lovely

AS

BEGIN TRY

SELECT * FROM Cosmetics;

END TRY

BEGIN CATCH

IF (XACT_STATE ())= -1 ROLLBACK TRANSACTION;

IF (XACT_STATE ())= 1 COMMIT TRANSACTION;

END CATCH

Показать весь текст
Заполнить форму текущей работой