You are on page 1of 24

CHƯƠNG 2: TRANSACTION-SQL (T-SQL)

1 Giới thiệu Transaction-SQL (T-SQL)

2 Ngôn ngữ định nghĩa dữ liệu (DDL)

3 Ngôn ngữ thao tác dữ liệu (DML)

4 Ngôn ngữ điều khiển dữ liệu (DCL)

5 Một số hàm cơ bản


2.1. Giới thiệu Transaction-SQL (T-SQL)

 Transact-SQL (viết tắt là T-SL) là ngôn


ngữ SQL mở rộng dựa trên SQL chuẩn
của ISO
 Chia làm ba loại:
 Ngôn ngữ định nghĩa dữ liệu (Data Definition
Language – DDL): khai báo cấu trúc của
bảng, mối liên hệ của dữ liệu.
 Ngôn ngữ thao tác dữ liệu (Data manipulation
language – DML)
 Ngôn ngữ điều khiển dữ liệu (Data control
language – DCL)
2.1. Giới thiệu Transaction-SQL (T-SQL)

Tạo và thực thi câu lệnh SQL với SQL Server

Tạo câu lệnh

Cửa sổ gõ mã lệnh SQL


2.1. Giới thiệu Transaction-SQL (T-SQL)

Tạo và thực thi câu lệnh SQL với SQL Server

Thực thi câu lệnh SQL bằng cách


- Bôi đen (lựa chọn) câu lệnh, nhóm lệnh cần thực thi
- Kiểm tra lỗi cú pháp bằng cách kích chuột tại biểu
tượng Parse trên thanh công cụ
- Thực thi câu lệnh SQL bằng cách kích chuột tại biểu
tượng Excute
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Tạo cơ sở dữ liệu

CREATE DATABASE <Tên cơ sở dữ liệu>

Ví dụ: Tạo cơ sở dữ liệu QLDIEM

CREATE DATABASE QLDIEM


2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Tạo Table

 Câu lệnh Create

 Câu lệnh Alter

 Câu lệnh Drop


2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Lệnh Create

CREATE TABLE <Tên_bảng> (


<Tên_Thuộc tính> <Kiểu_dữ_liệu> [<RBTV>],
<Tên_Thuộc tính> <Kiểu_dữ_liệu> [<RBTV>],

)
Trong đó:
„Tên_bảng: Tên của bảng cần tạo.„
Tên_cột : Là tên của cột (trường) cần định nghĩa.
Các_ràng_buộc trên bảng: Các ràng buộc được
sử dụng trên mỗi cột hoặc trên bảng.
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Câu lệnh Create


<RBTV>
− NOT NULL: trường không được phép để trống
− PRIMARY KEY: khóa chính ≈ NOT NULL và
UNIQUE
− [FOREIGN KEY] REFERENCES Tên_bảng(Tên_cột)
]: khóa ngoại, liên kết
− UNIQUE: có giá trị duy nhất
− DEFAULT: giá trị sẽ nhận khi người dùng không
nhập vào trường đó
− CHECK: biểu thức điều kiện mà giá trị nhập vào
trường đó phải thỏa mãn.
− ……..
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Ví dụ lệnh Create

CREATE TABLE SANPHAM (


MASP char(4) NOT NULL,
TENSP varchar(40) NULL,
DVT varchar(20) NULL,
NUOCSX varchar (40) NULL,
GIA money NULL
)
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Ràng buộc Primary Key

Định nghĩa khoá chính của bảng.


Cú pháp:
[CONSTRAINT tên_ràng_buộc] PRIMARY KEY [(danh_sách_cột)]
Ví dụ 1:

CREATE TABLE SANPHAM (


MASP char(4) NOT NULL,
TENSP varchar(40) NULL,
DVT varchar(20) NULL,
NUOCSX varchar (40) NULL,
GIA money NULL,
CONSTRAINT chk_primarykey PRIMARY KEY (MASP)
)
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Ràng buộc Primary Key

Ví dụ 2: Nếu có 2 cột đóng vai trò khoá chính

CREATE TABLE CTHD (


SOHD int NOT NULL,
MASP char(4) NOT NULL,

SL int NULL,
CONSTRAINT ck_cthd PRIMARY KEY (SOHD,MASP)

)
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Ràng buộc check


