SQL Basic (I)

1) Introduction to SQL :

SQL là gì ?

SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.

SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…. 

Nói tóm tắt lại như sau :
* SQL là ngôn ngữ được sử dụng cho các hệ quản trị cơ sở dữ liệu (CSDL)
* SQL cho phép thao tác với CSDL
* SQL là ngôn ngữ chuẩn được đưa ra bởi ANSI (American National Standards Institude)
* SQL có thể thực thi câu truy vấn với CSDL
* SQL có thể lấy dữ liệu ra từ CSDL
* SQL có thể chèn những bản ghi vào CSDL
* SQL có thể xóa những bản ghi trong CSDL
* SQL có thể cập nhật thêm những bản ghi vào CSDL
* SQL rất dễ học

2) SQL Database Tables

Lý thuyết cơ bản:

SQL Data Manipulation Language (DML)
Những ngôn ngữ thao tác dữ liệu :

* SELECT – Hiển thị dữ liệu từ bảng trong CSDL
* UPDATE – Cập nhật dữ liệu vào các bảng trong CSDL
* DELETE – Xóa dữ liệu từ các bảng trong CSDL
* INSERT INTO – Thêm dữ liệu mới vào trong một bảng CSDL
* WHERE – Chỉ rõ đối tượng cần chọn

SQL Data Definition Language (DDL)
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 để 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 PRIMARY 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.