Câu lệnh UPDATE

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

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

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, AddressCity).

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

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

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

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, AddressAge:

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)
int(n)
smallint(n)
tinyint(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)
numeric(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 INDEX PersonIndex
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 INDEX PersonIndex
ON Person (LastName
DESC)

Nếu bạn muốn tạo chỉ mục trên nhiều cột:

CREATE INDEX PersonIndex
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

Follow

Get every new post delivered to your Inbox.