Chèn INSERT dữ liệu vào bảng theo thứ tự chứa PK trước, sau đó đến FK... 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
Trang 1THỰC HÀNH SQL SERVER
ThS Lê Văn Phong - Hệ quản trị cơ sở dữ liệu
Trang 2NHỮ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
Trang 3MỘ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
Trang 4NULL 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 ) );
Trang 5KIỂU DỮ LIỆU EXACT NUMERIC (SỐ CHÍNH XÁC, KHÔNG SAI SỐ) TRONG SQL
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
Trang 6KIỂU DỮ LIỆU APPROXIMATE NUMERIC TRONG SQL
float -1.79E + 308 1.79E + 308 real -3.40E + 38 3.40E + 38
Trang 7KIỂU DỮ LIỆU DATE VÀ TIME TRONG SQL
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
Trang 8KIỂU DỮ LIỆU CHARACTER STRING (KIỂU CHUỖI) TRONG SQL
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
Trang 9KIỂU DỮ LIỆU UNICODE CHARACTER STRING (KIỂU CHUỖI CÓ CHỨA UNICODE) TRONG SQL
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)
Trang 10KIỂU DỮ LIỆU BINARY TRONG SQL
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)
Trang 11THUỘC TÍNH IDENTITY & AUTO_INCREMENT
IDENTYTI (Seed_Value, increment_value)
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:
Trang 12THUỘ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;
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’);
Ví dụ:
Trang 13THUỘ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
Trang 14CÂ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;