PDA

View Full Version : Câu_lệnh_sql(cơ bản-khá hay)



nhol_xk
02-11-2010, 08:10 PM
SQL Tutorial
© Dương Thiên Tứ 1
Welcome to SQL tutorial

Mục lục 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.
SQL nâng cao
Các hàm SQL
Giải thích cách dùng các hàm tạo sẵn trong SQL.
SQL Group By
Giải thích cách dùng hàm GROUP BY tạo sẵn trong SQL.
Các bí danh SQL
Giải thích cách dùng các bí danh (alias) cho các tên cột và các tên bảng.
SQL Join
Giải thích cách chọn thông tin từ nhiều bảng.
SQL Create
Cách tạo các cơ sở dữ liệu và các bảng, và cách xóa chúng.
SQL Alter
Cách dùng phát biểu ALTER TABLE để thêm hay loại các cột trong một bảng cho trước.
Giới thiệu SQL
SQL là một ngôn ngữ theo chuẩn ANSI để truy xuất các cơ sở dữ liệu.
SQL là gì?
• SQL là Structured Query Language – Ngôn ngữ Truy vấn có Cấu trúc
• SQL cho phép bạn truy xuất một cơ sở dữ liệu
• SQL là một ngữ theo chuẩn ANSI
• SQL có thể thực hiện các truy vấn đến một cơ sở dữ liệu
• SQL có thể truy tìm dữ liệu từ một cơ sở dữ liệu
• SQL có thể chèn các mẩu tin mới vào trong một cơ sở dữ liệu
• SQL có thể xóa các mẩu tin trong một cơ sở dữ liệu
SQL Tutorial
© Dương Thiên Tứ 2
• SQL có thể cập nhật các mẩu tin trong một cơ sở dữ liệu
• SQL rất dễ học





SQL là một chuẩn

SQL là một chuẩn ANSI (American National Standards Institute - Viện Tiêu chuẩn Quốc gia Mỹ) cho các hệ thống truy xuất cơ


sở dữ liệu. Các phát biểu SQL dùng để truy tìm và cập nhật dữ liệu trong một cơ sở dữ liệu.


SQL làm việc với các trình quản lý cơ sở dữ liệu như Access, DB2, Informix, Microsoft SQL Server, Oracle, Sybase, và nhiều


trình khác (đáng tiếc là đa số trong chúng có các phần mở rộng ngôn ngữ SQL riêng).

Các bảng cơ sở dữ liệu

Cơ sở dữ liệu chứa các đối tượng gọi là các Bảng (Tables).


Các Mẩu tin (Records) lưu trong các bảng này. Các bảng được gọi theo tên bảng (như "Persons", "Orders", "Suppliers").


Các bảng chứa các Cột (Columns) và các Dòng (Rows) dữ liệu. Dòng chứa các mẩu tin (như mẩu tin về một người). Cột chứa dữ liệu (như First Name, Last Name, Address, và City).


Một ví dụ là bảng "Persons" sau:


LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger



LastName, FirstName, Address, và City là các cột của bảng. Các dòng chứa ba mẩu tin của 3 người.

Các truy vấn SQL

Với SQL, chúng ta có thể truy vấn một cơ sở dữ liệu và nhận được một kết quả trả về với dạng bảng.


Một truy vấn giống như sau:


SELECT LastName FROM Persons


Sẽ trả về một kết quả giống như sau:

LastName

Hansen
Svendson
Pettersen

Chú ý:

Vài hệ cơ sở dữ liệu cần một dấu “;” ở cuối phát biểu SQL. Chúng ta không dùng dấu “;” trong bài viết này.


Thao tác dữ liệu SQL

SQL là một cú pháp để thực hiện các truy vấn. Nhưng ngôn ngữ SQL cũng chứa các cú pháp cập nhật các mẩu tin (record),


chèn các mẩu tin mới và xóa các mẩu tin đang tồn tại.


Các lệnh truy vấn và cập nhật này thuộc dạng Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language - DML) một phần của


SQL:


􀂃 SELECT – trích dữ liệu từ một cơ sở dữ liệu

􀂃 UPDATE – cập nhật dữ liệu trong một cơ sở dữ liệu

􀂃 DELETE – xóa dữ liệu từ một cơ sở dữ liệu
􀂃 INSERT – chèn dữ liệu mới vào trong một cơ sở dữ liệu

killyou117
12-10-2011, 10:46 AM
Câu lệnh SELECT
Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong 1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set).


Cú pháp

