THỰC HÀNH SQL SERVER
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
1
NHỮNG CÔNG VIỆC CẦN THIẾT ĐỂ CÓ MỘT CƠ SỞ DỮ LIỆU
1. Tạo ra một DATABASE bằng câu lệnh
2. Câu lệnh Use để gọi đến DATABASE vừa tạo
3. Tạo bảng trên DATABASE vừa tạo
4. Thiết lập các ràng buộc (Constraint) khóa chính (Primary key), khóa ngoại liên
kết (Foreign key).
5. Thiết lập ràng buộc khác theo yêu cầu như: UINQUE, CHECK, DEFAUL, …
6. Chèn (INSERT) dữ liệu vào bảng theo thứ tự chứa PK trước, sau đó đến FK.
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
2
MỘT SỐ CÂU LỆNH CƠ BẢN TRONG SQL
SELECT: Truy xuất hoặc là lấy dữ liệu từ DATABASE
UPDATE: để cập nhật dữ liệu
DELETE: Xóa dữ liệu
INSERT INTO OR INSERT: Chèn dữ liệu vào bảng
CREATE DATABASE: Tạo cơ sở dữ liệu mới
ALTER DATABASE : Sửa cơ sở dữ liệu đã tạo
CREATE TABLE: Tạo bảng mới
ALTER TABLE: Sửa bảng
DROP TABLE: Xóa bảng
CREATE INDEX: Tạo chỉ mục
DROP INDEX: Xóa chỉ mục
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
3
NULL VÀ NOT NULL
• Theo mặc định, một cột có thể giữ các giá trị NULL. Nếu không muốn một cột mà có
một giá trị NULL, thì cần định nghĩa ràng buộc NOT NULL trên cột này, để xác định
rằng bây giờ NULL là không được chấp nhận bởi cột đó.
• Một NULL tương tự như không có dữ liệu nào, nó biểu diễn một dữ liệu không biết.
CREATE TABLE SINHVIEN
( ID INT NOT NULL,
TEN VARCHAR (20) NOT NULL,
TUOI INT NOT NULL,
KHOAHOC CHAR (25) ,
HOCPHI DECIMAL (18, 2),
PRIMARY KEY (ID) );
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
4
KIỂU DỮ LIỆU EXACT NUMERIC (SỐ CHÍNH XÁC, KHÔNG SAI SỐ) TRONG SQL
Kiểu dữ liệu
Từ
Tới
int
-2,147,483,648
2,147,483,647
smallint
-32,768
32,767
tinyint
0
255
bit
0
1
decimal
-10^38 +1
10^38 -1
numeric
-10^38 +1
10^38 -1
money
-922,337,203,685,477.5808
+922,337,203,685,477.5807
smallmoney
-214,748.3648
+214,748.3647
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
5
KIỂU DỮ LIỆU APPROXIMATE NUMERIC TRONG SQL
Kiểu dữ liệu
Từ
Tới
float
-1.79E + 308
1.79E + 308
real
-3.40E + 38
3.40E + 38
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
6
KIỂU DỮ LIỆU DATE VÀ TIME TRONG SQL
Kiểu dữ liệu
Từ
Tới
datetime
Jan 1, 1753
Dec 31, 9999
smalldatetime
Jan 1, 1900
Jun 6, 2079
date
Lưu giữ một date dạng June 30, 1991
time
Lưu giữ một time dạng 12:30 P.M.
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
7
KIỂU DỮ LIỆU CHARACTER STRING (KIỂU CHUỖI) TRONG SQL
Kiểu dữ liệu
Miêu tả
char
Không chứa Unicode, độ dài tối đa là 8.000 ký tự (các ký tự
không phải Unicode có độ dài cố định)
varchar
Không chứa Unicode, độ dài tối đa là 8.000 ký tự (dữ liệu không
phải Unicode có độ dài có thể thay đổi)
varchar(max)
Không chứa Unicode, độ dài tối đa là 231 ký tự, dữ liệu không
phải Unicode có độ dài có thể thay đổi (chỉ với SQL Server 2005)
text
Không chứa Unicode, độ dài tối đa là 2.147.483.647 ký tự, dữ
liệu không phải Unicode có độ dài có thể thay đổi
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
8
KIỂU DỮ LIỆU UNICODE
CHARACTER STRING (KIỂU CHUỖI CÓ CHỨA UNICODE) TRONG SQL
Kiểu dữ liệu
Miêu tả
nchar
Độ dài tối đa là 4.000 ký tự (Unicode có độ dài cố
định)
nvarchar
Độ dài tối đa là 4.000 ký tự (Unicode có độ dài có thể
thay đổi)
nvarchar(max)
Độ dài tối đa là 231 ký tự, Unicode có độ dài có thể
thay đổi (chỉ với SQL Server 2005)
ntext
Độ dài tối đa là 1.073.741.823 ký tự (Unicode có độ dài
có thể thay đổi)
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
9
KIỂU DỮ LIỆU BINARY TRONG SQL
Kiểu dữ liệu
Miêu tả
binary
Độ dài tối đa là 8.000 byte (dữ liệu binary có độ dài cố
định )
varbinary
Độ dài tối đa là 8.000 byte (dữ liệu binary có độ dài có
thể thay đổi)
varbinary(max)
Độ dài tối đa là 231 byte, dữ liệu binary có độ dài có thể
thay đổi (chỉ với SQL Server 2005)
image
Độ dài tối đa là 2.147.483.647 byte (dữ liệu binary có độ
dài có thể thay đổi)
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
10
THUỘC TÍNH IDENTITY & AUTO_INCREMENT
1. Thuộc tính
- IDENTITY hay còn gọi là thuộc tính nhận dạng của SQL Server được sử dụng để
tạo ra cột nhận dạng, chúng chứa các giá trị tự động phát sinh tuần tự để nhận dạng
duy nhất mỗi hàng trong một bảng.
- Mỗi bảng chỉ được phép duy nhất một thuộc tính nhận dạng
- Một thuộc tính nhận dạng có 2 thành phần:
+ Giá trị khởi đầu (seed value)
+ Giá trị tăng (Incement value) hay còn gọi là bước nhảy
Cú pháp:
IDENTYTI (Seed_Value, increment_value)
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
11
THUỘC TÍNH IDENTITY & AUTO_INCREMENT
1. Thuộc tính
- Nếu viết IDENTITY mà không có phần Seed_Value và increment_value thì mặc
định sẽ là IDENTITY(1,1). Nghĩa là tăng bắt đầu là 1, 2, 3, …
- Nếu viết IDENTITY(3,5). Nghĩa là tăng bắt đầu là 3, 8, 13, …
* Lưu ý: Không thể chỉnh sửa (UPDATE) được các giá trị của cột đặt Identity, do các giá
trị của cột đặt IDENTITY là tự động được sinh ra trong quá trình chèn (INSERT) bản ghi,
nên nếu muốn chủ động đặt giá trị tại cột này trong quá trình chừn bản ghi cần thực hiện
như sau:
SET IDENTITY_INSERT TÊN_BẢNG ON;
Ví dụ:
INSERT Tên _bảng(Các_cột) Values (Các_giá_tri);
SET IDENTITY_INSERT Student ON;
INSERT Student (StudentID, Studentname) Values (13,’ABCD’);
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
12
THUỘC TÍNH IDENTITY & AUTO_INCREMENT
2. Thuộc tính AUTO_INCREMENT
- AUTO_INCREMENT có ý nghĩa tương tự Identity nhưng được sử dụng trong
MySQL.
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
13
CÂU LỆNH SELECT VỚI JOIN
Câu lênh SELECT với JOIN (INNER JOIN) dùng để lấy dữ liệu từ hai bảng có liên
quan hoặc liên kết với nhau.
Ví dụ: Bảng Student ở bài thực hành số 1 chứa thông tin sinh viên, bảng Mark chứa
điểm sinh viên, hai bảng này có chung StudentID. Vậy nếu muốn biết các sinh viên
có điểmm số như thế nào cần sử dụng JOIN trong câu lệnh SELECT.
Cú pháp: Lấy tất cả các cột của bảng
SECLECT * FROM Bảng_1 Bí_danh1 JOIN Bảng_2 Bí_danh2 ON
Bí_danh1.Cột_chung=Bí_danh2.Cột_chung;
ThS. Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
14