Tuesday, 30 March 2021

C# Các câu lệnh truy vấn dữ liệu

C# Các câu lệnh truy vấn dữ liệu

Bài 6:  CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU

1.     Khởi động SQL SERVER 2012: Start à All programs à Microsoft SQL Server 2012 à SQL Server Management Studio è  Chứng thực è Connect

2.     Restore database QLHD

3.     Click phải lên QLHD và chọn New Query

4.     Ở cửa sổ query, viết các câu lệnh truy vấn dữ liệu

I.     Các câu lệnh truy vấn cơ bản

1.     Câu lệnh chọn dữ liệu

SELECT [DISTINCT][TOP n] cột1, cột2, cột3… [INTO tên_bảng_mới]

FROM danh_sách_bảng

[WHERE điều_kiện]

[ORDER BY cột_sắp_xếp]

Chú ý: Các thành phần trong câu lệnh SELECT phải được sử dụng theo đúng thứ tự trên.

- Chọn tất cả các field: lệnh sau sẽ liệt kê tất cả dữ liệu trong bảng NHANVIEN.

SELECT * FROM nhanvien

- Đặt tên cột trong kết quả:

SELECT 'Họ'=ho , 'Tên' =ten, 'Địa Chỉ' = diachi  FROM nhanvien

- Biểu thức trong câu lệnh SELECT:

SELECT 'Họ và Tên' = ho +' '+ ten, 'Điện thoại'=dienthoai FROM nhanvien

- Tạo bảng mới bằng SELECT … INTO:

SELECT ho, ten, dienthoai INTO nhanviennu FROM nhanvien WHERE Nu=1

- Sắp xếp (ASC: tăng, DESC: giảm) bằng ORDER BY:

SELECT * FROM khachhang ORDER BY TenCty ASC

-        Đặt điều kiện truy xuất dữ liệu bằng mệnh đề WHERE

SELECT ho,ten FROM nhanvien WHERE Nu=0

2.     Thêm dữ liệu vào bảng

INSERT INTO tên_bảng [(danh_sách_cột)]  VALUES(danh_sách_trị) 

-        Câu lệnh sau đây thêm một dòng dữ liệu vào bảng NHANVIEN

INSERT INTO nhanvien(ho, ten, nu) VALUES(N'Nguyễn Văn', N'Tèo', 0)

3.     Cập nhật dữ liệu trong bảng

UPDATE tên_bảng SET tên_cột = biểu_thức WHERE [điều_kiện]

-        Ví dụ:

UPDATE nhanvien SET diachi = N'156 Trần phú  WHERE manv = 9

4.     Xóa dữ liệu trong bảng

DELETE FROM tên_bảng  [WHERE điều_kiện]

Lệnh sau xoá khỏi bảng NHANVIEN những nhân viên có mã là 9

DELETE FROM nhanvien WHERE MaNV=9

II.  Các toán tử trong câu lệnh SQL

Toán tử

Ý nghĩa

AND / OR

Và / Hoặc

= , > , < , >=, <=

Bằng , Lớn hơn, Nhỏ hơn, Lớn hơn hoặc bằng, Nhỏ hơn hoặc bằng

<> , !>, !<

Khác, Không lớn hơn, Không nhỏ hơn

IN, NOT IN

Nằm trong danh sách, Không nằm trong danh sách

BETWEEN

BETWEEN a AND b nghĩa là (a ≤ Giá_trị ≤ b)

NOT BETWEEN

NOT BETWEEN a AND b nghĩa là (Giá_trị < a) AND (Giá_trị > b)

LIKE

Đối sánh mẫu có sử dụng ký tự đại diện:

%: Chuỗi ký tự bất kỳ ;   _ : Một ký tự bất kỳ

III.         Một số hàm thường dùng trong câu lệnh SQL

1.     Hàm ngày – giờ

-        Hàm DataAdd: Trả về giá trị DateTime bằng cách cộng thêm number vào date.

DATEADD(datepart, number, date)

Datepart: chỉ định thành phần sẽ được cộng thêm vào date.

DatePart

Viết tắt

DatePart

Viết tắt

year

yy, yyyy

week

wk, ww

quarter

qq, q

hour

Hh

month

mm, m

minute

mi, n

dayofyear

dy, y

second

ss, s

day

dd, d

milisecond

Ms

-        Hàm DATEDIFF: Trả về thời gian giữa startdateenddate, đơn vị tùy vào datepart.

DATEDIFF(datepart, startdate, enddate)

Ví dụ:  DateDiff(year, '3/10/2003', '6/15/2010') à kết quả: 7

-        Hàm DATEPART: Trả về 1 số nguyên được trích ra từ datepart trong giá trị ngày date.

DATEPART(datepart, date)

Ví dụ:  DatePart(year, '6/15/2010') à kết quả: 2010

-        Hàm GETDATE: trả về giá trị là ngày hiện tại.

GETDATE()

-        Hàm DAY, MONTH, YEAR

DAY(date) / MONTH(date) / YEAR(date)

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

Year('6/15/2010') à kết quả: 2010

2.     Hàm chuỗi

-        Hàm LEFT:  trích từ chuỗi string n ký tự tính từ bên trái.

LEFT(string, n)

-        Hàm RIGHT: trích từ chuỗi string n ký tự tính từ bên phải.

RIGHT(string, n)

-        Hàm SUBSTRING: trích từ chuỗi string n ký tự tính từ ký tự thứ m.

SUBSTRING(string, m, n)

-        Hàm LEN: trả về độ dài của chuỗi string.

LEN(string)





Học C#  Ngày 11 (thực hành trên lớp):


use QLHD
go
-- xem tất cả
select * from Nhanvien
go
-- xem cột
select ho, ten, ngaynv from Nhanvien
go
-- xử lý cột (ghép, tính toán)
select ho + ' ' + ten as hoten, ngaynv from Nhanvien where Nu=1
go
-- sắp xếp thứ tự
select * from Nhanvien order by Ten desc
asc
go
-- sắp xếp ngẫu nhiên
select * from Nhanvien order by newid()
go
-- lấy top
select top5 * from Nhanvien where Nu=1 order by  newid()
go
-- or
select * from Sanpham where DonViTinh='kg' or DonViTinh='chai'
go
-- and
select * from Sanpham where DonGia > 30 and DonGia < 60
go
-- in
select * from Sanpham where DonViTinh in('kg','chai')
go
-- between ..and
select * from Sanpham where DonGia between 30 and 60
go
--LIKE (tìm kiếm gần đúng)
select * from Nhanvien where DiaChi like '%Q1'
go
select * from Nhanvien where DiaChi like N'%Hùng Vương%'
go
-- getdate (Ngày, Tháng, Năm)
select getdate()
go
select datepart(year, getdate())
go
select ho, ten, datepart(year, ngaynv) from Nhanvien where datepart(year, ngaynv)> 1992
go
-- datediff (trả về thời gian thừa)
select ho, ten, datediff(year, ngaynv, getdate()) from Nhanvien
go
select datediff(second,'1991-05-01', getdate())
go

0 comments:

Post a Comment