Cú pháp của câu lệnh SELECT như sau:
SELECT tên_các_cột
FROM tên_bảng


Truy xuất nhiều cột

Để truy xuất các cột mang tên LastName và FirstName, ta dùng một câu lệnh SELECT như sau:
SELECT LastName, FirstName FROM Persons


Bảng Persons:

LastNameFirstNameAddressCity Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger


Kết quả trả về:

LastNameFirstName Hansen Ola Svendson Tove Pettersen Kari
Truy xuất tất cả các cột

Để truy xuất tất cả các cột từ bảng Persons, ta dùng ký hiệu * thay cho danh sách các cột:
SELECT * FROM Persons


Kết quả trả về:

LastNameFirstNameAddressCity Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger
Tập kết quả

Kết quả trả về từ một câu truy vấn SQL được lưu trong 1 tập kết quả (result set). Hầu hết các hệ thống chương trình CSDL cho phép duyệt qua tập kết quả bằng các hàm lập trình như Move-To-First-Record, Get-Record-Content, Move-To-Next-Record v.v...

Dấu chẩm phảy phía sau câu lệnh

Dấu chẩm phảy là một cách chuẩn để phân cách các câu lệnh SQL nếu như hệ thống CSDL cho phép nhiều câu lệnh SQL được thực thi thông qua một lời gọi duy nhất.


Các câu lệnh SQL trong bài viết này đều là các câu lệnh đơn (mỗi câu lệnh là một và chỉ một lệnh SQL). MS Access và MS SQL Server không đỏi hỏi phải có dấu chấm phảy ngay sau mỗi câu lệnh SQL, nhưng một số chương trình CSDL khác có thể bắt buộc bạn phải thêm dấu chấm phảy sau mỗi câu lệnh SQL (cho dù đó là câu lệnh đơn). Xin nhắc lại, chúng ta sẽ không dùng dấu chấm phảy ở cuối câu lệnh SQL.

Câu lệnh INSERT INTO
Câu lệnh INSERT INTO được dùng để chèn dòng mới vào bảng.
Cú pháp: INSERT INTO tên_bảng
VALUES (giá_trị_1, giá_trị_2,....)

Bạn cũng có thể chỉ rõ các cột/trường nào cần chèn dữ liệu: INSERT INTO tên_bảng (cột_1, cột_2,...)
VALUES (giá_trị_1, giá_trị_2,....)

Chèn 1 dòng mới
Ta có bảng Persons như sau:
LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Câu lệnh SQL sau: INSERT INTO Persons
VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

sẽ tạora kết quả trong bảng Persons như sau:
LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Stavanger Chèn dữ liệu vào các cột/trường cụ thể
Với bảng Persons như trên, câu lệnh SQL sau: INSERT INTO Persons (LastName, Address)
VALUES ('Rasmussen', 'Storgt 67')

Sẽ tạo ra kết quả:
LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Stavanger Rasmussen
Storgt 67

Câu lệnh UPDATE
Câu lệnh UPDATE được sử dụng để cập nhật/sửa đổi dữ liệu đã có trong bảng.
Cú pháp: UPDATE tên_bảng
SET tên_cột = giá_trị_mới
WHERE tên_cột = giá_trị

Ví dụ: bảng Person của ta như sau:
LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen
Storgt 67
Cập nhật 1 cột trên 1 dòng
Giả sử ta muốn bổ xung thêm phần tên cho người có họ là Rasmussen: UPDATE Person SET FirstName = 'Nina'
WHERE LastName = 'Rasmussen'

Ta sẽ có kết quả như sau:
LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Storgt 67
Cập nhật nhiều cột trên 1 dòng
Bây giờ ta lại muốn đổi tên và địa chỉ: UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger'
WHERE LastName = 'Rasmussen'

Kết quả sẽ là:
LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger

Câu lệnh DELETE được dùng để xoá các dòng ra khỏi bảng.
Cú pháp: DELETE FROM tên_bảng
WHERE tên_cột = giá_trị

Ví dụ: Bảng Person của ta như sau:
LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger Xoá 1 dòng:
Ta xoá người có tên là Nina Rasmussen: DELETE FROM Person WHERE LastName = 'Rasmussen'

Kết quả sau khi xoá:
LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Xoá tất cả các dòng:
Đôi khi ta muốn xoá tất cả dữ liệu trong bảng nhưng vẫn giữ lại bảng cùng với cấu trúc và tất cả các thuộc tính của bảng, ta có thể dùng câu lệnh: DELETE FROM table_name

hoặc DELETE * FROM table_name