Diễn đàn kết nối công nghệ thông tin
Chào mừng các bạn đến với diễn đàn Hiện tại bạn chưa đăng ký làm thành viên của chúng tôi nên chỉ có thể xem mà không thể tham gia vào các thảo luận của nhung thành viên .Đăng ký làm thành viên rất nhanh chóng, đơn giản và miễn phí, hãy tham gia làm thành viên của chúng tôi và cùng thảo luận về mọi đề tài trong cuộc sống. Chúc các bạn có những giây phút vui vẻ "cDiễn đàn kết nối công nghệ thông tin".
Diễn đàn kết nối công nghệ thông tin
Chào mừng các bạn đến với diễn đàn Hiện tại bạn chưa đăng ký làm thành viên của chúng tôi nên chỉ có thể xem mà không thể tham gia vào các thảo luận của nhung thành viên .Đăng ký làm thành viên rất nhanh chóng, đơn giản và miễn phí, hãy tham gia làm thành viên của chúng tôi và cùng thảo luận về mọi đề tài trong cuộc sống. Chúc các bạn có những giây phút vui vẻ "cDiễn đàn kết nối công nghệ thông tin".
Diễn đàn kết nối công nghệ thông tin
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhPortalLatest imagesĐăng kýĐăng Nhập
Welcome to our forums!->BE ACTIVE AND RESPECT OTHERS!
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics
Danh mục chính
 Portal
 Diễn Đàn
 Thành viên
 Lý lịch
 Trợ giúp
 Tìm kiếm

 

 Giới thiệu ngôn ngữ truy vấn CSDL SQL

Go down 
Tác giảThông điệp
Admin
Admin
Admin


Tổng số bài gửi : 81
Join date : 03/03/2010
Đến từ : Bắc ninh

Giới thiệu ngôn ngữ truy vấn CSDL SQL Empty
Bài gửiTiêu đề: Giới thiệu ngôn ngữ truy vấn CSDL SQL   Giới thiệu ngôn ngữ truy vấn CSDL SQL Icon_minitimeSat Mar 06, 2010 6:01 pm

I. Một số khái niệm cơ bản về CSDL
Cơ sở dữ liệu (database) có thể hiểu là nơi chứa dữ liệu. Có nhiều loại cơ sở dữ liệu khác nhau như cơ sở dữ liệu quan hệ, CSDL hướng đối tượng, CSDL phân tán...
Hiện nay, trong phần lớn các ứng dụng, người ta thường sử dụng CSDL quan hệ.
Trong mô hình CSDL quan hệ, dữ liệu thường được chia thành các bảng có liên quan với nhau.

VD: ta có 2 bảng:

Bảng 1 chứa các thông tin về Mã hàng, tên hàng, ngày nhập hàng, giá nhập hàng
Bảng 2 chứa các thông tin về Mã hàng, ngày bán hàng, giá bán.

Hai bảng này có quan hệ với nhau thông qua mã hàng, tức là chỉ cần có mã hàng ở bảng 2, ta có thể tìm ra tên hàng dựa trên mối liên hệ giữa mã hàng và tên hàng lưu ở bảng 1.

Hệ quản trị CSDL là chương trình dùng để quản lý một CSDL nào đó. Chẳng hạn như chương trình Access là một hệ quản trị CSDL để quản lý CSDL Access. Thông thường thì tên của hệ quản trị CSDL gắn liền với tên của loại CSDL. VD như: CSDL Access <-> Hệ quản trị CSDL Access, CSDL MySQL <-> Hệ quản trị CSDL MySQL, CSDL Oracle <-> Hệ quản trị CSDL Oracle. Trong trường hợp này thì người ta thường nhầm lẫn giữa khái niệm CSDL và cấu trúc (dạng nhị phân) của một CSDL do hệ quản trị CSDL quy định.

Người ta gọi các cột trong một bảng là các trường, các dòng trong một bảng là các bản ghi.

Mỗi trường sẽ có một kiểu dữ liệu xác định. Đó có thể là kiểu số, kiểu chuỗi, kiểu ngày tháng...

