[CSDL] Các câu lệnh trong cơ sở dữ liệu
https://quanglam92.blogspot.com/2012/06/csdl-cac-cau-lenh_93.html
[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.