Câu lệnh UPDATE
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
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 INSERT INTO
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
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 |
Giới thiệu về SQL
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
SQL là chuẩn ngôn ngữ ANSI để truy cập CSDL.
SQL là gì?
- SQL là viết tắt của Structured Query Language – Ngôn ngữ truy vấn cấu trúc.
- SQL cho phép bạn truy cập vào CSDL.
- SQL là một chuẩn ngôn ngữ của ANSI.
- SQL có thể thực thi các câu truy vấn trên CSDL.
- SQL có thể lấy dữ liệu từ CSDL.
- SQL có thể chèn dữ liệu mới vào CSDL.
- SQL có thể xoá dữ liệu trong CSDL.
- SQL có thể sửa đổi dữ liệu hiện có trong CSDL.
- SQL dễ học
SQL là một chuẩn
SQL là một chuẩn của ANSI (American National Standards Institute – Viện tiêu chuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống CSDL. Các câu lệnh SQL được sử dụng để truy xuất và cập nhật dữ liệu trong một CSDL.
SQL hoạt động với hầu hết các chương trình CSDL như MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase v.v…
Lưu ý: Hầu hết các chương trình CSDL hỗ trợ SQL đều có phần mở rộng cho SQL chỉ hoạt động với chính chương trình đó.
Bảng CSDL
Một CSDL thường bao gồm một hoặc nhiều bảng (table). Mỗi bảng được xác định thông qua một tên (ví dụ Customers hoặc Orders). Bảng chứa các mẩu tin – dòng (record – row), là dữ liệu của bảng.
Dưới đây là một ví dụ về một bảng có tên là Persons (người):
| LastName | FirstName | Address | City |
|---|---|---|---|
| Hansen | Ola | Timoteivn 10 | Sandnes |
| Svendson | Tove | Borgvn 23 | Sandnes |
| Pettersen | Kari | Storgt 20 | Stavanger |
Bảng ở trên bao gồm 3 mẩu tin (dòng), mỗi mẩu tin tương ứng với một người, và bốn cột (LastName, FirstName, Address và City).
Câu truy vấn SQL
Với SQL ta có thể truy vấn CSDL và nhận lấy kết quả trả về thông qua các câu truy vấn.
Một câu truy vấn như sau:
SELECT LastName FROM Persons
Sẽ trả về kết quả như sau:
| LastName |
|---|
| Hansen |
| Svendson |
| Pettersen |
Lưu ý: Một số hệ thống CSDL đòi hỏi câu lệnh SQL phải kết thúc bằng một dấu chấm phảy (;). Chúng ta sẽ không dùng dấu chấm phảy trong bài viết này.
SQL là ngôn ngữ thao tác dữ liệu (DML – Data Manipulation Language)
SQL là cú pháp để thực thi các câu truy vấn. SQL cũng bao gồm cú pháp để cập nhật – sửa đổi, chèn thêm và xoá các mẩu tin.
Sau đây là danh sách các lệnh và truy vấn dạng DML của SQL:
SELECT– lấy dữ liệu từ một bảng CSDL.UPDATE– cập nhật/sửa đổi dữ liệu trong bảng.DELETE– xoá dữ liệu trong bảng.INSERT INTO– thêm dữ liệu mới vào bảng.
SQL là ngôn ngữ định nghĩa dữ liệu (DDL – Data Definition Language)
Phần DDL của SQL cho phép tạo ra hoặc xoá các bảng. Chúng ta cũng có thể định nghĩa các khoá (key), chỉ mục (index), chỉ định các liên kết giữa các bảng và thiết lập các quan hệ ràng buộc giữa các bảng trong CSDL.
Các lệnh DDL quan trọng nhất của SQL là:
CREATE TABLE– tạo ra một bảng mới.ALTER TABLE– thay đổi cấu trúc của bảng.DROP TABLE– xoá một bảng.CREATE INDEX– tạo chỉ mục (khoá để tìm kiếm – search key).DROP INDEX– xoá chỉ mục đã được tạo.
Câu lệnh DELETE
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
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
Câu lệnh ALTER
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
Thay đổi cấu trúc bảng.
Câu lệnh ALTER TABLE được sử dụng để thêm hoặc xoá cột trong một bảng.
ALTER TABLE tên_bảng
ADD tên_cột kiểu_dữ_liệu
ALTER TABLE tên_bảng
DROP COLUMN tên_cột
Lưu ý: Một số hệ CSDL không cho phép việc xoá bỏ cột trong bảng.
Ví dụ: ta có bảng Person như sau:
| LastName | FirstName | Address |
|---|---|---|
| Pettersen | Kari | Storgt 20 |
Thêm một cột tên là City vào bảng Person:
ALTER TABLE Person ADD City varchar(30)
kết quả:
| LastName | FirstName | Address | City |
|---|---|---|---|
| Pettersen | Kari | Storgt 20 |
Xoá cột Address:
ALTER TABLE Person DROP COLUMN Address
kết quả:
| LastName | FirstName | City |
|---|---|---|
| Pettersen | Kari |
Tạo CSDL và bảng với CREATE
02 Tháng 6 2008 Để lại phản hồi
in SQL Tutorial
Tạo một CSDL
CREATE DATABASE tên_CSDL
Tạo một bảng trong một CSDL
CREATE TABLE tên_bảng
(
tên_cột_1 kiểu_dữ_liệu,
tên_cột_2 kiểu_dữ_liệu,
.......
)
Ví dụ
Tạo một bảng tên Person có bốn cột: LastName, FirstName, Address và Age:
CREATE TABLE Person
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)
Tạo bảng và đặt kích thước tối đa của các cột:
CREATE TABLE Person
(
LastName varchar(30),
FirstName varchar,
Address varchar,
Age int(3)
)
Kiểu dữ liệu sẽ qui định loại dữ liệu nào được phép lưu trữ trong cột. Sau đây là các kiểu dữ liệu thường dùng nhất trong SQL:
integer(n) |
Chỉ lưu trữ dữ liệu là số nguyên. Số lượng tối đa các chữ số được qui định bởi n. |
decimal(n,d) |
Lưu trữ số thập nhân. Số lượng tối đa các chữ số được qui định bởi n. Số lượng tối đa các chữ số sau dấu phảy thập phân được qui định bởi d. |
char(n) |
Lưu trữ n ký tự. |
varchar(n) |
Lưu trữ tối đa n ký tự. |
date(yyyymmdd) |
Lưu trữ ngày tháng (dạng năm-tháng-ngày) |
Tạo chỉ mục
Chỉ mục được tạo ra nhằm để các dòng trong bảng được truy xuất nhanh và hiệu quả hơn. Chỉ mục có thể được tạo trên một hoặc nhiều cột của bảng, và mỗi chỉ mục được đặt một tên. Người dùng không thấy được các chỉ mục này, chúng chỉ được dùng để tăng tốc cho CSDL.
Lưu ý: Sau khi bảng đã được tạo chỉ mục thì việc cập nhật thay thêm dòng mới vào bảng sẽ mất nhiều thời gian hơn là đối với bảng không có chỉ mục. Lý do là vì khi cập nhật bảng, các chỉ mục đồng thời cũng phải được cập nhật theo. Vì thế, ta chỉ nên tạo chỉ mục cho các cột thường xuyên dùng trong các tác vụ tìm kiếm.
Chỉ mục đơn nhất (Unique Index)
Chỉ mục đơn nhất sẽ bắt buộc hai dòng bất kỳ của bảng sẽ không được phép mang cùng giá trị ở cột được tạo chỉ mục.
Cú pháp:
CREATE UNIQUE INDEX tên_chỉ_mục
ON tên_bảng (tên_cột)
Chỉ mục đơn (Simple Index)
Khi không dùng từ khoá UNIQUE trong câu lệnh tạo chỉ mục, các giá trị trùng nhau trong cột sẽ được phép.
Cú pháp:
CREATE INDEX tên_chỉ_mục
ON tên_bảng (tên_cột)
Ví dụ
Tạo một chỉ mục đơn có tên là PersonIndex trên cột LastName của bảng Person:
CREATE INDEXPersonIndex
ON Person (LastName)
Nếu bạn muốn tạo chỉ mục sắp xếp giảm dần, bạn sử dụng thêm từ dành riêng DESC:
CREATE INDEXPersonIndex
ON Person (LastNameDESC)
Nếu bạn muốn tạo chỉ mục trên nhiều cột:
CREATE INDEXPersonIndex
ON Person (LastName, Firstname)
Xoá chỉ mục
Bạn có thể xoá chỉ mục đã tạo bằng lệnh DROP.
DROP INDEX tên_bảng.tên_chỉ_mục
Xoá CSDL hoặc bảng
Để xoá một CSDL (các bảng trong CSDL cũng đồng thời được xoá):
DROP DATABASE tên_CSDL
Để xoá một bảng (toàn bộ cấu trúc, dữ liệu và chỉ mục của bảng sẽ được xoá):
DROP TABLE tên_bảng