VD về một bảng có chứa thông tin người dùng. Bảng này sẽ có tên là NSD, các cột (trường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND; trong đó Ma_ND có kiểu nguyên, Ten_ND có kiểu chuỗi, Tuoi_ND có kiểu số, Matkhau_ND có kiểu chuỗi.

II. Ngôn ngữ truy vấn CSDL SQL

SQL là một ngôn ngữ được sử dụng trong các ngôn ngữ lập trình để truy vấn thông tin trong CSDL. Điểm mạnh của ngôn ngữ này là cấu trúc đơn giản, có thể nhập lệnh vào dưới dạng các chuỗi văn bản, sau đó chuyển câu lệnh tới các chương trình điều khiển trung gian để truy vấn dữ liệu rồi trả về cho chương trình. Như vậy, mọi thao tác kết xuất, truy vấn hoàn tòan dễ dàng thông qua việc điều khiển chuỗi văn bản có chứa câu lệnh SQL.

Bài viết này tập trung vào việc trình bày cú pháp của ngôn ngữ SQL, có thể sử dụng PHP để biểu diễn một số thao tác để mọi người dễ dàng hình dung.

1. Câu lệnh chèn dữ liệu vào một bảng.
Cú pháp của câu lệnh này có dạng:
Code:

INSERT INTO tên_bảng (danh_sách_trường) VALUES (danh_sách_giá_trị)


Trong đó:

Các từ khóa cố định là INSERT, INTO và VALUES.
tên_bảng là tên của một bảng quan hệ trong CSDL.
danh_sách_trường là danh sách các trường trong bảng quan hệ được sử dụng để chèn giá trị vào, mỗi trường cách nhau một dấu phảy.
danh_sách_giá_trị là danh sách các giá trị tương ứng với các trường, có bao nhiêu trường thì phải chèn vào bấy nhiêu giá trị.

Chú ý:
Thông thường, các giá trị chuỗi phải được đặt trong cặp dấu nháy hoặc dấu ngoặc kép tùy thuộc vào ngôn ngữ biểu diễn và kiểu dữ liệu của trường. Mỗi giá trị cách nhau bởi một dấu phẩy.

VD, với bảng dữ liệu ở trên (Bảng NSD có các cột (trường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND), ta có thể dùng câu lệnh SQL để chèn thông tin vào như sau:

Code:

INSERT INTO NSD (Ten_ND,MatKhau_ND) VALUES('Sinh','123456')


Hoặc ta có thể chèn nhiều thông tin hơn:

Code:

INSERT INTO NSD (Ten_ND,Tuoi_ND,MatKhau_ND) VALUES('Sinh',30,'123456')


2. Câu lệnh chỉnh sửa dữ liệu trong bảng
Để chỉnh sửa (cập nhật) thông tin trong bảng, ta dùng câu lệnh UPDATE với cú pháp sau:

Code:

UPDATE tên_bảng SET tên_trường1=giá_trị1[, tên_trường_i=giá_trịi] WHERE điều_kiện


Chẳng hạn, nếu ta muốn đổi mật khẩu của những người có trường Ten_ND là Sinh thành 'JQKA' trong bảng trên, ta sẽ làm như sau:

Code:

UPDATE NSD SET Matkhau_ID = 'JQKA' WHERE Ten_ND='Sinh'


Chú ý mệnh đề điều kiện WHERE. Mệnh đề này sẽ được mô tả chi tiết hơn ở phía dưới.

3. Câu lệnh xóa dữ liệu trong bảng
Để xóa dữ liệu trong bảng, ta dùng câu lệnh DELETE với cú pháp sau:
Code:

DELETE FROM tên_bảng WHERE điều_kiện.


Câu lệnh này sẽ xóa tất cả những bản ghi thỏa mãn điều kiện nằm sau mệnh đề WHERE.
VD:
Quote
DELETE FROM NSD WHERE Ten_ND='Sinh'

4. Câu lệnh truy vấn (tìm kiếm) dữ liệu trong bảng
Đây là câu lệnh phức tạp nhất trong nhóm các câu lệnh của SQL.
Cú pháp của lệnh này như sau:
SELECT [danh_sách_trường] FROM [danh_sách_bảng] WHERE [danh_sách_điều_kiện] [ORDER BY]

« Last Edit: March 21, 2009, 01:51:25 AM bởi cmxq » Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: cmxq lúc: July 18, 2008, 10:25:21 AM Xem hồ sơ Email []
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

Ví dụ, để truy xuất các cột mang tên LastName và FirstName từ một bảng có tên là Persons, ta dùng một câu lệnh SELECT như sau:

SELECT LastName, FirstName FROM Persons

Ta có thể dùng dấu * để thay thế cho tất cả các cột:
SELECT * FROM Persons
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). Tập kết quả này sau đó sẽ được lập trình viên tìm cách đưa ra dưới dạng một bảng hoặc một hình thức nào đó. Xin xem chi tiết ở phần lập trình với php

Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: cmxq lúc: July 18, 2008, 10:26:02 AM Xem hồ sơ Email []
Mệnh đề WHERE

Mệnh đề WHERE được dùng để thiết lập điều kiện truy xuất.
Để truy xuất dữ liệu trong bảng theo các điều kiện nào đó, một mệnh đề WHERE có thể được thêm vào câu lệnh SELECT.

Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau:

SELECT tên_cột FROM tên_bảng
WHERE tên_cột phép_toán giá_trị

Trong mệnh đề WHERE, các phép toán được sử dụng là

Phép toán Mô tả
= So sánh bằng
<> So sánh không bằng
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
BETWEEN Nằm giữa một khoảng
LIKE So sánh mẫu chuỗi

Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng !=

Ví dụ để lấy danh sách những người sống ở thành phố Sandnes, ta sử dụng mệnh đề WHERE trong câu lệnh SELECT như sau:

SELECT * FROM Persons
WHERE City = 'Sandnes'

Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: cmxq lúc: July 18, 2008, 10:27:01 AM Xem hồ sơ Email []
Tóan tử AND và OR

Hai toán tử AND và OR nối hai hoặc nhiều điều kiện trong mệnh đề WHERE lại với nhau.
Toán tử AND sẽ hiển thị 1 dòng nếu TẤT CẢ các điều kiện đều thoả mãn. Toán tử OR hiển thị một dòng nếu BẤT KỲ điều kiện nào được thoả.

Ví dụ: Sử dụng AND để tìm những người có tên là Tove và họ là Svendson:

SELECT * FROM Persons
WHERE FirstName = 'Tove'
AND LastName = 'Svendson'

Ví dụ: Sử dụng OR để tìm những người có tên là Tove hoặc họ là Svendson:

SELECT * FROM Persons
WHERE firstname = 'Tove'
OR lastname = 'Svendson'

Ví dụ: Sử dụng kết hợp AND và OR cùng với dấu ngoặc đơn để tạo nên các câu truy vấn phức tạp:

SELECT * FROM Persons WHERE
(FirstName = 'Tove' OR FirstName = 'Stephen')
AND LastName = 'Svendson'

Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: cmxq lúc: July 18, 2008, 10:27:37 AM Xem hồ sơ Email []
Từ khoá DISTINCT

Từ khoá DISTINCT được dùng để lọc ra các giá trị khác nhau.

Câu lệnh SELECT sẽ trả về thông tin về các cột trong bảng. Nhưng nếu chúng ta không muốn lấy về các giá trị trùng nhau thì sau?

Với SQL, ta chỉ cần thêm từ khoá DISTINCT vào câu lệnh SELECT theo cú pháp sau:

SELECT DISTINCT tên_cột FROM tên_bảng

Ví dụ: Tìm tất cả các công ty trong bảng đặt hàng, câu lệnh SQL thông thường sẽ như sau:

SELECT Company FROM Orders

Để tìm tất cả các công ty khác nhau trong bảng đặt hàng, ta sử dụng câu lệnh SQL sau:

SELECT DISTINCT Company FROM Orders

Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: cmxq lúc: July 18, 2008, 10:28:15 AM Xem hồ sơ Email []
Mệnh đề ORDER BY:
Mệnh đề ORDER BY được dùng để sắp xếp các dòng.
Cú pháp: Select..... ORDER BY tên các cột [ASC/DESC]
ORER BY có thể đi kèm từ khóa DESC để sắp xếp theo chiều giảm dần, hoặc ASC để sắp xếp theo chiều tăng dần của các cột

VD: Để lấy danh sách các công ty theo thứ tự chữ cái (tăng dần):

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

VD 2: Lấy danh sách các công ty theo thứ tự chữ cái (tăng dần) và hoá đơn đặt hàng theo thứ tự số tăng dần:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company, OrderNumber

VD 3: Lấy danh sách các công ty theo thứ tự giảm dần:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

Logged
Re: Giới thiệu ngôn ngữ truy vấn CSDL SQL
Gửi bởi: gnoudn2d lúc: September 03, 2008, 11:18:56 AM Xem hồ sơ Email []
Quote from: cmxq on July 18, 2008, 10:28:15 AM
Mệnh đề ORDER BY:
Mệnh đề ORDER BY được dùng để sắp xếp các dòng.
Cú pháp: Select..... ORDER BY tên các cột [ASC/DESC]
ORER BY có thể đi kèm từ khóa DESC để sắp xếp theo chiều giảm dần, hoặc ASC để sắp xếp theo chiều tăng dần của các cột

VD: Để lấy danh sách các công ty theo thứ tự chữ cái (tăng dần):

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

VD 2: Lấy danh sách các công ty theo thứ tự chữ cái (tăng dần) và hoá đơn đặt hàng theo thứ tự số tăng dần:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company, OrderNumber

VD 3: Lấy danh sách các công ty theo thứ tự giảm dần:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

Nếu ORDER BY không viết DESC hay ASC thì có nghĩa nó đang sắp xếp tăng dần
Về Đầu Trang Go down
https://diendanit.forumotion.net
 
Giới thiệu ngôn ngữ truy vấn CSDL SQL
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» GIỚI THIỆU KHÓA HỌC ASP.NET
» Stanford – day kinh nghiệm lập trình giới thiệu khóa học SQL Server
» Giới thiệu khóa học tester tại Stanford – dạy kinh nghiệm lập trình
» Giới thiệu chương trình ƯU ĐÃI NHÂN ĐÔI
» Học lập trình PHP – Ngôn ngữ phát triển web phổ biến

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn kết nối công nghệ thông tin :: Bản Tin Forum :: Học Tập-
Chuyển đến