index of cnpmth03005thamkhao

12 10 0
index of cnpmth03005thamkhao

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

 Ví dụ: Hiển thị thông tin về các sinh viên với các kết. quả học tập của họ[r]

(1)

MS Access 2007 1

Các lệnh truy vấn SQL

Ngôn ngữ truy vấn SQL  Là ngôn ngữ truy vấn dựa đại số quan hệ  Cho phép người dùng giao tiếp với CSDL  Phân loại:

q Ngôn ngữ định nghĩa liệu (Data Definition

Language–DDL): Cho phép khai báo cấu trúc bảng CSDL, khai báo mối liên hệ liệu quy tắc áp đặt lên liệu

MS Access 2007 2

Ngôn ngữ truy vấn SQL (tiếp)  Phân loại (tiếp):

q Ngôn ngữ thao tác liệu (Data Manipullation

Language-DML): Cho phép người sử dụng khai thác CSDL để truy vấn thông tin cần thiết CSDL Đồng thời cho phép thêm (insert), xoá (delete), sửa (update) liệu CSDL

q Ngôn ngữ quản lý liệu (Data Control

Language-DCL): Bao gồm câu lệnh đảm bảo tính an tồn tồn vẹn liệu, cho phép cấp phát quyền truy cập vào liệu

Ngôn ngữ định nghĩa liệu

1 Lệnh tạo bảng Lệnh sửa bảng

2.1 Lệnh thêm cột

2.2 Lệnh thay đổi kiểu liệu cho cột 2.3 Thêm ràng buộc toàn vẹn

(2)

1 Lệnh tạo bảng  Định nghĩa bảng cần:

q Khai báo tên bảng q Khai báo thuộc tính:

 Tên thuộc tính  Kiểu liệu

 Ràng buộc tồn vẹn thuộc tính  Cú pháp:

CREATE TABLE <tên bảng> (<tên cột 1> <kiểu liệu 1> [RBTV], <tên cột 2> <kiểu liệu 2> [RBTV], …

<tên cột n> <kiểu liệu n> [RBTV]);

MS Access 2007 5

1 Lệnh tạo bảng (tiếp)  Ràng buộc toàn vẹn:

q PRIMARY KEY q FOREIGN KEY q NOT NULL

q NULL

MS Access 2007 6

CSDL ví dụ

Bài tốn quản lý sinh viên có CSDL gồm bảng sau:

KHOA(Makhoa, TenKhoa, Diadiem, SDT) LOP(MaLop, TenL, Siso, MaKhoa)

SINHVIEN(MaSV, Hodem, Ten, Ngaysinh, Gioitinh, Tinh, MaLop)

MONHOC(MaMH, TenMH, SoTC, Dieukien) KETQUA(MaSV, MaMH, Ketqua)

1 Lệnh tạo bảng (tiếp)  Lệnh tạo bảng sinh viên cho CSDL ví dụ:

CREATE TABLE SINHVIEN

