5. LOGO
Динамик SQL
Хувьсагч зарлах
Жишээ:
DECLARE @ borrow_id int
DECLARE @borrow_id as int
DECLARE @Group nvarchar(50), @Sales money;
6. LOGO
Динамик SQL
Хувьсагчид утга олгох
Хувьсагчид утга олгохдоо SET эсвэл SELECT
командын ашиглана.
Бичигдэх хэлбэр:
SET @хувьсагчийн_нэр|талбарын_нэр
утга |илэрхийлэл
Жишээ:
DECLARE @myvar char(20);
SET @myvar = ‘This is a test’;
7. LOGO
Динамик SQL
Хувьсагчид утга олгох
Жишээ:
DECLARE @state nchar(25);
SET @state= ‘Улаанбаатар’;
SELECT FirstName+ ‘ ‘ + LastName AS Name, City
FROM Employee
WHERE state = state;
8. LOGO
Динамик SQL
Хувьсагчид утга олгох
Жишээ:
DECLARE @borrow_id int, @outPrice smallmoney;
SET @borrow_id=2;
SELECT @outPrice=price
FROM book a JOIN borrow_service b
ON a.book_id=book_id
WHERE b.borrow_id=@borrow_id
9. LOGO
Динамик SQL
Хувьсагчид утга олгох
Жишээ:
DECLARE @NewBalance int ;
SET @NewBalance = 10;
SET @NewBalance = @NewBalance* 10;
Жишээ:
DECLARE @rows int;
SET @rows=(SELECT COUNT (*) FROM Clustomer);
13. LOGO
Динамик SQL
Бүлэг үйлдлийн төгсгөлийг тодорхойлох
Бүлэг үйлдлйин төгсгөлийн GO командаар тодорхойлно.
Жишээ:
USE Lib;
GO
DECLARE @CountOfBook int
SELECT @CountOfBook = COUNT(*) FROM book
PRINT CAST(GETDATE() AS char(20)) + ‘’+
CAST (@CountOfBook AS char(2))+’’
GO
Apr 25 2010 8:30PM-нд нийт 9 ном байв
15. LOGO
Динамик SQL
Нөхцөл шалгах команд
Бичигдэх хэлбэр:
IF логик_нөхцөл
{ SQL_илэрхийлэл | Бүлэг_илэрхийлэл}
ELSE
{ SQL_илэрхийлэл | Бүлэг_иэлрхийлэл}
16. LOGO
Динамик SQL
Нөхцөл шалгах команд
Жишээ:
DECLARE @standart money, @title nvarchar(100);
SELECT @titlt= title, @standart= price FROM book
WHERE book_id=1;
IF @standart>8000
PRINT @title+’ном’+ cast(@standart as
nvarchar(12)) + ‘үнэлгээтэй тул үнэтэй байна’
ELSE
PRINT @title+’ном’ + cast(@standart as
nvarchar(12))+ ‘үнэлгээтэй тул хямд байна’
17. LOGO
Динамик SQL
Сонголтын оператор
Бичигдэх хэлбэр:
CASE илэрхийлэл
WHEN утга THEN үр_дүн
[…n]
[ELSE үр_дүн]
END
18. LOGO
Динамик SQL
Сонголтын оператор
Жишээ:
SELECT title, номын_төрөл=
CASE btype_id
WHEN ‘ZZ’ THEN ‘Зөгнөлт зохиол’
WHEN ‘AA’ THEN ‘Аймшиг адал явдал’
WHEN ‘YN’ THEN ‘Яруу найраг’
ELSE ‘Бусад’
END,
price
FROM book ORDER BY номын_төрөл
21. LOGO
Динамик SQL
Нөхцөл шалгах команд
Бичигдэх хэлбэр:
WHILE (SELECT AVG(Price) FROM book) <5000
BEGIN
UPDATE book SET Price = Price*2
SELECT MAX(Price) FROM book
IF (SELECT MAX(Price) FROM book) >8000
BREAK
ELSE
CONTINUE
END
27. LOGO
Хадгалагдсан процедур
Жишээ 1:
CREATE PROCEDURE sp_select_book
AS
SELECT title, btype_name
FROM book a JOIN book_type b
ON a.btype_id=b.btype_id
28. LOGO
Хадгалагдсан процедурыг
үүсгэх
Жишээ 2:
CREATE PROCEDURE sp_language
@lang_code int
AS
SELECT title, pub_name, lang_name
FROM book a
JOIN book_language b ON a.lang_id=b.lang_id
JOIN publisher c ON a.pub_id =c.pub_id
WHERE b.lang_id=@lang_code
29. LOGO
Хадгалагдсан процедурыг
үүсгэх
Жишээ 3:
CREATE PROCEDURE sp_reg_today
@type nchar(2),
AS
SET @date=year(getdate());
SELECT title, btype_name, reg_date
FROM book a
JOIN book_type b ON a.btype_id=b.btype_id
WHERE year(reg_date)=@date
30. LOGO
Хадгалагдсан процедурыг
үүсгэх
Жишээ 4:
CREATE PROCEDURE sp_payment
@borrow_id as int,
@outPrice smallmoney = NULL OUTPUT
AS
SET @outPrice=price *10/100
FROM book a
JOIN borrow _service b ON a.btype_id=b.btype_id
WHERE b.borrow_id=@borrow_id
36. LOGO
Процедурыг өөрчлөх ба
устгах
Хадгалагдсан процедурыг өөрчлөхдөө ALTER
PROCEDURE командыг ашиглана.
Бичигдэх үндсэн хэлбэр:
CREATE PROCEDURE командтай адилхан дүрмээр
тодорхойлогдоно.
Хадгалагдсан процедурыг устгахдаа DROP
PROCEDURE командыг ашиглана.
Бичигдэх үндсэн хэлбэр:
DROP PROCEDURE процедурын нэр
37. LOGO
Процедурыг өөрчлөх ба
устгах
Жишээ:
ALTER PROCEDURE sp_language
@lang_code int,
@form_code int
AS
SELECT title, pub_name, lang_name, bform_name
FROM book a JOIN book_language b ON a.lang_id=b.lang+id
JOIN publisher c ON a.pub_id=c.pub_id
JOIN book_form d ON d.bform_id=@form_code
WHERE b.lang_id=@lang_code AND d.bform_id=@form_code
Жишээ:
DROP PROCEDURE sp_language