background img

Bài Viết Mới

SQL LANGUAGE : BASIC [1/3]

Phần đầu này, giới thiệu các lệnh cơ bản nhất và cũng quan trọng nhất trong SQL. Việc học nó quả thực không khó vì cấu trúc cú pháp không nhiều. Vấn đề là các bạn sẽ dùng nó như thế nào, áp dụng ra sao. Điều này tùy thuộc vào khả năng nhạy bén của từng cá nhân. Hy vọng qua loạt bài giới thiệu về ngôn ngữ SQL này, các bạn thấy nó  là thông tin bổ ích cho mình.





 

Thông tin cần biết
 





Nội dung các bài viết giới thiệu khái quát nhất ngôn ngữ SQL chuẩn. Và vì thế một số cú pháp có thể
không khả thi trên các hệ quản trị cơ sở dữ liệu phổ biến như: Oracle, MS SQL Server, MySQL, MS Access
DB2 and more. Tuy nhiên, đây là một ngôn ngữ chuẩn được công nhận nên việc thực thi các lệnh sql trên
các hệ csdl khác nhau không khác lắm. Ngoài một số thành phần các hãng phát triển thêm cho chương trình
quản lý csdl của mình thì cốt lõi vẫn tuân theo chuẩn của SQL Language. Các ví dụ trong bài, chủ yếu được
test bằng SQL Server. Và database dùng là NorthWind một ví dụ nổi tiếng được dùng rộng rãi nhiều năm qua.
Các bạn tải về để thực hành, ngoài ra các lệnh SQL thực thi cho MySQL, Oracle... các bạn tự kiểm tra nhé.


Vì đây là blog thiên về .Net nên các ví dụ tôi hay test trên SQL Server. Cuối

loạt bài sẽ có phần screencast demo cho thêm phần chi tiết. Và một điều nữa, tất

cả bài viết trên blog này đều dựa trên tiêu chí share and share.


A. SQL Introduction



          SQL là gì ?

-       SQL viết tắt của Structured Query Language

-       SQL cho phép bạn truy cập và thao tác CSDL

-       SQL là một chuẩn ANSI (American National Standards Institute)

 

SQL có thể làm gì ?

-       SQL có thể thực hiện truy vấn đối với một CSDL ( execute queries)

-       SQL có thể lấy dữ liệu từ một CSDL (retrieve data)

-       SQL có thể chèn các bản ghi trong CSDL (insert records)

-       SQL có thể cập nhật các bản ghi trong CSDL (update records)

-       SQL có thể xóa một bản ghi từ một CSDL (delete records)

-       SQL có thể tạo ra CSDL mới (New Databases)

-       SQL có thể tạo ra các bảng mới trong CSDL (Table)

-       SQL có thể tạo ra các thủ tục được lưu trữ trong một CSDL (Stored procedures )

-       SQL có thể tạo ra quan điểm trong một CSDL ( views)

-       SQL có thể thiết lập quyền truy cập vào các table, thủ tục và quan điểm


Vấn đề cần biết !

-       Mặc dù SQL là một tiêu chuẩn nhưng cũng có những phiên bản khác nhau của SQL.

-       Và để phù hợp với các tiều chuẩn ANSI, tất cả đều hộ trợ tối thiểu các lệnh như:

      SELECT – INSERT – UPDATE – DELETE – WHERE

-       Hầu hết các chương trình CSDL SQL có phần mở rộng độc quyền của mình, ngoài các tiêu chuẩn của SQL

Sử dụng SQL trong trang web cần:

-       Một chương trình CSDL RDBMS ( Relational Database Management System – RDBMS là cơ sở cho SQL cũng như các hệ thống CSDL khác. ví dụ như:   MS SQL Server, MySQL, SQLite, MS Access, Oracle, IBM DB2 . . .)

-       Máy chủ sử dụng một ngôn ngữ kịch bản như PHP, ASP . . .

-       Sử dụng SQL để lấy dữ liệu

-       Sử dụng HTML/CSS , ASP.NET . . .

Note:

-       Các dữ liệu trong RDBMS được lưu trữ trong các đối tượng CSDL và được gọi là bảng (table)

