Professional Documents
Culture Documents
Atomicity (Tính toàn vẹn), Consistency (Tính đồng nhất), Isolation (Tính độc lập), và Durability (Tính bền vững)
Atomicity (Tính toàn vẹn), Consistency (Tính đồng nhất), Isolation (Tính độc lập), và Durability (Tính bền vững)
Atomicity (Tính toàn vẹn), Consistency (Tính đồng nhất), Isolation (Tính độc lập), và Durability (Tính bền vững)
Introduction
Cơ sở dữ liệu quan hệ (Relational Databases) là một loại cơ sở dữ liệu được tổ chức dưới dạnh bảng và
quan hệ giữa các bảng được thiết lập thông qua khóa ngoại (Foreign Key). Các hệ quản trị cơ sở dữ liệu
quan hệ (RDBMS) như MySQL, PostgreSQL, SQL Server,Oracle là những hệ thống phổ biến.
- Thuộc tính ACID: Atomicity (Tính toàn vẹn), Consistency (Tính đồng nhất), Isolation (Tính độc lập), và
Durability (Tính bền vững). Đảm bảo thao tác dữ liệu an toàn và đáng tin cậy trong RDBMS
- Chuẩn hóa
- Bảo mật
Trả về những giá trị tại column thỏa mãn condition từ bảng table_name. WHERE giống IF trong ngôn ngữ
lập trình.
- SELECT column1 FROM table_name ORDER BY column2 ASC|DESC (Không ghi gì mặc định là ASC);
Trả về giá trị của column1 từ bảng dữ liệu table_name sắp xếp theo thứ tự tăng dần (ASC) hoặc giảm dần
(DESC) theo column2.
Trả về giá trị của colum1 từ table_name sắp xếp tăng dần theo column2, nếu có giá trị trong column2
trùng thì sắp xếp tăng dần theo column3.
- INSERT INTO table_name ( column1, column2, column3) VALUES ( values1, values2, values3 );
Thêm giá trị values1, values2, values3 vào các cột column1, column2, column3
- Không thể kiểm tra giá trị NULL bằng toán tử so sánh, chẳng hạn như =, < hoặc <>.
- Thay vào đó, chúng ta sẽ phải sử dụng các toán tử IS NULLvà IS NOT NULL.
Cập nhập giá trị values và 1 cho hai cột lần lượt là column1 và column2 cho đối tượng thỏa mãn
condition từ table_name . Note: nếu không thiết lập điều kiện thì tất cả bản ghi sẽ được update.
Xóa bản ghi theo điều kiện. Note: nếu không thiết lập điều kiện thì tất cả bản ghi sẽ bị xóa.
Trả về number dữ liệu từ column thuộc bảng table_name nếu thỏa mãn condition ( tùy theo RDBMS mà
syntax sẽ khác nhau. Ví dụ: SQL Server thì LIMIT sẽ thay bằng TOP).
- SUM(column): tổng các giá trị của column, tham số bên trong SUM cũng có thể là một biểu
thức. Ví dụ: SUM(column*10)
- AVG(column): tính giá trị trung bình. Note: SELECT * FROM Products WHERE price
> (SELECT AVG(price) FROM Products);
Trả về tất cả các dữ liệu từ table_name nếu thỏa mãn điều kiện. % đại diện cho 0, 1 hoặc nhiều kí tự và _
đại diện cho 1 kí tự đơn. Từ a đến f: [a-f]%, a và c và z: [acz]%, không phải a và c và z: [!acz]%.
Chọn các sản phẩm có Price từ 10 đến 20. Có thế BETWEEN giữa các ngày, văn bản.
- SELECT column (AS “alias name”) FROM table_name (AS “alias name”);
Ghép hai giá trị trả về lại theo kiểu đầu – đuôi vì thế nên các câu lệnh SELECT phải có cùng số cột, các cột
phải có kiểu dữ liệu tương tự và các cột phải có thứ tự giống nhau.
Trả về số lượng tên tương ứng theo tuổi từ table1. Ví dụ cột tuổi trong table 1 có 3 giá trị tuổi là x, y, z
thì dữ liệu trả về sẽ có 3 hàng tương ứng theo 3 giá trị tuổi là x, y, z và hai cột là số lượng bản ghi (ten)
có tuổi là x hoặc y hoặc z và cột tuổi.
- WHERE được sử dụng trước khi dữ liệu được nhóm (GROUP BY).
- HAVING được sử dụng sau khi dữ liệu đã được nhóm và các hàm tổng hợp đã được áp dụng.
- SELECT tuoi FROM table1 WHERE EXISTS (SELECT diaChi FROM TABLE1 WHERE diaChi = "VanCanh");
Trả về dữ liệu ở cột tuoi từ table1 nếu tồn tại giá trị từ cột địa chỉ thỏa mãn giá trị “VanCanh”
- SELECT tuoi FROM table1 WHERE diaChi = ANY/ALL ( SELECT lop FROM TABLE2);
Câu lệnh ANY trả về giá trị true nếu ít nhất một giá trị trong tập hợp hoặc kết quả subquery thỏa mãn
điều kiện.
Câu lệnh ALL trả về giá trị true nếu tất cả các giá trị trong tập hợp hoặc kết quả subquery đều thỏa mãn
điều kiện.
- SELECT * INTO CustomersBackup2017 IN 'Backup.mdb' FROM Customers;
Sao chép dữ liệu từ Customers sang 1 bảng mới là CustomersBackup2017 trong cơ sở dữ liệu
Backup.mdb
- CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
- SHOW DATABASES;
column1 datatype1,
……….
);
Xóa dữ liệu bên trong một bảng chứ không phải chính bảng đó
- NOT NULL: được thêm đằng sau datatype trong lệnh CRETATE TABLE (CT) và MODIFY COLUMN
- UNIQE: dùng UNIQE INDEX column (column) trong CT và dùng ADD CONTRAINT column (dùng để đánh
dấu nên không được trùng với bất kì key nào khác) UNIQUE (column); cho ALTER TABLE
- PRIMARY KEY: thêm vào sau datatype trong lệnh CT và dùng ADD CONSTRAINT column PRIMARY KEY
(column); cho ALTER TABLE
- CHECK: CONSTRAINT `pck_person` CHECK (`namSinh` > 2000) trong CT và ADD CONSTRAINT column
CHECK (condition); cho ALTER TABLE
- DEFAULT: đứng sau datatype trong lệnh CT và ALTER column SET DEFAULT value;
- CREATE/DROP INDEX index_name ON table_name (column,…);
- AUTO_INCREMENT: đứng sau datatype trong CT. Theo mặc định, giá trị bắt đầu AUTO_INCREMENTlà 1
và giá trị này sẽ tăng thêm 1 cho mỗi bản ghi mới.
Để chuỗi AUTO_INCREMENTbắt đầu bằng một giá trị khác, hãy sử dụng câu lệnh SQL sau:
ALTER TABLE Persons AUTO_INCREMENT=100;
- CREATE VIEW view_name AS SLECT column1, column2… FROM table_name WHERE condition;
Tạo một lối tắt view_name để dễ dàng xem bằng cách truy vấn từ SELECT * FROM view_name;
Để loại bỏ chế độ xem: DROP VIEW view_name;