Lưu hành nội b Trang 69
INSERT INTO luong_nhanvien
SELECT manv, hoten, hsluong*730000 FROM nhanvien
3. Cp nht d liu UPDATE
Công dng:
- Cp nht d liu trong các bng.
Cú pháp:
UPDATE tên_bng
SET tên_ct = biu_thc
[ , ...
, tên_ct_k = biu_thc_k]
[FROM danh_sách_bng]
[WHERE điều_kin]
Ví d 9.3a:
Câu lệnh sau đây tăng HSLUONG (hệ s lương) thêm 0.2 cho các nhân viên
MADONVI là 04.
UPDATE nhanvien
SET hsluong = hsluong + 0.2
WHERE madonvi = '04'
Ví d 9.3b:
Câu lệnh sau đây s cp nht giá tr cho field THANHTIEN (thành tin) trong bng
NHATKYBANHANG theo công thc THANHTIEN = SOLUONG * DONGIA.
UPDATE nhatkybanhang
SET thanhtien = soluong * MATHANG.dongia
FROM MATHANG
WHERE nhatkybanhang.mahang = MATHANG.mahang
4. Xóa d liu DELETE
Công dng:
- Để xóa d liu trong bng.
Cú pháp:
DELETE FROM tên_bng
[FROM danh_sách_bng]
[WHERE điều_kin]
Ví d 9.4:
Câu lệnh sau đây xoá khi bng NHANVIEN nhng nhân viên làm tại đơn vị
SODIENTHOAI (s điện thoi) là '848484'
DELETE FROM nhanvien
FROM donvi
WHERE nhanvien.madonvi = donvi.madonvi AND donvi.dienthoai = '848484'
5. Xóa toàn b d liu TRUNCATE
Công dng:
- Để xóa toàn b d liu trong bng.
Cú pháp:
TRUNCATE TABLE tên_bng
Ví d 9.5:
Câu lnh sau xoá toàn b d liu trong bng LUONG_NHANVIEN
DELETE FROM luong_nhanvien
Lưu hành nội b Trang 70
Tương đương câu lnh
TRUNCATE TABLE luong_nhanvien
V. Mt s hàm thường dùng trong SQL Server
1. Hàm ngày – gi
a. Hàm DATEADD
Cú pháp:
DATEADD(datepart, number, date)
Datepart: tham s ch định thành phn s được cng thêm vào ngày date.
DatePart Viết tt
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
milisecond ms
Công dng: Hàm tr v mt giá tr kiu DateTime bng cách cng thêm mt khong giá
trnumber vào ngày date được ch định.
b. Hàm DATEDIFF
Cú pháp:
DATEDIFF(datepart, startdate, enddate)
Công dng: Hàm tr v khong thi gian gia 2 giá tr kiu ngày startdate enddate y
thuc vào datepart.
Ví d:
DateDiff(year, '3/10/2003', '6/15/2010') à kết qu: 7
c. Hàm DATEPART
Cú pháp:
DATEPART(datepart, date)
Công dng: Hàm tr v mt s nguyên được trích ra t thành phần được ch định bi
datepart trong giá tr ngày date.
Ví d:
DatePart(year, '6/15/2010') à kết qu: 2010
d. Hàm GETDATE
Cú pháp:
GETDATE()
Công dng: Hàm tr v giá tr là ngày hin ti.
e. Hàm DAY, MONTH, YEAR
Cú pháp:
DAY(date) / MONTH(date) / YEAR(date)
Công dng: Hàm tr v giá tr là ngày / tháng / năm của ngày date.
Ví d:
Day('6/15/2010') à kết qu: 15
Month('6/15/2010') à kết qu: 6
Lưu hành nội b Trang 71
Year('6/15/2010') à kết qu: 2010
2. Hàm chui
a. Hàm LEFT
Cú pháp:
LEFT(string, n)
Công dng: Hàm trích t chui string n ký t tính t bên trái.
b. Hàm RIGHT
Cú pháp:
RIGHT(string, n)
Công dng: Hàm trích t chui string n ký t tính t bên phi.
c. Hàm SUBSTRING
Cú pháp:
SUBSTRING(string, m, n)
Công dng: Hàm trích t chui string n ký t tính t t th m.
d. Hàm LTRIM
Cú pháp:
LTRIM(string)
Công dng: Hàm ct b khong trng tha bên trái chui string.
e. Hàm RTRIM
Cú pháp:
RTRIM(string)
Công dng: Hàm ct b khong trng tha bên phi chui string.
f. Hàm LEN
Cú pháp:
LEN(string)
Công dng: Hàm tr v độ dài ca chui string.
Thc hành
1. Khởi động SQL SERVER 2008:
a. Start à All programs à Microsoft SQL Server 2008 à SQL Server Management Studio
b. Chng thc
c. Chn Connect
2. ca s Object Explorer, click phi chut lên banhang và chn lnh New Query
3. ca s query, thc hin các câu lnh trong các Ví d trên.
-- oOO --
Lưu hành nội b Trang 72
Chương 6:
LP TRÌNH KT NI CSDL SQL SERVER 2008
Bài 10-11:
LP TRÌNH KT NỐI CƠ SỞ D LIU
* Chuẩn bị:
- Tên máy được sử dụng (SERVERNAME) là PC-PC
- Database được sử dụng (DATABASENAME) là QuanLyBanHang, gồm có các table:
+ Nhanvien + HoaDon
+ Sanpham + ChiTietHoaDon
+ Khachhang + ThanhPho
- Vi quan h (Relationship) như sau:
- S dng Visual Studio 2008 tạo một project mới (Windows Forms Application)
I. To kết ni - Vận chuyển dữ liệu
1. Khai báo namespace s dng
using System.Data.SqlClient;
2. Khai báo ở mức class
// Chuỗi kết nối
string strConnectionString = "Data
Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated
Security=True";
// Đối tượng kết nối
SqlConnection conn = null;
// Đối tượng đưa dữ liệu vào DataTable dtTABLENAME
SqlDataAdapter daTABLENAME = null;
// Đối tượng hiển thị dữ liệu lên Form
DataTable dtTABLENAME = null;
3. Khai báo ở Form Load
Lưu hành nội b Trang 73
// Khởi động kết nối
conn = new SqlConnection(strConnectionString);
// Vận chuyển dữ liệu lên DataTable dtTABLENAME
daTABLENAME = new SqlDataAdapter("SELECT * FROM
TABLENAME",conn);
dtTABLENAME = new DataTable();
daTABLENAME.Fill(dtTABLENAME);
4. Giải phóng tài nguyên
. Chuyển Form về chế độ Design View
. Ở cửa sổ properties của form đang chọn, click Events
. Nhắp đúp lên sự kiện FormClosing
. Viết code cho sự kiện này như sau:
// Giải phóng tài nguyên
dtTABLENAME.Dispose();
dtTABLENAME = null;
// Hủy kết nối
conn = null;
II. Đưa dữ liệu lên các đối tượng ListBox / ComboBox – DataGridView
1. Đưa dữ liệu lên ListBox / ComboBox
Ví d 10.1: Thiết kế form như sau
(lstThanhPho, btnThoat)
* Yêu cầu:
. Khi Form load: đưa dữ liệu từ table ThanhPho lên ListBox (lstThanhPho), kèm bẫy lỗi.
. Nhắp vào Button Thoát: dừng chương trình (có hin hp thoi hỏi đáp trước khi dng).
* Hướng dẫn:
- Thiết kế form như yêu cầu.
- Khai báo namespace s dng:
using System.Data.SqlClient;
- Ờ mức class, khai báo:
// Chuỗi kết nối
string strConnectionString = "Data Source=PC-PC;Initial
Catalog=QuanLyBanHang;Integrated Security=True";
// Đối tượng kết nối
SqlConnection conn = null;
// Đối tượng đưa dữ liệu vào DataTable dtThanhPho
SqlDataAdapter daThanhPho = null;
// Đối tượng hiển thị dữ liệu lên Form
DataTable dtThanhPho = null;