Thứ Hai, 18 tháng 5, 2015

Lab 6

CREATE DATABASE Lab6 GO USE Lab6 GO DROP DATABASE Lab6 CREATE TABLE Toys ( ProductCode varchar(5), Name varchar(30), Category varchar(30), Manufacturer varchar(40), AgeRange varchar(15), UnitPrice money, Netweight int, QtyOnHand int, constraint kt_ProductCode primary key (ProductCode) ) /* 1. Tạo bảng Toys với cấu trúc giống như trên. Thêm dữ liệu (15 bản ghi) vào bảng với giá trị của trường QtyOnHand ít nhất là 20 cho mỗi sản phẩm đồ chơi.*/ INSERT INTO Toys VALUES ('DC001','Olalala','Do choi','Marvel','3-10 tuoi',50000,50,50) INSERT INTO Toys VALUES ('DC002','Audition','Lap giap','Tap doan LOGO','8-13 tuoi',150000,3000,20) INSERT INTO Toys VALUES ('DC003','CrossFire','Dieu khien','Tap doan Xe DK','10-15 tuoi',90000,2000,30) INSERT INTO Toys VALUES ('DC004','Pikachu','Dieu Khien','Tap doan may bay DK','10-15 tuoi',250000,3000,30) INSERT INTO Toys VALUES ('DC005','Logo toa nha','Lap giap','Tap doan logo','8-13 tuoi',150000,300,20) INSERT INTO Toys VALUES ('DC006','Olalala 2','Bo game','Marvel','3-11 tuoi',350000,500,150) INSERT INTO Toys VALUES ('DC007','Olalala 3','Bo game','Marvel','4-12 tuoi',450000,60,250) INSERT INTO Toys VALUES ('DC008','Olalala 4','Bo game','Marvel','5-13 tuoi',550000,100,350) INSERT INTO Toys VALUES ('DC009','Olalala 5','Bo game','Marvel','6-14 tuoi',650000,5000,450) INSERT INTO Toys VALUES ('DC010','Olalala 6','Bo game','Marvel','7-15 tuoi',150000,900,550) INSERT INTO Toys VALUES ('DC011','Olalala 7','Bo game','Marvel','8-15 tuoi',250000,200,650) INSERT INTO Toys VALUES ('DC012','Olalala 8','Bo game','Marvel','9-15 tuoi',350000,300,150) INSERT INTO Toys VALUES ('DC013','Olalala 9','Bo game','Marvel','10-15 tuoi',450000,400,250) INSERT INTO Toys VALUES ('DC014','Olalala10','Bo game','Marvel','11-16 tuoi',550000,600,350) INSERT INTO Toys VALUES ('DC015',Olalala 11','Bo game','Marvel','12-17 tuoi',250000,90,450) SELECT * FROM Toys /*2. Viết câu lệnh tạo Thủ tục lưu trữ có tên là HeavyToys cho phép liệt kê tất cả các loại đồ chơi có trọng lượng lớn hơn 500g.*/ CREATE PROCEDURE HeavyToys AS SELECT ProductCode,Name,Category FROM Toys WHERE Netweight > 500 /*3. Viết câu lệnh tạo Thủ tục lưu trữ có tên là PriceIncreasecho phép tăng giá của tất cả các loại đồ chơi lên thêm 10 đơn vị giá.*/ CREATE PROCEDURE PriceIncreasecho AS SELECT ProductCode,Name,UnitPrice+10 AS SauKhiTangGia FROM Toys /*4. Viết câu lệnh tạo Thủ tục lưu trữ có tên là QtyOnHand làm giảm số lượng đồ chơi còn trong của hàng mỗi thứ 5 đơn vị.*/ CREATE PROCEDURE QtyOnHand AS SELECT ProductCode,Name,QtyOnHand-5 AS SauKhiGiamSoLuong FROM Toys --5. Thực thi 3 thủ tục lưu trữ trên. EXECUTE HeavyToys EXECUTE PriceIncreasecho EXECUTE QtyOnHand /*1. Ta đã có 3 thủ tục lưu trữ tên là HeavyToys,PriceIncrease, QtyOnHand. Viết các câu lệnh xem định nghĩa củacác thủ tục trên dùng 3 cách sau: - Thủ tục lưu trữ hệ thống sp_helptext - Khung nhìn hệ thống sys.sql_modules - Hàm OBJECT_DEFINITION()*/ sp_helptext HeavyToys sp_helptext PriceIncreasecho sp_helptext QtyOnHand SELECT OBJECT_DEFINITION (OBJECT_ID(N'HeavyToys')) AS [ThucHienLenh]; SELECT OBJECT_DEFINITION (OBJECT_ID(N'PriceIncreasecho')) AS [ThucHienLenh]; SELECT OBJECT_DEFINITION (OBJECT_ID(N'QtyOnHand')) AS [ThucHienLenh]; --2. Viết câu lệnh hiển thị các đối tượng phụ thuộc của mỗi thủ tục lưu trữ trên EXECUTE sp_depends HeavyToys EXECUTE sp_depends PriceIncreasecho EXECUTE sp_depends QtyOnHand GO /*3. Chỉnh sửa thủ tục PriceIncreasevà QtyOnHandthêm câu lệnh cho phép hiển thị giá trị mới đã được cập nhật của các trường (UnitPrice,QtyOnHand).*/ ALTER PROCEDURE PriceIncreasecho AS UPDATE Toys SET UnitPrice=UnitPrice+5000 GO SELECT *FROM Toys GO ALTER PROCEDURE QtyOnHand AS UPDATE Toys SET QtyOnHand=QtyOnHand-5 GO SELECT *FROM Toys GO /*4. Viết câu lệnh tạo thủ tục lưu trữ có tên là SpecificPriceIncrease thực hiện cộng thêm tổng số sản phẩm (giá trị trường QtyOnHand)vào giá của sản phẩm đồ chơi tương ứng.*/ CREATE PROCEDURE SpecificPriceIncrease AS UPDATE Toys SET UnitPrice=UnitPrice+QtyOnHand GO SELECT *FROM Toys GO /*5. Chỉnh sửa thủ tục lưu trữ SpecificPriceIncrease cho thêm tính năng trả lại tổng số các bản ghi được cập nhật.*/ ALTER PROCEDURE SpecificPriceIncrease @number int OUTPUT AS UPDATE Toys SET UnitPrice=UnitPrice+QtyOnHand SELECT ProductCode,Name,UnitPrice as Price,QtyOnHand FROM Toys WHERE QtyOnHand>0 SELECT @number = @@Rowcount GO DECLARE @num int EXECUTE SpecificPriceIncrease @num OUTPUT PRINT @num --6. Chỉnh sửa thủ tục lưu trữ SpecificPriceIncrease cho phép gọi thủ tục HeavyToysbên trong nó ALTER PROCEDURE SpecificPriceIncrease @number int OUTPUT AS UPDATE Toys SET UnitPrice=UnitPrice+QtyOnHand SELECT ProductCode,Name,UnitPrice as Price,QtyOnHand FROM Toys WHERE QtyOnHand>0 SELECT @number = @@Rowcount execute HeavyToys --8. Xóa bỏ tất cả các thủ tục lưu trữ đã được tạo ra DROP PROCEDURE HeavyToys DROP PROCEDURE PriceIncreasecho DROP PROCEDURE QtyOnHand

Chủ Nhật, 3 tháng 5, 2015

Task 1 (3 kiểu ngôn ngữ Transact SQL)

I. Ngôn ngữ SQL và các Transact SQL.
-Structured Query Language(SQL) hay còn gọi là ngôn ngữ truy cập vấn đáp mang tính cấu trúc.
-Là một dạng ngôn ngữ  phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ.
-Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng-quan hệ.
-Transaction (giao dịch) trong SQL được dùng để đảm bảo tính toàn vẹn dữ liệu khi xảy ra cập nhật (cập nhật xin được hiểu theo nghĩa rộng là các hành động sửa đổi dữ liệu, như INSERT, UPDATE, DELETE…).
-Khi một transaction bao gồm nhiều lệnh cập nhật, nó đảm bảo tất cả các cập nhật đều được thực hiện thành công, hoặc trong trường hợp một lệnh gặp sự cố toàn bộ transaction bị hủy bỏ. Khi đó dữ liệu trở về trạng thái như trước khi xảy ra transaction. Nói cách khác transaction ngăn chặn tình huống dữ liệu được cập nhật nửa chừng, trong đó một phần được cập nhật còn một phần bị bỏ qua.

*> Ví dụ về câu lệnh Lấy dữ liệu :
       SELECT * FROM employlee
-SELECT : câu lệnh lấy dữ liệu.
-* : Phạm vi lấy là toàn bộ dữ liệu.
-FROM: Vị trí mà câu lệnh SELECT lấy dữ liệu.
-employlee: Tên bảng

Khi đã có cơ sở dữ liệu mẫu (Database) ta có danh sách các câu lệnh trực tiếp, và chúng ta chỉ việc test ngay trên cơ sở đó.

II.Biến trong SQL.
- Biến là một đối tượng để lưu trữ một giá trị dữ liệu. Dữ liệu có thể được truyền đến câu lệnh SQL bằng cách sử dụng tên biến. Tên biến cục bộ phải khai báo bắt đầu ký hiệu @.
- Biến trong SQL có hai loại: Biến cục bộbiến toàn cục.

+ Biến cục bộ: Dùng để lưu giá trị tạm thời do người dùng tạo nên.
*Khai báo biến cục bộ
DECLARE
{
@local_variable[AS]data_type
}

Trong đó:   - @local_variable[AS]data_type: Tên biến, bắt buộc bắt đầu bằng ký hiệu @.
                   - data_type: Kiểu dữ liệu biến nhận được.
Chú ý: Ta dùng câu lệnh SET hoặc SELECT để gán giá trị cho biến.

Biến toàn cục: Biến có sẵn và do hệ thống tiếp quản, tồn tại theo hệ thống. Tên biến toàn cục phải khai báo bắt đầu bằng hai ký hiệu @.
III. Hàm trong SQL.
-Là tập hợp một đoạn code nào đấy có tác dụng thực hiện một chức năng bất kỳ được định sẵn.
-Transact SQL có các loại hàm sau:
*Hàm tập hợp:
SUM(col_name) : Hàm tính tổng, trả về tổng giá trị của col_name.
*Hàm chuyển đổi dữ liệu: Dùng để biến kiểu dữ liệu này sang kiểu dữ liệu khác.
CONVERT(datatype[(length)],expression[,style])
*Hàm ngày tháng:
GETDATE() : Lấy ra ngày, giờ hiện tại của hệ thống.
DATEPART() : lấy ra một giá trị (ngày hoặc giờ) của hệ thống.
*Hàm toán học: Thực hiện phép tính trên trường dữ liệu hệ thống.
ABS(num_expr) : Trả về giá trị tuyệt đối.
*Hàm hệ thống: Trả về dữ liệu hệ thống hay là thông tin cấu hình của sever
USER_NAME([user_id']) : tên người dùng.
*Hàm xếp hạng: Tạo ra một dãy số, danh sách tuần tự cho việc sắp xếp.
ROW_NUMBER() : Hàm đánh số hàng, bắt đầu, bằng 1 với hàng đầu tiên và 2,3 với các hàng tiếp theo.
DENSE_RANK() : Trả về giá trị xếp hạng giữa các hàng mà không có khoảng cách giữ các hạng.
 VI. Câu lệnh trong thao tác dữ liệu.
- Có 4 câu lệnh: SELECT, INSERT, UPDATE, DELETE.
-SELECT: Lấy dữ liệu ra.
Cú pháp:
SELECT <column_name(s)> FROM <Table_name>
Trong đó: - <column_name(s)> : là tên của cột hoặc danh sách cột cần lấy dữ liệu.
                - <Table_name> : tên của bảng dữ liệu. 
-INSERT: Chèn dữ liệu.
Cú pháp:
INSERT INTO <Table_name>
VALUES <value>
Trong đó: - <Table_name> : tên bảng mà dữ liệu được chèn vào.
                - <value>: là các giá trị được chèn vào các cột trường tương ứng trong bảng.

                - INTO là từ khóa được sử dụng.
-UPDATE:Cập nhập dữ liệu.
Cú pháp: 
UPDATE <Table_name>
SET <Column_Name = Value>
[WHERE <Search condition>]
Trong đó: - <Table_name> là tên bảng mà dữ liệu trong đó được thay đổi.
                - <Column_Name> là tên cột dữ liệu thay đổi.
                - <Search condition> là điều kiện thỏa mãn mà các dữ liệu thay đổi.
                - Value là giá trị giữ liệu thay đổi.

-DELETE: Xóa dữ liệu.
Cú pháp:
DELETE FROM <Table_name>
[WHERE <Search condition>]
Trong đó: - <Table_name> là tên bảng có dữ liệu cần xóa

                - <Search condition> chỉ định điều kiện. Nếu không có mệnh đè này, tất cả các bản ghi trong bảng sẽ bị xóa.


Chủ Nhật, 12 tháng 4, 2015

10 Hàm của JQuery

I.Hàm .add()

-Hàm dùng để thêm những giá trị, thẻ hợp lệ và được định dạng sẵn.


-Ví dụ:



<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>add demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Hello</p>
<span id="a">I'm Quan</span>
<script>
$( "p" ).add( document.getElementById( "a" ) ).css( "background", "yellow" );
</script>
</body>
</html>
-Trình duyệt : I'm Quan 
II.Hàm .after() 
-Hàm dùng để chèn nội dung, tham số hợp lệ sau mỗi phần tử của một tổ hợp các phần tử hợp lệ.
-Ví dụ: 

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title> after demo</title>
<style>
p {
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Xin chào: </p>
<script>
$( "p" ).after( document.createTextNode( "Quân" ) );
</script>
</body>
</html>
-Trình duyệt: Xin chào : Quân
III.Hàm .before()
-Hàm tương tự như after() nhưng chèn vào đằng trước
-Ví dụ :
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>before demo</title>
<style>
p {
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p> muốn làm quen với bạn...</p>
<script>
$( "p" ).before( "<b>Tôi</b>" );
</script>
</body>
</html>
-Trình duyệt : Tôi muốn làm quen với bạn...
IV.Hàm .clone() -Hàm tạo ra một bản sao-Ví dụ: 
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>clone demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<b>Chào</b><p>, bạn khỏe chứ?</p>
<script>
$( "b" ).clone().prependTo( "p" );
</script>
</body>
</html>
-Trình duyệt: Chào Chào, bạn khỏe chứ? V.Hàm .bind() -Hàm gài hiệu ứng xử lý vào phẩn tử được chọn-Ví dụ:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>bind demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Click or double click here.</p>
<span></span>
<script>
$( "p" ).bind( "click", function() {
alert( $( this ).text("Hahaha") );
});
});
</script>
</body>
</html> VI.Hàm .empty() -Xóa mọi phần tử trên trình duyệt khi click hoặc thực hiện một dạng xử lý nào đấy.-Ví dụ: 
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>empty demo</title>
<style>
p {
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>
Hello, <span>Person</span> <em>and person</em>.
</p>
<button>Call empty() on above paragraph</button>
<script>
$( "button" ).click(function() {
$( "p" ).empty();
});
</script>
</body>

</html> VII.Hàm .eq() -Giảm số lượng nhóm phần tử được chọn về con số một.-Ví dụ:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>eq demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
$( "body" ).find( "div" ).eq( 2 ).addClass( "blue" );
</script>
</body>
</html> VIII.Hàm .error() -Làm một phần tử đã được định dạng trở nên mất định dạng ===>Lỗi hiện thị-Ví dụ:
$( "img" )
.error(function() {
$( this ).hide();
})
.attr( "src", "missing.png" ); IX.Hàm .first() -Giảm số phần tử được định dạng sẵn còn một và là phần tử đứng đầu tiên.-Ví dụ:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>first demo</title>
<style>
.highlight{
background-color: yellow
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>
<span>Look:</span>
<span>This is some text in a paragraph.</span>
<span>This is a note about it.</span>
</p>
<script>
$( "p span" ).first().addClass( "highlight" );
</script>
</body>
</html> X.Hàm .hide() -Ẩn hết mọi nội dung được định dạng-Ví dụ:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>hide demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Hello</p>
<a href="#">Click to hide me too</a>
<p>Here is another paragraph</p>
<script>
$( "p" ).hide();
$( "a" ).click(function( event ) {
event.preventDefault();
$( this ).hide();
});
</script>
</body>
</html>