[CSDL] Các câu lệnh trong cơ sở dữ liệu

[Cơ sở dữ liệu và phần mềm ứng dụng]

Các câu lệnh trong cơ sở dữ liệu


1.  Tạo bảng

CREATE TABLE <Tên bảng>

(<Tên cột> <Kiểu dữ liệu> [NOT NULL],…

[CONSTRAINT <Tên ràng buộc> <Kiểu ràng buộc>])

Ví dụ: Tạo bảng về khách hàng có các trường là mã khách hàng, tên khách hàng, địa chỉ , số điện thoại và khóa chính là mã khách hàng.

CREATE TABLE Customers

(CustomerID Char(5) NOT NULL,CompanyName Char(40),Address Char(60),Phone Char(7),

CONSTRAINT khóa_chính

PRIMARY KEY (CustomerID))



2. Sửa đổi cấu trúc bảng

a)                Thêm cột

ALTER TABLE <Tên bảng>

ADD COLUMN <Tên cột> <kiểu dữ liệu>

Ví dụ: ALTER TABLE Supplies

ADD COLUMN Price int

b)                Xóa cột

ALTER TABLE <Tên bảng> DROP COLUMN <Tên cột>

Ví dụ: Xóa cột giá trong bảng sự cung ứng

ALTER TABLE Supplies

DROP COLUMN Price

c)                 Sửa kiểu dữ liệu của cột

ALTER TABLE <Tên bảng>

CHANGE COLUMN <Tên cột> <kiểu dữ liệu mới>

Ví dụ: Sửa đổi kiểu dữ liệu của cột giá trong bảng sự cung ứng là số thực

ALTER TABLE Supplies

CHANGE COLUMN Price real

d)                Thêm ràng buộc

ALTER TABLE <Tên bảng>

ADD CONSTRAINT<Tên ràng buộc> <kiểu ràng buộc>

Ví dụ: ALTER TABLE Supplies ADD

CONSTRAINT Khóa_ngoài FOREIGN KEY (SupplierID)

REFERENCES Suppliers(SupplierID)

e)                 Xóa ràng buộc

ALTER TABLE <Tên bảng>

DROP CONTRAINT <Tên ràng buộc>

Ví dụ: ALTER TABLE Supplies DROP

CONSTRAINT Khóa_ngoài

3.                 Xóa bảng

DROP TABLE <Tên bảng>

Ví dụ: DROP TABLE Customers

4.                 Tạo khung nhìn

CREAT VIEW <tên khung nhìn> [(danh sách tên cột)] AS <Câu truy vấn>

Ví dụ: Cho bảng cơ sở:

Emps(E#, ename, address, D#, sal, year, evaluation)

Depts(D#, dname, mgr, allocation)

Yêu cầu: Tạo khung nhìn phục vụ cho đối tượng là trưởng phòng của phòng kỹ thuật

CREAT VIEW KT(TenNV, DiaChi, Luong, NanLenLuong, DanhGia) AS

SELECT ename, address, D#, sal, year, evaluation

FROM emps

WHERE D# IN

SELECT D# FROM depts WHERE dname = ‘Kỹ thuật’

5.                 Thêm bộ giá trị

INSERT INTO <Tên bảng> [(danh sách tên cột)] { VALUES (các giá trị)| <Câu truy vấn>}

Ví dụ: Thêm một bộ giá trị vào bảng Nhà cung cấp.

INSERT INTO Suppliers (SupplierID, CompanyName, Address)

VALUES (‘S1′, ‘Hải Hà’, ‘Hà Nội’)

6.                 Xóa bộ giá trị

DELETE FROM {<Tên bảng| Tên khung nhìn>}

[WHERE <Biểu thức điều kiện>]

Ví dụ:

Xóa các bộ có mã nhà cung cấp = S1 tại hai bảng sự cung ứng và nhà cung cấp

DELETE * FROM Supplies

WHERE SupplierID = ‘S1′

7.                 Thay đổi giá trị thuộc tính các bộ

UPDATE <Tên bảng> SET <Tên cột > = <biểu thức> [WHERE <Biểu thức điều kiện>]

Ví dụ:

Thay đổi thuộc tính tên của bộ giá trị có mã hàng hóa là = P1 trong bảng hàng hóa.

UPDATE Items SET ItemName = ‘Bánh ngọt’

WHERE ItemID= ‘P1′

8.                 7 mệnh đề truy vấn tổng quát

SELECT [DISTINCT] <danh sách cột> |*| <biểu thức số học>

FROM <danh sách tên bảng> | <danh sách các Khung nhìn>

[WHERE <biểu thức điều kiện>]

[GROUP BY <danh sách tên cột>]

[HAVING <biểu thức điều kiện>]

[ORDER BY <danh sách tên cột>|<biểu thức> [ASC|DESC]]

[UNION|INTERSECT|MINUS<Câu truy vấn>]

9.                 Mệnh đề SELECT

Mệnh đề SELECT cho phép:

-                     Lựa chọn một/nhiều/tất cả (*) các thuộc tính

Hiển thị tất cả thông tin của nhân viên

SELECT * FROM Employees

-                     Lấy các bộ giá trị không trùng nhau (DISTINCT)

Cho biết họ của các nhân viên trong công ty

SELECT DISTINCT LastName

FROM Employees

Ví dụ: Cho biết danh mục mặt hàng và giá của mặt hàng đó (tính theo việt nam đồng):

SELECT Items.ItemName, Supplies.Price *18.320

FROM Items, Supplies

WHERE Items.ItemID = Supplies.ItemID

Kết quả của biểu thức số học là NULL nếu một giá trị đầu vào là NULL.

10.            Mệnh đề FROM

Mệnh đề FROM tương ứng với phép tích Đề các của các quan hệ được xét.

Ví dụ:Tìm giá mua vào của các mặt hàng thuộc loại máy tính xách tay:

SELECT Items.ItemName, Supplies.Price*16.02

FROM Supplies, Categories, Items

WHERE ((Items.ItemID=Supplies.ItemID)

AND (Categories.CategoryID = Items.CategoryID) AND (CategoryName=’laptop’));

11.            Mệnh đề WHERE

-                     Mệnh đề WHERE tương ứng chọn dựa trên các thuộc tính của các quan hệ xuất hiện sau FROM.

Ví dụ: Tìm các mặt hàng có số lượng đặt hàng lớn hơn 100

SELECT Items.ItemName, Includes.Quantity

FROM Includes, Items

WHERE (Items.ItemID = Includes.ItemID) AND (Quantity>100)

-                     Kết quả của biểu thức điều kiện là TRUE hoặc FALSE

Nếu 1 trong những đầu vào của biểu thức điều kiện có giá trị NULL thì kết quả trả về là FALSE

WHERE[NOT]<biểu thức> <phép so sánh> <biểu thức>

WHERE[NOT]<biểu thức logic>

WHERE[NOT]<biểu thức logic> {AND|OR}[NOT]<biểu thức logic>

WHERE[NOT]<tên cột> [NOT] LIKE <xâu ký tự mẫu>

WHERE[NOT]<biểu thức> [NOT] IN ({danh sách | câu truy vấn})

WHERE[NOT] EXISTS (<câu truy vấn con>)

WHERE[NOT]<biểu thức><phép so sánh> {SOME|ANY|ALL (Câu truy vấn con)}

WHERE <cột> IS NULL

12.            Mệnh đề GROUP BY và HAVING

Mệnh đề GROUP BY nhóm các bộ có cùng giá trị trên các thuộc tính nào đó

Ví dụ: In danh sách loại hàng hóa cùng lượng hàng hoá theo loại mặt hàng còn trong kho với điều kiện lượng hàng lớn hơn 100.

SELECT CategoryID, Sum(UnitsInStock)

FROM Items

GROUP BY CategoryID

HAVING Sum(UnitsInStock) > 100

Mệnh đề HAVING xuất hiện sau khi tạo nhóm, đưa ra điều kiện cho nhóm

Nếu WHERE và HAVING cùng ở trong một câu truy vấn thì:

Biểu thức điều kiện trong WHERE sẽ được thực hiện trước.

Các bộ thỏa mãn điều kiện trong WHERE sẽ được nhóm vào bởi GROUPBY.

Mệnh đề HAVING (nếu có) sẽ được áp dụng trên mỗi nhóm.

Các nhóm không thỏa mãn mệnh đề HAVING sẽ bị xóa bỏ

13.            Mệnh đề ORDER BY

Mệnh đề ORDER BY cho phép trình bày kết quả câu truy vấn theo thứ tự.

Mặc định liệt kê theo thứ tự tăng

Ví dụ: Đưa ra danh sách họ tên nhân viên với mức lương từ cao tới thấp.

SELECT LastName, FirstName, Salary

FROM Employees

ORDER BY Salary DESC

14.            Tìm kiếm nhờ các phép toán tập hợp

-                     Phép UNION tương ứng với phép hợp trong đại số quan hệ.

Ví dụ: Tìm các hãng là đối tác của siêu thị (khách hàng hoặc nhà cung cấp)

(SELECT CompanyName FROM Customers)

UNION (SELECT CompanyName FROM Suppliers)

-                     Phép INTERSECT tương ứng với phép giao trong đại số quan hệ

Ví dụ: Tìm các hãng vừa là khách hàng vừa là nhà cung cấp cho siêu thị.

(SELECT CompanyName FROM Customers)

INTERSECT (SELECT CompanyName FROM Suppliers)

-                     Phép MINUS tương ứng với phép trừ trong đại số quan hệ

Ví dụ: Tìm các hãng chỉ là khách hàng (không là nhà cung cấp) của siêu thị.

(SELECT CustomerID FROM Customers)

MINUS (SELECT CustomerID FROM Supplies

Cảm ơn các bạn đã ghé qua blog của mình. 

Related

Slide - Giáo trình 6312694871214925318

Post a Comment Bình luận mặc định

emo-but-icon

Video

Xúc động bộ ảnh về cặp đôi chia tay khi vẫn còn yêu

Dòng thời gian

item