-       Một bảng là một collection các mục dữ liệu liên quan và nó bao gồm các cột và hàng

B. SQL Syntax


 
Database Tables


-       Một CSDL thường bao gồm một hoặc nhiều bảng. Mỗi bảng được xác định bởi một tên duy nhất. Mỗi bảng chứa các record với dữ liệu nhập vào. Ví Dụ: SinhVien, GiangVien…

Example : tblStudent


 









Bảng Records

 




-       Ở bảng trên có tất cả 8 columns và 2 records





Bạn có thể viết cú pháp SQL hoa hoặc thường đều như nhau.

Dấu chấm phẩy “;” sau mỗi câu lệnh SQL

-       Dấu chấm phẩy là tiêu chuẩn để tách mỗi câu lệnh SQL. Trong một hệ thống CSDL cho phép một lúc nhiều câu lệnh SQL gọi đến máy chủ



-       Chúng ta sẽ sử dụng dấu chấm phẩy cho mỗi câu lệnh trong bài viết này.






Một số câu lệnh SQL quan trọng nhất

-       SELECT : Lấy dữ liệu từ CSDL

-       UPDATE : Cập nhật dữ liệu trong CSDL

-       DELETE : Xóa dữ liệu trong CSDL

-       INSERT INTO : Thêm mới dữ liệu vào CSDL

-       CREATE DATABASE : Tạo mới một CSDL

-       ALTER DATABASE : Sửa đổi một CSDL

-       CREATE TABLE : Tạo một bảng mới

-       ALTER TABLE : Chỉnh sửa một table

-       DROP TABLE : Xóa một bảng (Table)

-       CREATE INDEX : Tạo một index ( Tạo một chỉ số duy nhất có thứ tự dùng cho việc tìm kiếm)

-       DROP INDEX : Xóa một index


Phần này nội dung bao gồm :


SELECT
Lấy dữ liệu từ cơ sở dữ liệu và lưu kết quả ra một bảng
DISTINCT
Lệnh Distinct đi với Select lấy ra các giá trị và bỏ qua giá trị trùng lặp
WHERE
Mệnh đề này ra các điều kiện để select dữ liệu theo ý
ORDER BY
Từ khóa này giúp sắp xếp dữ liệu một cách có thứ tự từ nhỏ đến lớn hoặc ngược lại
INSERT INTO
Lệnh này dùng để thêm dữ liệu vào một table
UPDATE
Lệnh này dùng để cập nhật lại (sửa) dữ liệu đang tồn tại trong table
DELETE
Lệnh này dùng để xóa dữ liệu (Các bản ghi) trong table
TOÁN TỬ#
AND & OR là hai toán tử cơ bản nhất thường được sử dụng kèm với các mệnh đề trong các lệnh SQL và các toán tử khác

1. SQL Select
Lệnh SELECT

-       Câu lệnh SELECT được sử dụng để lấy dữ liệu từ một CSDL

-       Kết quả được lưu trữ vào một bảng kết quả, được gọi là bộ kết quả (ResultSet)

Cú Pháp:

-       SELECT  StudentID, FirstName, LastName FROM tblStudent;

-       SELECT * FROM tblStudent;


2. SQL Distinct
Lệnh Distinct

-       Trong các bảng có thể chứa nhiều giá trị trùng lặp mà bạn chỉ muốn lấy những giá trị khác biệt thì từ khóa “Distinct” sẽ giúp bạn làm điều đó.

-       Nó sẽ loại bỏ các giá trị bị trùng lặp. Ví dụ: Ta cần lấy column họ tên trong bảng Danh sách, thì nếu có 2 người trùng tên, nó sẽ chỉ lấy ra tên 1 người.

Cú pháp:

-       SELECT DISTINCT StudentID,FirstName  FROM tblStudent;

-       SELECT DISTINCT LastName FROM tblStudent;


3. SQL Where
Mệnh đề Where

-       Được dùng để xuất những records với một điều kiện cụ thể.

Cú Pháp:

