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.
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:
- Hướng dẫn SQL.pdf