Hướng dẫn SQL

SQL căn bản

Giới thiệu SQL

Mô tảthếnào là SQL, cách dùng SQL.

SQL Select

Cách dùng phát biểu SELECT đểchọn dữliệu từmột bảng trong SQL.

SQL Where

Cách dùng mệnh đềWHERE đểchỉ định tiêu chuẩn chọn.

SQL And & Or

Cách dùng AND và OR đểkết nối hai hay nhiều điều kiện trong mệnh đềWHERE.

SQL Between

Cách dùng BETWEEN.AND đểtìm dữliệu trong một khoảng giới hạn.

SQL Distinct

Cách dùng từkhóa DISTINCT đểchỉtrảvềcác trịkhác nhau trong một cột.

SQL Order By

Cách dùng từkhóa ORDER BY đểtrảvềcác hàng được sắp xếp theo một thứtự định trước.

SQL Insert

Cách dùng phát biểu INSERT đểchèn hàng mới vào trong một bảng.

SQL Update

Cách dùng phát biểu UPDATE đểcập nhật hay thay đổi các hàng trong một bảng.

SQL Delete

Cách dùng phát biểu DELETE đểxóa các hàng trong một bảng.

SQL Count

Giải thích các hàm COUNT tạo sẵn trong SQL.

pdf20 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2114 | Lượt tải: 2download
Tóm tắt nội dung Hướng dẫn SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
như hàm SUM). 
Thiếu từ khóa HAVING sẽ không thể kiểm tra các điều kiện dùng hàm tổng. 
Cú pháp của HAVING như sau: 
SELECT column,SUM(column) FROM table 
GROUP BY column 
HAVING SUM(column) condition value 
SQL Tutorial 
© Dương Thiên Tứ 14 
Bảng "Sales": 
Company Amount 
W3Schools 5500 
IBM 4500 
W3Schools 7100 
Với SQL: 
SELECT Company,SUM(Amount) FROM Sales 
GROUP BY Company HAVING SUM(Amount)>10000 
Trả về kết quả 
Company SUM(Amount) 
W3Schools 12600 
Các bí danh (Alias) SQL 
Với SQL, các bí danh (alias) có thể dùng thay các tên cột và các tên bảng. 
Bí danh tên Cột 
Cú pháp như sau: 
SELECT column AS column_alias FROM table 
Bí danh tên Bảng 
Cú pháp như sau: 
SELECT column FROM table AS table_alias 
Ví dụ: Dùng bí danh tên Cột 
Bảng “Persons”: 
LastName FirstName Address City 
Hansen Ola Timoteivn 10 Sandnes 
Svendson Tove Borgvn 23 Sandnes 
Pettersen Kari Storgt 20 Stavanger 
Với SQL sau: 
SELECT LastName AS Family, FirstName AS Name 
FROM Persons 
Sẽ trả về kết quả sau: 
Family Name 
Hansen Ola 
Svendson Tove 
Pettersen Kari 
Ví dụ: Dùng bí danh tên Bảng 
Bảng “Persons”: 
LastName FirstName Address City 
Hansen Ola Timoteivn 10 Sandnes 
Svendson Tove Borgvn 23 Sandnes 
SQL Tutorial 
© Dương Thiên Tứ 15 
Pettersen Kari Storgt 20 Stavanger 
Với SQL sau: 
SELECT LastName, FirstName 
FROM Persons AS Employees 
Sẽ trả về kết quả sau: 
Bảng Employees: 
LastName FirstName 
Hansen Ola 
Svendson Tove 
Pettersen Kari 
SQL Join 
Joins and các Khóa (Key) 
Đôi khi chúng ta chọn dữ liệu từ hai bảng để tạo kết quả, Chúng ta thực hiện một kết nối (join). 
Các bảng trong cơ sở dữ liệu có thể liên hệ với các bảng khác thông qua các khóa. Một khóa chính (primary key) là một cột với 
các trị duy nhất cho mỗi hàng. Mục tiêu là ràng buộc dữ liệu, tham chiếu chéo các bảng, không cần lặp lại tất cả dữ liệu trong 
từng bảng. 
Trong bảng "Employees" phía dưới, cột "ID" là khóa chính, nghĩa là cột này không có hai hàng cùng ID. ID dùng phân biệt hai 
người nếu cả hai có cùng tên. 
Khi bạn xem bảng ví dụ phía dưới, chú ý rằng: 
• Cột "ID" là khóa chính của bảng "Employees" 
• Cột "ID" trong bảng "Orders" dùng để tham chiếu các tên trong bảng "Employees" không cần đưa các tên này vào 
bảng “Orders” 
Employees: 
ID Name 
01 Hansen, Ola 
02 Svendson, Tove 
03 Svendson, Stephen 
04 Pettersen, Kari 
Orders: 
ID Product 
01 Printer 
03 Table 
03 Chair 
Tham chiếu đến hai Bảng 
Chúng ta có thể chọn dữ liệu từ hai bảng bằng cách tham chiếu đến hai bảng, như sau: 
Ví dụ 
Ai đã đăng ký một sản phẩm và đăng ký sản phẩm nào? 
SELECT Employees.Name, Orders.Product 
FROM Employees, Orders 
WHERE Employees.ID = Orders.ID 
Kết quả 
Name Product 
Hansen, Ola Printer 
Svendson, Stephen Table 
SQL Tutorial 
© Dương Thiên Tứ 16 
Svendson, Stephen Chair 
Ví dụ 
Ai đã đăng ký một máy in? 
SELECT Employees.Name 
FROM Employees, Orders 
WHERE Employees.ID = Orders.ID 
AND Orders.Product = 'Printer' 
Kết quả 
Name 
Hansen, Ola 
Dùng các Kết nối (Join) 
HOẶC, chúng ta có thể chọn dữ liệu từ hai bảng với từ khóa JOIN, giống như sau: 
Ví dụ INNER JOIN 
Cú pháp 
SELECT field1, field2, field3 
FROM first_table 
INNER JOIN second_table 
ON first_table.keyfield = second_table.foreign_keyfield 
Ai đã đăng ký một sản phẩm và đăng ký sản phẩm nào? 
SELECT Employees.Name, Orders.Product 
FROM Employees 
INNER JOIN Orders 
ON Employees.ID = Orders.ID 
INNER JOIN trả về tất cả các hàng từ hai bảng khi điều kiện được so trùng. Nếu các hàng trong bảng Employees không so 
trùng trong bảng Orders, hàng đó sẽ không được liệt kê ra. 
Kết quả 
Name Product 
Hansen, Ola Printer 
Svendson, Stephen Table 
Svendson, Stephen Chair 
Ví dụ LEFT JOIN 
Cú pháp 
SELECT field1, field2, field3 
FROM first_table 
LEFT JOIN second_table 
ON first_table.keyfield = second_table.foreign_keyfield 
Liệt kê tất cả nhân viên, và các đăng ký mua của họ nếu có. 
SELECT Employees.Name, Orders.Product 
FROM Employees 
LEFT JOIN Orders 
ON Employees.ID = Orders.ID 
LEFT JOIN trả về tất cả các hàng từ bảng thứ nhất (Employees), cho dù nó không được so trùng trong bảng thứ hai (Orders). 
Nếu các hàng trong bảng Employees không so trùng trong bảng Orders, những hàng này cũng được liệt kê. 
Kết quả 
Name Product 
Hansen, Ola Printer 
Svendson, Tove 
Svendson, Stephen Table 
Svendson, Stephen Chair 
Pettersen, Kari 
Ví dụ RIGHT JOIN 
SQL Tutorial 
© Dương Thiên Tứ 17 
Cú pháp 
SELECT field1, field2, field3 
FROM first_table 
RIGHT JOIN second_table 
ON first_table.keyfield = second_table.foreign_keyfield 
Liệt kê tất cả nhân viên, và các đăng ký mua của họ nếu có. 
SELECT Employees.Name, Orders.Product 
FROM Employees 
RIGHT JOIN Orders 
ON Employees.ID = Orders.ID 
RIGHT JOIN trả về tất cả các hàng từ bảng thứ hai (Orders), cho dù nó không được so trùng trong bảng thứ nhất (Employees). 
Nếu có bất kỳ hàng nào trong bảng Orders không được so trùng trong bảng Employees, các hàng này cũng được liệt kê. 
Kết quả 
Name Product 
Hansen, Ola Printer 
Svendson, Stephen Table 
Svendson, Stephen Chair 
Ví dụ 
Ai đăng ký một máy in? 
SELECT Employees.Name 
FROM Employees 
INNER JOIN Orders 
ON Employees.ID = Orders.ID 
WHERE Orders.Product = 'Printer' 
Kết quả 
Name 
Hansen, Ola 
SQL Tạo Cơ sở dữ liệu và Bảng 
Tạo một Cơ sở dữ liệu 
Để tạo một cơ sở dữ liệu: 
CREATE DATABASE database_name 
Tạo một bảng 
Để tạo một bảng trong một cơ sở dữ liệu: 
CREATE TABLE table_name 
( 
column_name1 data_type, 
column_name2 data_type, 
....... 
) 
Ví dụ 
Ví dụ này minh họa các bạn tạo một bảng tên "Person", với bốn cột tên:"LastName", "FirstName", "Address", và "Age": 
CREATE TABLE Person 
( 
LastName varchar, 
FirstName varchar, 
Address varchar, 
Age int 
) 
Ví dụ này minh họa cách bạn chỉ định kích thước tối đa của vài cột: 
SQL Tutorial 
© Dương Thiên Tứ 18 
CREATE TABLE Person 
( 
LastName varchar(30), 
FirstName varchar, 
Address varchar, 
Age int(3) 
) 
Kiểu dữ liệu được chỉ định là kiểu dữ liệu chứa trong cột. Bảng dưới chứa các kiểu dữ liệu thường gặp nhất trong SQL: 
Kiểu dữ liệu Mô tả 
integer(size) 
int(size) 
smallint(size) 
tinyint(size) 
Chỉ chứa số nguyên. Số ký tự số tối đa được chỉ định trong dấu ngoặc đơn 
decimal(size, d) 
numeric(size,d) 
Chứa số với phân số. Số ký tự số tối đa được chỉ định trong "size". Số ký tự số tối đa bên phải (phần 
phân số) được chỉ định trong "d" 
char(size) Chứa chuỗi có kích thước cố định (có thể chứa ký tự chữ, số, và các ký tự đặc biệt). Kích thước cố 
định được chỉ định trong dấu ngoặc đơn 
varchar(size) Chứa một chuỗi có chiều dài thay đổi (có thể chứa ký tự chữ, số, và các ký tự đặc biệt). Kích thước 
tối đa được chỉ định trong dấu ngoặc đơn 
date(yyyymmdd) Chứa một ngày 
Tạo Chỉ mục (Index) 
Chỉ mục được tạo ra trên một bảng có sẵn để định vị thêm nhanh và hiệu quả các hàng. Có thể tạo một chỉ mục trên một hoặc 
nhiều cột của một bảng, với một chỉ mục cho một tên. Người dùng không nhìn thấy các chỉ mục, chúng chỉ dùng để tăng tốc độ 
truy vấn. 
Chú ý: Cập nhật một bảng chứa chỉ mục cần nhiều thời gian hơn cập nhật một bảng không chứa chỉ mục, vì chỉ mục cũng cần 
cập nhật. Tuy nhiên, ý tưởng tốt là tạo chỉ mục chỉ trên các cột thường tìm kiếm nhất. 
Một Chỉ mục duy nhất 
Tạo một chỉ mục duy nhất trên một bảng. một chỉ mục duy nhất nghĩa là không thể có hai hàng có cùng một trị chỉ mục. 
CREATE UNIQUE INDEX index_name 
ON table_name (column_name) 
"column_name" chỉ định cột bạn muốn chỉ mục. 
Một Chỉ mục đơn giản 
Tạo một chỉ mục đơn giản trên một bảng. Khi từ khóa UNIQUE không có, các trị trùng sẽ được cho phép. 
CREATE INDEX index_name 
ON table_name (column_name) 
"column_name" chỉ định cột bạn muốn chỉ mục. 
Ví dụ 
Ví dụ này tạo một chỉ mục đơn giản, có tên "PersonIndex", trên field LastName của bảng Person: 
CREATE INDEX PersonIndex 
ON Person (LastName) 
Nếu bạn muốn chỉ mục các trị trong một cột theo thứ tự giảm (descending), bạn có thể thêm từ DESC sau tên cột: 
CREATE INDEX PersonIndex 
ON Person (LastName DESC) 
Nếu bạn muốn chỉ mục nhiều hơn một cột bạn có thể liệt kê các tên cột trong dấu ngoặc đơn, tách chúng bằng dấu phẩy: 
CREATE INDEX PersonIndex 
ON Person (LastName, FirstName) 
Xóa chỉ mục 
Bạn có thể xóa một chỉ mục có trong một bảng với phát biểu DROP. 
DROP INDEX table_name.index_name 
Xóa một cơ sở dữ liệu hoặc bảng 
Để xóa một cơ sở dữ liệu: 
SQL Tutorial 
© Dương Thiên Tứ 19 
DROP DATABASE database_name 
Để xóa một bảng: 
DROP TABLE table_name 
Để xóa toàn bộ dữ liệu trong bảng mà không xóa bảng: 
DELETE TABLE table_name 
SQL Alter Table 
Alter Table 
Phát biểu ALTER TABLE dùng để thêm hay loại bỏ các cột trong một bảng cho trước. 
ALTER TABLE table_name 
ADD column_name datatype 
ALTER TABLE table_name 
DROP column_name 
Person: 
LastName FirstName Address 
Pettersen Kari Storgt 20 
Ví dụ 
Để thêm một cột tên "City" vào bảng "Person": 
ALTER TABLE Person ADD City varchar(30) 
Kết quả: 
LastName FirstName Address City 
Pettersen Kari Storgt 20 
Ví dụ 
Để loại cột "Address" khỏi bảng "Person": 
ALTER TABLE Person DROP Address 
Kết quả: 
LastName FirstName City 
Pettersen Kari 
Sách SQL 
Sách Mô tả 
Teach Yourself SQL in 10 Minutes 
September 1999 
Loại sách tutorial, tổ chức thành chuỗi các bài học-10 phút đơn giản. 
SQL Tutorial 
© Dương Thiên Tứ 20 
SQL Queries for Mere Mortals 
August 2000 
Giúp người dùng mới học cơ bản về các truy vấn SQL, và cung cấp một hướng dẫn tham 
chiếu cần thiết với người dùng có trình độ cao hơn. 
SQL: The Complete Reference 
October 1999 
Cung cấp tất cả những gì bạn cần biết về SQL. 
Professional SQL Server 2000 Programming 
December 2000 
Cung cấp một hướng dẫn toàn diện để lập trình với SQL Server 2000. 
Professional SQL Server 7.0 Programming 
September 1999 
Cung cấp tổng quan về tất cả các bộ phận của SQL Server. 

File đính kèm:

  • pdfHướng dẫn SQL.pdf
Tài liệu liên quan