Kiểm tra dữ liệu nhập thoả mãn điều kiện
Cú pháp:
[CONSTRAINT tên_ràng_buộc] CHECK (điều_kiện)
Ví dụ:
Create table KETQUA (
MASV char(10) not null,
MAMH char(10) not null,
LANTHI int,
DIEM decimal(4,2),
Constraint KETQUA_MASV_MAMH_LANTHI_pk primary
key(MASV,MAMH,LANTHI),
constraint chk_DIEM CHECK (DIEM >= 0 and DIEM
<= 10)
)
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)
Ràng buộc FOREIGN KEY
áp đặt mối liên kết dữ liệu giữa hai bảng
Cú pháp:
[CONSTRAINT tên_ràng_buộc] FOREIGN KEY
[(danh_sách_cột)] REFERENCES
tên_bảng_tham_chiếu(danh_sách_cột_tham_chiếu)
Ví dụ:
Create table KETQUA (
MASV char(10) not null,
MAMH char(10) not null,
LANTHI int,
DIEM decimal(4,2),
Constraint KETQUA_MASV_MAMH_LANTHI_pk primary
key(MASV,MAMH,LANTHI),
Constraint fk_01_KETQUA FOREIGN KEY (MASV) REFERENCES
SINHVIEN(MASV),
Constraint fk_02_KETQUA FOREIGN KEY (MAMH) REFERENCES
MONHOC(MAMH)
)
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Câu lệnh Alter

Câu lệnh Alter sử dụng để sửa đối cấu trúc của


các đối tượng trong CSDL như Table, Trigger,
View…
Cú pháp:
ALTER TABLE tên_bảng

ADD Ten_cot kiểu dữ liệu  Thêm thuộc tính

ALTER COLUMN têncột kiểu_dữ_liệu [NULL|NOT

NULL]Sửa

DROP COLUMN tên_cột --> Xóa cột

ADD CONSTRAINT tên_ràng_buộc địnhnghĩaràngbuộc


2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Câu lệnh Alter

alter table khoa

drop column malop


15
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Câu lệnh Alter

16
2.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

Câu lệnh Drop

Xóa một bảng trong CSDL hiện thời:


DROP TABLE tên_bảng
Xóa một bảng trong CSLD khác
DROP TABLE TenCSDL.dbo.tên_bảng
Câu lệnh DROP TABLE không thể thực hiện được nếu
bảng cần xoá đang được tham chiếu bởi một ràng buộc
FOREIGN KEY
Ví dụ:
DROP TABLE SINHVIEN
DROP TABLE MONHOC
2.3. Ngôn ngữ thao tác dữ liệu (DML)

 Câu lệnh Insert


 Câu lệnh Update
 Câu lệnh Delete
 Câu lệnh Select
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh Insert


Dùng để thêm 1 hay nhiều dòng vào bảng

Cú pháp Nhập và thêm bản ghi (Insert)


INSERT INTO tên_bảng(các thuộc tính)

VALUES (các giá trị tương ứng với các thuộc tính)

Ví dụ:
INSERT INTO KHOA(MAKHOA,TENKHOA) VALUES (‘ANVAN’,
‘Khoa Anh Văn’)
INSERT INTO MONHOC(MAMH,TENMH,SOTIET) VALUES ('AV',
'Anh van',45)
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh Insert


Chú ý:
•Nếu dòng thêm vào có đầy đủ các giá trị ở các cột
thì không cần liệt kê thuộc tính của bảng.
•Các cột bỏ qua sẽ tự nhận giá trị NULL nếu cột đó
cho phép NULL, sẽ báo lỗi nếu cột đó là NOT NULL
•Có thể dùng lệnh INSERT INTO …. SELECT để
thêm đồng thời nhiều bản ghi vào bảng
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh UPDATE

Dùng để thay đổi giá trị của thuộc tính cho các dòng
của bảng.
Cú pháp

UPDATE <tên bảng> Ví dụ: Cập nhập lại số tiết


SET <tên thuộc tính>=<giá trị mới>, cho môn CSDL 60 tiết
<tên thuộc tính>=<giá trị mới>, UPDATE MONHOC
… SET SOTIET=60
[FROM <Danh sách bảng>]
WHERE TENMON=‘CSDL’
[WHERE <điều kiện>]
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh UPDATE

Chú ý:
• Những dòng thỏa điều kiện tại mệnh đề
WHERE sẽ được cập nhật giá trị mới
• Nếu không chỉ định điều kiện ở mệnh
đề WHERE, tất cả các dòng trong bảng
sẽ bị cập nhật
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh DELETE


Dùng để xóa các dòng của bảng
Cú pháp
DELETE FROM <tên bảng>
[FROM Danh_Sach_Bảng]
[WHERE <điều kiện>]

Ví dụ: Xóa sinh viên có mã sinh viên là ‘S001’


DELETE FROM SINHVIEN
WHERE MASV=‘S001’
2.3. Ngôn ngữ thao tác dữ liệu (DML)

Câu lệnh DELETE


Chú ý:
• Số lượng số dòng bị xóa phụ thuộc vào điều kiện ở mệnh đề
WHERE
• Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng
trong bảng sẽ bị xóa.
• Nếu ĐK trong DELETE liên quan đến nhiều bảng không phải là
bảng cần xóa DL, sử dụng thêm mệnh đề FROM và trong mệnh đề
WHERE chỉ định ĐK nối giữa các bảng
Ví dụ: Xóa ra khỏi bảng Sinh viên những Sinh viên Khoa QTKD
DELETE FROM SINHVIEN
FROM MAKHOA
WHERE KHOA.MAKHOA=SINHVIEN.MAKHOA

You might also like