Ngôn ngữ định nghĩa dữ liệu : * CREATE TABLE - Tạo một bảng mới trong CSDL * ALTER TABLE - Sửa một bảng trong CSDL * DROP TABLE - Xóa một bảng trong CSDL * CREATE INDEX - Tạo index dùng
Trang 1Ngôn ngữ định nghĩa dữ liệu :
* CREATE TABLE - Tạo một bảng mới trong CSDL
* ALTER TABLE - Sửa một bảng trong CSDL
* DROP TABLE - Xóa một bảng trong CSDL
* CREATE INDEX - Tạo index (dùng để search key)
* DROP INDEX - Xóa index
Định nghĩa về PRIMARY KEY , FOREIGN KEY và UNIQUE :
(Cái này sẽ gặp trong phần sau)
PRIMARY KEY Constraint :
Một table thường có một hay nhiều cột có giá trị mang tính duy nhất để xác định một hàng bất kỳ trong table Ta thường gọi là Primary Key và được tạo ra khi ta Create hay Alter một table với Primary Key Constraint
Một table chỉ có thể có một Primary Key constraint Có thể có nhiều cột tham gia vào việc tạo nên một Primary Key, các cột này không thể chứa Null và giá trị trong các cột thành viên có thể trùng nhau nhưng giá trị của tất cả các cột tạo nên
Primary Key phải mang tính duy nhất
Còn FOREIGN KEY là gì :
Foreign Key là một cột hay một sự kết hợp của nhiều cột được sử dụng để áp đặt mối liên kết data giữa hai table Foreign key của một table sẽ giữ giá trị của
Primary key của một table khác và chúng ta có thể tạo ra nhiều Foreign key trong một table
Foreign key có thể reference (tham chiếu) vào Primary Key hay cột có Unique Constraints Foreign key có thể chứa Null Mặc dù mục đích chính của Foreign Key Constraint là để kiểm soát data chứa trong table có Foreign key (tức table con) nhưng thực chất nó cũng kiểm soát luôn cả data trong table chứa Primary key (tức table cha) Ví dụ nếu ta delete data trong table cha thì data trong table con trở nên
"mồ côi" (orphan) vì không thể reference ngược về table cha Do đó Foreign Key constraint sẽ đảm bảo điều đó không xảy ra Nếu bạn muốn delete data trong table cha thì trước hết bạn phải drop hay disable Foreign key trong table con trước Các ràng buộc FOREIGN KEY được sử dụng kết hợp với các ràng buộc
Trang 2PRIMARY KEY và UNIQUE nhằm đảm bảo tính toàn vẹn tham chiếu giữa các bảng được chỉ định
UNIQUE Constraint :
Bạn có thể tạo Unique Constraint để đảm bảo giá trị của một cột nào đó không bị trùng lập Tuy Unique Constraint và Primary Key Constraint đều đảm bảo tính duy nhất nhưng bạn nên dùng Unique Constraint trong những trường hợp sau:
• Nếu một cột (hay một sự kết hợp giữa nhiều cột) không phải là primary key Nên nhớ chỉ có một Primary Key Constraint trong một table trong khi ta có thể có nhiều Unique Constraint trên một table
• Nếu một cột cho phép chứa Null Unique constraint có thể áp đặt lên một cột chứa giá trị Null trong khi primary key constraint thì không
Cách tạo ra Unique Constraint cũng tương tự như Primary Key Constraint chỉ việc thay chữ Primary Key thành Unique SQL Server sẽ tự động tạo ra một
non-clustered unique index khi ta tạo một Unique Constraint
dondoc (vniss)
SQL Tutorials - Phần I (bài 2)
Thực hành :
Câu lệnh SQL SELECT :
Cú pháp :
Trích:
SELECT tên cột(s)
FROM tên bảng
Ví dụ 1:
Dùng Enterprise Manager tạo 1 table có tên là Persons như sau :
Trang 3Giờ ta sẽ dùng câu lệnh select để show các giá trị trong 2 cột LastName và
FirstName :
Trích:
SELECT LastName,FirstName FROM Persons
Kết quả :
Ví dụ 2:
Select all column :
Để select tất cả các cột trong table "Persons" ,sử dụng kí hiệu * thay cho tên cột : Trích:
SELECT * FROM Persons
Câu lệnh SELECT DISTINCT :
Câu lệnh này dùng để loại bỏ những giá trị giống nhau và chỉ show ra 1 giá trị
Cú pháp
Trích:
SELECT DISTINCT column_name(s)
FROM table_name
Ví dụ ta có 1 bảng Order như sau :
Ta nhận thấy trong cột Company có 2 giá trị giống nhau là W3Schools
Vậy muốn cột Company chỉ hiển thị duy nhất 1 giá trị W3Schools ta sử dụng câu lệnh DISTINCT như sau :
Trang 4Trích:
SELECT DISTINCT Company FROM Orders
Kết quả :
Bây giờ "W3Schools" trong danh sách chỉ có 1 kết quả trả về
dondoc (vniss)
SQL Tutorials - Phần I (bài 3)
Câu lệnh Where :
Cú pháp :
Trích:
SELECT column FROM table
WHERE column operator value
Câu lệnh WHERE thường được đi kèm với những toán tử sau đây :
Operator Description
= Bằng
<> Khác
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
BETWEEN Ở trong khoảng
LIKE Tìm kiếm theo kiểu
Chú ý : Trong 1 vài versions của SQL , toán tử <> được viết bằng !=
Sử dụng câu lệnh WHERE :
Trang 5Ta dùng Enterprise Manager thêm vào tables Persons một số trường như sau :
Bây giờ ta muốn lấy ra tất cả các trường có giá trị = "Sandnes" trong cột City ,làm như sau :
Trích:
SELECT * FROM Persons
WHERE City='Sandnes'
Kết quả :
Sử dụng dấu trích dẫn (Quotes)
Dấu Quotes (') được sử dụng để xác định 1 giá trị
Và chỉ được sử dụng với giá trị là text còn với giá trị là số (Numeric) thì ko được
sử dụng
Ví dụ :
Đối với giá trị text :
Trích:
Đây là câu lệnh này là đúng :
SELECT * FROM Persons WHERE FirstName='Tove'
Còn đây là câu lệnh này sai :
SELECT * FROM Persons WHERE FirstName=Tove
Đối với giá trị Numeric :
Trích:
Câu lệnh này là đúng :
SELECT * FROM Persons WHERE Year>1965
Còn câu lệnh này sai :
Trang 6SELECT * FROM Persons WHERE Year>'1965'