-       SELECT StudentID, FirstName FROM tblStudent WHERE StudetnID <=5;

-       .....

Các toán tử được sử dụng trong mệnh đề Where

-       =                : Bằng

-       <> / !=      : Không bằng

-       >                : Lớn hơn

-       <                : Bé hơn

-       >=             : Lớn hoặc bằng

-       <=             : Bé hoặc bằng

-       AND            : Và – Hiển thị tất cả records nếu điều kiện 1 2 thỏa mãn.

-       OR              : Hoặc - Hiển thị tất cả records nếu điều kiện 1 hoặc 2 thỏa mãn.

-       BETWEEN   : Giữa khoảng

-       SELECT  * FROM tblStudent WHERE StudentID BETWEEN 1 AND 5;

Chọn tất cả records từ bảng tblStudent, điều kiện StudentID từ 1 đến 5.

-       LIKE           : Tìm kiếm mô hình có chứa . . .

-       SELECT  * FROM tblStudent WHERE FirstName LIKE ‘%a%’;

Chọn tất cả records từ bảng tblStudent, điều kiện FirstName có chứa chữ ‘a’.

-       IN               : Dùng để xác định nhiều giá trị cho một cột. (Nhớ sử dụng ngoặc kép)

-       SELECT  * FROM tblStudent WHERE FirstName IN (“Tuan”, “Yen”);

Chọn tất cả records từ bảng tblStudent, điều kiện FirstName có Tuan và Yen



4. SQL Order By

Từ Khóa Order By


-       Được sử dụng để sắp xếp bảng kết quả thiết lập bởi một hoặc nhiều cột.

-       Mặc định kết quả được sắp xếp tăng dần, có hoặc không sử dụng từ khóa ASC.

-       Nếu muốn giả dần cần sử dụng từ khóa DESC

-       SELECT * FROM tblStudent ORDER BY StudentID DESC;     // Giảm dần

-       SELECT * FROM tblStudent ORDER BY StudentID;              // Tăng dần

5. SQL Insert
Lệnh Insert Into

-       Dùng để chèn (thêm mới) records vào bảng

Cú pháp:

-       Có 2 cách thức dùng:

a.     Không xác định tên các cột sẽ thêm mới giá trị


INSERT INTO tblStudent VALUES (‘SV003’, ‘Tuan’, ‘Le Minh’, . . . . . . . . )

b.    Xác định rõ tên các cột sẽ được thêm giá trị

// Có thể chỉ nhập các cột mà bạn muốn !

INSERT INTO tblStudent (StudentID, FirstName, LastName, . . . . . . . .)

VALUES (‘SV003’, ‘Tuan’, ‘Le Minh’, . . . . . . . . )

-       Trong các hệ CSDL có giá trị AutoNumber sẽ tăng tự động nên bạn không cần phải nhập trường giá trị này

6. SQL Update
Lệnh Update

-       Sử dụng để cập nhật, sửa các records

Cú pháp :

-       UPDATE tblStudent SET FirstName=’Yen’, LastName= ’Nguyen Hai’

WHERE StudentID= ’1’ ;

-       UPDATE tblStudent SET FirstName=’Yen’, LastName= ’Nguyen Hai’

WHERE FirstName= ’Tuan’ ;

Lưu Ý:

-       Mệnh đề Where quy định cụ thể những Records nào sẽ được cập nhật, nếu bỏ qua thì tất cả records sẽ được cập nhật lại theo yêu cầu !



7. SQL Delete

Lệnh Delete


-       Sử dụng để xóa các records trong một bảng

Cú pháp :

-       DELETE FROM tblStudent WHERE StudentID=’1’;

-       DELETE FROM tblStudent WHERE Firstname=’Tuan’ AND LastName =’Le Minh’;

Xóa tất cả !

-       DELETE FROM tblStudent;



-       DELETE * FROM tblStudent; // Bạn không thể khôi phục sau đó.

 


----------------------------------------------------------------------------------------------------------------------

:ahhyes:

Thank for reading !



Nguồn: Tự Học IT Online - http://tuhocit.net

2 nhận xét: Leave Your Comments

Xem Nhiều