(MaSV char(6) not null PRIMARY KEY, Hodem char(20) not null,

(3)

2.1 Lệnh thêm cột  Cú pháp:

ALTER TABLE <tên bảng>

ADD <tên cột> <kiểu liệu> [RBTV];

 Ví dụ: Thêm cột sách vào bảng SINHVIEN

ALTER TABLE SINHVIEN ADD Chinhsach char(10);

MS Access 2007 9

2.2 Thay đổi kiểu liệu cho cột

• Cú pháp:

ALTER TABLE <tênbảng>

ALTER COLUMN <tên cột> <kiểu liệu mới>;

• Ví dụ: sửa kiểu liệu cột gioitinh bảng

SINHVIEN từ kiểu char sang kiểu bit [0/1] ALTER TABLE SINHVIEN

ALTER COLUMN gioitinh bit;

MS Access 2007 10

2.3 Thêm ràng buộc toàn vẹn  Thêm khóa chính:

ALTER TABLE <tên bảng> ADD PRIMARY KEY (DS tên cột);

 Ví dụ: đặt khóa cột MaSV bảng

SINHVIEN

ALTER TABLE SINHVIEN add PRIMARY KEY (masv);

2.3 Thêm ràng buộc tồn vẹn (tiếp)  Tạo khóa ngồi:

ALTER TABLE<tên bảng> ADD FOREIGN KEY (tên cột) REFERENCES <tên bảng> (tên cột);

 Ví dụ: Đặt malop khóa ngồi bảng SINHVIEN

(4)

2.4 Xóa cột  Lệnh Xóa Cột

ALTER TABLE <tênbảng> DROP COLUMN <tên cột>;

 Ví dụ: xóa cột sách bảng SINHVIEN

ALTER TABLE SINHVIEN DROP COLUMN Chinhsach;

MS Access 2007 13

3 Xóa bảng  Cú pháp:

DROP TABLE <tên bảng>;

 Ví dụ: Xóa bảng SINHVIEN:

DROP TABLE SINHVIEN;

MS Access 2007 14

Nhóm lệnh truy vấn liệu

1 Cú pháp tổng quát Dạng đơn giản Dấu*

4 Mệnh đề WHERE Truy vấn từ nhiều Bảng Mệnh đề ORDER BY Mệnh đề GROUP BY Mệnh đề HAVING Phát biểu Select với AS 10 Phát biểu Select với DISTINCT 11 Truy vấn

12 Nối liệu từ hai truy vấn lựa chọn

1 Cú pháp tổng quát

SELECT [Distinct] [Top n [Percent]] <Danh sách cột> [INTO Tên_bảng_mới]

FROM Tên_bảng_nguồn [Bảng_1,Bảng_2,…] [INNER/LEFT/RIGHT

JOIN Tên_bảng_quan_hệ ON Điều_kiện_quan_hệ] WHERE <Các điều kiện> GROUP BY <Tên cột>

(5)

MS Access 2007 17 1 Cú pháp tổng quát (tiếp)

Trong đó:

- Disctint: kết truy vấn nhất, không trùng

lặp

- Top: chọn n dòng kết truy vấn

(từ khóa Percent n tỉ lệ phần trăm)

- Into: cho phép chép liệu kết sang bảng

mới

- Inner/Left/Right … Join … On …: cho phép liên

kết bảng có quan hệ với để lấy liệu chung

MS Access 2007 18 1 Cú pháp tổng quát (tiếp)

- Group by: nhóm liệu

- Having: điều kiện lọc nhóm, sử dụng kèm với

Group by để lọc lại liệu sau nhóm

- Order by: cho phép xếp bảng kết truy vấn

theo cột định làm tiêu chuẩn xếp

Thứ tự xếp: ASC – xếp tăng dần (là chế độ mặc định), DESC – xếp giảm dần

2 Dạng đơn giản § Cú pháp:

SELECT <Danh sách cột> FROM <Tên Bảng>

àLấy số cột bảng

§ Ví dụ: Lấy mã sinh viên, họ đệm tên

sinh viên bảng SINHVIEN SELECT MaSV, Hodem, Ten FROM SINHVIEN;

3 Dấu *  Dấu * đại diện cho tất cột

SELECT *

FROM <Tên Bảng>

 Ví dụ: Lấy danh sách khoa

(6)

4 Mệnh đề WHERE  Dùng để đặt điều kiện lấy liệu

SELECT <Danh sách cột> FROM <TênBảng>

WHERE <Danh sách điều kiện>

 Ví dụ: lấy mã sinh viên, họ đệm tên sinh

viên nữ

SELECT MaSV, Hodem, Ten FROM SINHVIEN

WHERE Gioitinh = "Nữ";

MS Access 2007 21

4 Mệnh đề WHERE (tiếp)  Các phép toán mệnh đề WHERE:

q So sánh: >, <, >=, <=, =, <> q Logic: And, Or, Not

 Ví dụ: lấy mã sinh viên, họ đệm tên sinh

viên nữ học lớp K55CNSHA SELECT MaSV, Hodem, Ten FROM SINHVIEN

WHERE Gioitinh = "Nữ" and MaLop = "K55CNSHA";

MS Access 2007 22

4 Mệnh đề WHERE (tiếp)  Toán tử BETWEEN <giá trị 1> AND <giá trị 2>  Ví dụ: Lấy danh sách mơn học có từ đến tín

chỉ

SELECT * FROM MONHOC

WHERE Sotc between and 5;

4 Mệnh đề WHERE (tiếp)  Toán tử [NOT] LIKE: tìm mẫu ký tự

 Sử dụng với ký tự đại diện: ? (thay cho ký tự

bất kỳ), * (thay cho chuỗi ký tự bất kỳ)

 Ví dụ: lấy danh sách Sinh viên có họ Nguyễn

SELECT *

FROM SINHVIEN

(7)

4 Mệnh đề WHERE (tiếp)

 Toán tử [NOT] IN: phép toán so sánh tập hợp,

1 danh sách

 Ví dụ: Lấy thơng tin lớp thuộc khoa công

nghệ thông tin, nông học chăn nuôi thú y SELECT*

FROM LOP

WHERE Makhoa IN ("CNTT", "NH", "CNTY");

MS Access 2007 25

5 Truy vấn từ nhiều bảng

 Khi thơng tin cần lấy có từ nhiều bảng khác nhau,

cần thực truy vấn từ nhiều bảng SELECT <Danh sách cột> FROM <Danh sách Bảng> WHERE <Cácđiềukiện>

 Lưuý:

q Cần liên kết bảng lại với Với n bảng cần

có n-1 điều kiện liên kết

q Các tên cột có nhiều bảng cần ghi rõ theo

dạng [Tên Bảng].[Tên cột]

MS Access 2007 26

5 Truy vấn từ nhiều bảng (tiếp)

 Ví dụ: Hiển thị thơng tin sinh viên với kết

quả học tập họ Thông tin hiển thị cần (mã sinh viên, họ tên, ngày sinh, giới tính, tên mơn học, kết quả):

SELECT SINHVIEN MaSV, Hodem, Ten, Ngaysinh, Gioitinh, TenMH, Ketqua

FROM SINHVIEN, KETQUA, MONHOC

WHERE SINHVIEN.MaSV = KETQUA.MaSV AND KETQUA.MaMH = MONHOC.MaMH;

6 Mệnh đề ORDER BY  Sắp xếp kết theo thứ tự mong muốn  ORDER BY <DS Tên cột> [ASC | DESC]

 Ví dụ: Hiển thị thơng tin sinh viên nữ học lớp

K55CNSHA, xếp theo vần alphabet họ tên SELECT MaSV, Hodem, Ten

FROM SINHVIEN

WHERE Gioitinh = "Nữ" and MaLop = "K55CNSHA"

(8)

7 Mệnh đề GROUP BY

 Nhóm liệu lại theo nhóm để thực

phép tốn thống kê

GROUP BY <DS Tên cột>

 Ví dụ: In danh sách lớp số sinh viên

mỗi lớp từ bảng SinhVien

SELECT SINHVIEN.MaLop, LOP.TenL, COUNT(SINHVIEN.MaSV) AS 'So sinh vien' FROM SINHVIEN, LOP

WHERE SINHVIEN.MaLop = LOP.MaLop GROUP BY SINHVIEN.MaLop, LOP.TenL;

MS Access 2007 29

7 Mệnh đề GROUP BY (tiếp)  Một số hàm thơng dụng:

q SUM: tính tổng phần tử q AVG: tính giá trị trung bình q MIN: tính giá trị nhỏ q MAX: tính giá trị lớn q COUNT: đếm số phần tử

MS Access 2007 30

8 Mệnh đề HAVING

 Đặt điều kiện chọn sau nhóm liệu

mệnh đề GROUP BY

 Ví dụ: In danh sách lớp có số sinh viên >2 từ

bảng SINHVIEN

SELECT SINHVIEN.MaLop, LOP.TenL, COUNT(SINHVIEN.MaSV) AS So sinh vien FROM SINHVIEN, LOP

WHERE SINHVIEN.MaLop = LOP.MaLop GROUP BY SINHVIEN.MaLop, LOP.TenL HAVING COUNT(SINHVIEN.MaSV)>=2

9 Phát biểu Select với AS  Đặt lại tên Field hiển thị kết

 Ví dụ: Hiển thị thơng tin sinh viên với kết

quả học tập họ Khi hiển thị cột ketqua đổi tên thành cột DiemTB

SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh, Gioitinh, TenMH, Ketqua as DiemTB FROM SINHVIEN, KETQUA, MONHOC

(9)

10 Phát biểu Select với DISTINCT  Nếu kết truy vấn có nhiều ghi trùng nhau, để

chỉ lấy mẫu tin ta dùng DISTINCT

 Ví dụ: In danh sách lớp bảng SINHVIEN

SELECT DISTINCT MALOP FROM SINHVIEN;

MS Access 2007 33

11 Truy vấn con

 Là câu lệnh truy vấn lựa chọn lồng vào

câu lệnh truy vấn khác

à Được đặt cặp dấu ngoặc đơn

à Chỉ phép tham chiếu đến cột biểu

thức trả giá trị

à Trả giá trị đơn lẻ danh sách giá trị

à Cấp độ lồng truy vấn không giới

hạn

MS Access 2007 34

11 Truy vấn (tiếp)  Dạng tổng quát:

SELECT <Danh sách cột> FROM <Danh sách Bảng> WHERE <Các điều kiện>

…<Têncột > IN ( NOT IN, =, <>, …) (SELECT <Danh sách cột> FROM <Danh sách Bảng> WHERE<Các điều kiện>)

11 Truy vấn (tiếp)

 Ví dụ: Hiển thị thơng tin sinh viên đăng

kí học thi lại môn học nào:

SELECT Sinhvien.MaSV, hodem, ten, ngaysinh,

maMH, ketqua

FROM SINHVIEN, KETQUA

WHERE (SINHVIEN.MaSV=KETQUA.MaSV)

(10)

MS Access 2007 37 12 Nối liệu từ truy vấn lựa chọn  Cú pháp:

Select Danh_sách_cột1 From Tên_bảng1 Union

Select Danh_sách_cột2 From Tên_bảng2

 Ví dụ:

Select * from SINHVIEN1

UNION Select * from SINHVIEN2;

Nhóm lệnh cập nhật liệu

1 Lệnh thêm ghi Lệnh sửa ghi Lệnh xóa ghi

MS Access 2007 38

1 Lệnh thêm ghi  Cú pháp:

INSERT INTO <tênbảng>(<danh sách cột>) VALUES (<danh sách giá trị>)

 Ví dụ: thêm dòng vào bảng SINHVIEN

INSERT INTO SINHVIEN (MaSV, Hodem, Ten, Ngaysinh, gioitinh, tinh, MaLoP)

VALUES ("561205", "Nguyễn Tiến", "Minh", "03/08/1992", "Nam", "Hà Nội","K57CNSHA");

1 Lệnh thêm ghi (tiếp)

 Nếu giá trị sau từ khố VALUES hồn tồn phù

hợp thứ tự với cột bảng, danh sách cột bỏ qua

 Ví dụ: thêm dòng vào bảng SINHVIEN

INSERT INTO SINHVIEN

(11)

1 Lệnh thêm ghi (tiếp)

 Ta thêm ghi vào bảng từ câu lệnh truy

vấn (Select)

INSERT INTO <tên bảng> (<tên cột 1>, ) <Câu lệnh Select>

hoặc

INSERT INTO <tênbảng> <Câu lệnh Select>

MS Access 2007 41

1 Lệnh thêm ghi (tiếp)

 Ví dụ: thêm tất dịng bảng DSSV vào

bảng SINHVIEN:

INSERT INTO SINHVIEN SELECT * FROM DSSV;

 Lưu ý: hai bảng DSSV SINHVIEN phải có cấu

trúc giống

MS Access 2007 42

2 Lệnh sửa ghi

• Cú pháp:

UPDATE <tên bảng>

SET <tên cột 1> = <giá trị 1>, <tên cột 2> = <giá trị 2>, .,

<tên cột n> = < giá trị n> [WHERE <điềukiện>];

•Ý nghĩa:

– Giá trị cột <tên cột 1>, <tên cột 2> Của

những ghi thoả mãn điều kiện sau WHERE sửa đổi thành <giá trị 1>, <giá trị 2>, …

2 Lệnh sửa ghi (tiếp)

 Ví dụ: sửa hộ sinh viên từ Hà Tây thành

Hà Nội

(12)

3 Lệnh xóa ghi  Cú pháp:

DELETE FROM <tên bảng> [WHERE <điều kiện>];

 Ý nghĩa:

q Các ghi thoả mãn điều kiện WHERE bị xố

khỏi bảng

q Nếu khơng có mệnh đề WHERE tất

ghi bảng bị xóa khỏi bảng

MS Access 2007 45

3 Lệnh xóa ghi (tiếp)  Ví dụ: Xóa tất ghi bảng DSSV

DELETE FROM DSSV;

 Ví dụ: Xóa sinh viên lớp K53MTA khỏi bảng

SINHVIEN

DELETE FROM SINHVIEN WHERE MaLop = "K53MTA";

Ngày đăng: 09/04/2021, 23:03

Tài liệu cùng người dùng

Tài liệu liên quan