Bài 23. Truy Vấn Dữ Liệu Và Cập Nhật Dữ Liệu
Chia sẻ bởi Trần Thị Như Trang |
Ngày 29/04/2019 |
80
Chia sẻ tài liệu: Bài 23. Truy Vấn Dữ Liệu Và Cập Nhật Dữ Liệu thuộc Bài giảng khác
Nội dung tài liệu:
Bài 23:
Truy vấn dữ liệu và cập nhật dữ liệu
1/32
23.1.Câu lệnh
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Cú pháp:
INSERT INTO tên_bảng VALUES (giá_trị_1,gt2,gt3….)
- Cũng có thể chỉ rõ cột/trường nào cần chèn dữ liệu: INSERT INTO tên_bảng (cột_1, cột_2, cột_3…) VALUES (giá_trị_1, giá_trị_2…)
2/32
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Chèn 1 dòng mới:
Ta chèn bảng Persons như sau:
3
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Chèn 1 dòng mới:
Câu lệnh SQL sau:
Nếu nhớ thứ tự các cột trong bảng:
INSERT INTO Persons
VALUES (`Hetland`, `Camilla`, `Hagabakka 24`, `Sandnes`)
4
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Sẽ tạo ra kết quả trong bảng Persons như sau:
5
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Nếu không nhớ thứ tự các cột trong bảng:
Ta chèn bảng Persons như sau:
INSERT INTO Persons (Lasname, Address)
VALUE( ‘Resmusssen’,’Storgt 67’)
6
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Khi chèn nhiều bản ghi từ 1 bảng :
Cấu trúc:
INSERT INTO< tên bảng cần chèn dữ liệu>
SELECT FROM
7
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Khi chèn nhiều bản ghi từ 1 bảng :
Cấu trúc:
INSERT INTO< tên bảng cần chèn dữ liệu>
SELECT FROM
8
23.1.2.Câu lện sửa đổi dữ liệu (UPDATE)
Cú pháp:
UDATE tên_bảng SET tên_cột=giá_trị_mới Where tên_cột=giá_trị
VD:
UPDATE ten_bang SET FirstName=‘Nina’, City=‘Stavanger’… WHERE LastName=‘Rasmussen’.
9
23.1.3.Câu lện Xóadữ liệu (DELETE)
Cú pháp:
DELETE FROM tên_bảng
WHERE tên_cột=giá_trị (xóa dòng có giá trong bảng )
DELETE FROM table_name (xóa toàn bộ dòng nhưng vẫn để lại cấu trúc và thuộc tính)
10
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Gồm 3 mệnh đề
SELECT
FROM
WHERE <điều kiện>
-
Tên các cột cần được hiển thị trong kết quả truy vấn
-
Tên các bảng liên quan đến câu truy vấn
- <điều kiện>
Biểu thức boolean xác định dòng nào sẽ được rút trích Nối các biểu thức: AND, OR, và NOT
Phép toán: , , <= , >=, <> , , LIKE và BETWEEN
11
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Ở dạng tổng quát, câu lệnh Select sẽ như sau:
SELECT [DISTINCT] [AS ] […] | * [INTO ]
FROM [bí danh 1][…]
[WHERE <điều kiện nối> [AND | OR <điều kiện lọc>]]
[GROUP BY] [HAVING <điều kiện nhóm>]
[ORDERED BY [ASC | DESC],…]
[UNION | INTERSECT | EXCEPT]
12
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Nguyên tắc hoạt động của câu lệnh SQL dạng tổng quát như sau :
13
23.2.2. SQL và đại số quan hệ
14
23.2.3. Mệnh đề Select
Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong 1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set).
a) Cú pháp
Cú pháp của câu lệnh SELECT như sau:
SELECT tên_các_cột
FROM tên_bảng
15
23.2.3. Mệnh đề Select
b) Truy xuất nhiều cột
Để truy xuất các cột mang tên LastName và FirstName, ta dùng một câu lệnh SELECT như sau:
SELECT LastName, FirstName FROM Persons
Bảng Persons:
16
23.2.3. Mệnh đề Select
Bảng kết quả:
17
23.2.3. Mệnh đề Select
c) Truy xuất tất cả các cột
Để truy xuất tất cả các cột từ bảng Persons, ta dùng ký hiệu * thay cho danh sách các cột:
SELECT * FROM Persons
Kết quả trả về:
18
23.2.3. Mệnh đề Select
d) Tập kết quả
Kết quả trả về từ một câu truy vấn SQL được lưu trong 1 tập kết quả (result set). Hầu hết các hệ thống chương trình CSDL cho phép duyệt qua tập kết quả bằng các hàm lập trình như Move-To-First-Record, Get-Record-Content, Move-To-Next-Record v.v...
19
23.2.3. Mệnh đề Select
e) Dấu chẩm phảy (;) phía sau câu lệnh
Dấu chẩm phảy là một cách chuẩn để phân cách các câu lệnh SQL nếu như hệ thống CSDL cho phép nhiều câu lệnh SQL được thực thi thông qua một lời gọi duy nhất.Các câu lệnh SQL trong bài viết này đều là các câu lệnh đơn (mỗi câu lệnh là một và chỉ một lệnh SQL). MS Access và MS SQL Server không đỏi hỏi phải có dấu chấm phảy ngay sau mỗi câu lệnh SQL, nhưng một số chương trình CSDL khác có thể bắt buộc bạn phải thêm dấu chấm phảy sau mỗi câu lệnh SQL (cho dù đó là câu lệnh đơn). Xin nhắc lại, trong bài viết này chúng ta sẽ không dùng dấu chấm phảy ở cuối câu lệnh SQL.
20
23.2.4. Mệnh đề where
Mệnh đề WHERE được dùng để thiết lập điều kiện truy xuất.
Để truy xuất dữ liệu trong bảng theo các điều kiện nào đó, một mệnh đề WHERE có thể được thêm vào câu lệnh SELECT.
a) Cú pháp
Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau:
SELECT tên_cột[,…] FROM tên_bảng[,…]
WHERE tên_cột phép_toán giá_trị[and/or …]
21
23.2.4. Mệnh đề where
Trong mệnh đề WHERE, các phép toán được sử dụng là
Phép toán Mô tả
= So sánh bằng
<> So sánh không bằng
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
BETWEEN Nằm giữa một khoảng
LIKE So sánh mẫu chuỗi
Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng !=
22
23.2.4. Mệnh đề where
b) Sử dụng mệnh đề WHERE
Để lấy danh sách những người sống ở thành phố Sandnes, ta sử dụng mệnh đề WHERE trong câu lệnh SELECT như sau:
SELECT * FROM Persons
WHERE City = `Sandnes`
Bảng Persons:
23
23.2.4. Mệnh đề where
Kết quả trả về
24
23.2.4. Mệnh đề where
c) Sử dụng dấu nháy:
Với dữ liệu dạng chuỗi văn bản:
Câu lệnh đúng:
SELECT * FROM Persons WHERE FirstName = `Tove`
Câu lệnh sai:
SELECT * FROM Persons WHERE FirstName = Tove
Với dữ liệu dạng số-Câu lệnh đúng:
SELECT * FROM Persons WHERE Year > 1965
Câu lệnh sai:
SELECT * FROM Persons WHERE Year > `1965`
25
23.2.4. Mệnh đề where
d) Toán tử Like
Toán tử like được sử dụng trong trường hợp so sánh gần đúng, có thể sử dụng các toán tử đại diện(wildcard operators) trong bảng dưới đây
26
23.2.5. Mệnh đề order by
Mệnh đề ORDER BY được sử dụng để sắp xếp kết quả trả về.
Sắp xếp các dòng
Mệnh đề ORDER BY được dùng để sắp xếp các dòng.
Ví dụ bảng Orders:
27
23.2.5. Mệnh đề order by
Ví dụ:
Để lấy danh sách các công ty theo thứ tự chữ cái (tăng dần):
SELECT Company, OrderNumber FROM Orders
ORDER BY Company
Kết quả trả về:
28
23.2.6. Kết nối bảng
Trong quá trình truy vấn, dữ liệu có thể được lấy từ một hoặc nhiều bảng trong CSDL, nếu số lượng bảng từ 2 trở lên chúng ta phải thực hiện việc kết nối giữa các bảng, biểu thức kết nối ta sẽ đặt trong mệnh đề where (ở đây chúng ta đang đề cập đến kết nối bằng)
SELECT TEN_NV
FROM NHAN_VIEN, PHIEU_XUAT
WHERE MA_NV = MANV_XUAT AND NGAY_XUAT =`08/12/2008`
29
23.2.6. Kết nối bảng
Quay trở lại với CSDL quản lý vật tư trong bài 10, giả sử muốn hiển thị tên nhân viên đã xuất vật tư trong ngày ‘12/07/2008’, chúng ta sẽ thiết kế câu truy vấn như sau:
SELECT TEN_NV
FROM NHAN_VIEN, PHIEU_XUAT
WHERE MA_NV = MANV_XUAT AND NGAY_XUAT =`08/12/2008‘
Câu truy vấn trên thực hiện trên hai bảng là NHAN_VIEN và PHIEU_XUAT, điều kiện kết nối giữa hai bảng là MA_NV = MANV_XUAT
30
23.3. Các bài tập về truy vấn cơ bản
Cho các bảng trong cơ sở dữ liệu quản lý vật tư ( hình vẽ ở dưới )
31
23.3. Các bài tập về truy vấn cơ bản
Hãy viết các câu truy vấn để trả lời các câu hỏi sau
1. Hiển thị tên và ngày sinh của những nhân viên sinh năm 1980
2. Hiển thị thông tin bao gồm mã, tên và ngày sinh của những nhân viên đã xuất vật tư trong tháng 6 năm 2008.
3. Hiển thị mã vật tư và số lượng đã xuất trong ngày 12 tháng 8 năm 2008
4. Hiển thị tên và đơn giá của tất cả vật tư sắp xếp theo chiều tăng của đơn giá
5. Hiển thị tên vật tư và số tiền tương ứng của những vật tư đã được xuất trong phiếu có số phiếu xuất là ‘001’
32
Truy vấn dữ liệu và cập nhật dữ liệu
1/32
23.1.Câu lệnh
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Cú pháp:
INSERT INTO tên_bảng VALUES (giá_trị_1,gt2,gt3….)
- Cũng có thể chỉ rõ cột/trường nào cần chèn dữ liệu: INSERT INTO tên_bảng (cột_1, cột_2, cột_3…) VALUES (giá_trị_1, giá_trị_2…)
2/32
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Chèn 1 dòng mới:
Ta chèn bảng Persons như sau:
3
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Chèn 1 dòng mới:
Câu lệnh SQL sau:
Nếu nhớ thứ tự các cột trong bảng:
INSERT INTO Persons
VALUES (`Hetland`, `Camilla`, `Hagabakka 24`, `Sandnes`)
4
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Sẽ tạo ra kết quả trong bảng Persons như sau:
5
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Nếu không nhớ thứ tự các cột trong bảng:
Ta chèn bảng Persons như sau:
INSERT INTO Persons (Lasname, Address)
VALUE( ‘Resmusssen’,’Storgt 67’)
6
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Khi chèn nhiều bản ghi từ 1 bảng :
Cấu trúc:
INSERT INTO< tên bảng cần chèn dữ liệu>
SELECT
7
23.1.1.Thêm dữ liệu (insert)
INSERT INTO-chèn dòng mới vào bảng
Khi chèn nhiều bản ghi từ 1 bảng :
Cấu trúc:
INSERT INTO< tên bảng cần chèn dữ liệu>
SELECT
8
23.1.2.Câu lện sửa đổi dữ liệu (UPDATE)
Cú pháp:
UDATE tên_bảng SET tên_cột=giá_trị_mới Where tên_cột=giá_trị
VD:
UPDATE ten_bang SET FirstName=‘Nina’, City=‘Stavanger’… WHERE LastName=‘Rasmussen’.
9
23.1.3.Câu lện Xóadữ liệu (DELETE)
Cú pháp:
DELETE FROM tên_bảng
WHERE tên_cột=giá_trị (xóa dòng có giá trong bảng )
DELETE FROM table_name (xóa toàn bộ dòng nhưng vẫn để lại cấu trúc và thuộc tính)
10
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Gồm 3 mệnh đề
SELECT
FROM
WHERE <điều kiện>
-
Tên các cột cần được hiển thị trong kết quả truy vấn
-
Tên các bảng liên quan đến câu truy vấn
- <điều kiện>
Biểu thức boolean xác định dòng nào sẽ được rút trích Nối các biểu thức: AND, OR, và NOT
Phép toán: , , <= , >=, <> , , LIKE và BETWEEN
11
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Ở dạng tổng quát, câu lệnh Select sẽ như sau:
SELECT [DISTINCT]
FROM
[WHERE <điều kiện nối> [AND | OR <điều kiện lọc>]]
[GROUP BY
[ORDERED BY
[UNION | INTERSECT | EXCEPT
12
23.2.1. Cú pháp cơ bản của câu lệnh select cơ bản
Nguyên tắc hoạt động của câu lệnh SQL dạng tổng quát như sau :
13
23.2.2. SQL và đại số quan hệ
14
23.2.3. Mệnh đề Select
Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong 1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set).
a) Cú pháp
Cú pháp của câu lệnh SELECT như sau:
SELECT tên_các_cột
FROM tên_bảng
15
23.2.3. Mệnh đề Select
b) Truy xuất nhiều cột
Để truy xuất các cột mang tên LastName và FirstName, ta dùng một câu lệnh SELECT như sau:
SELECT LastName, FirstName FROM Persons
Bảng Persons:
16
23.2.3. Mệnh đề Select
Bảng kết quả:
17
23.2.3. Mệnh đề Select
c) Truy xuất tất cả các cột
Để truy xuất tất cả các cột từ bảng Persons, ta dùng ký hiệu * thay cho danh sách các cột:
SELECT * FROM Persons
Kết quả trả về:
18
23.2.3. Mệnh đề Select
d) Tập kết quả
Kết quả trả về từ một câu truy vấn SQL được lưu trong 1 tập kết quả (result set). Hầu hết các hệ thống chương trình CSDL cho phép duyệt qua tập kết quả bằng các hàm lập trình như Move-To-First-Record, Get-Record-Content, Move-To-Next-Record v.v...
19
23.2.3. Mệnh đề Select
e) Dấu chẩm phảy (;) phía sau câu lệnh
Dấu chẩm phảy là một cách chuẩn để phân cách các câu lệnh SQL nếu như hệ thống CSDL cho phép nhiều câu lệnh SQL được thực thi thông qua một lời gọi duy nhất.Các câu lệnh SQL trong bài viết này đều là các câu lệnh đơn (mỗi câu lệnh là một và chỉ một lệnh SQL). MS Access và MS SQL Server không đỏi hỏi phải có dấu chấm phảy ngay sau mỗi câu lệnh SQL, nhưng một số chương trình CSDL khác có thể bắt buộc bạn phải thêm dấu chấm phảy sau mỗi câu lệnh SQL (cho dù đó là câu lệnh đơn). Xin nhắc lại, trong bài viết này chúng ta sẽ không dùng dấu chấm phảy ở cuối câu lệnh SQL.
20
23.2.4. Mệnh đề where
Mệnh đề WHERE được dùng để thiết lập điều kiện truy xuất.
Để truy xuất dữ liệu trong bảng theo các điều kiện nào đó, một mệnh đề WHERE có thể được thêm vào câu lệnh SELECT.
a) Cú pháp
Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau:
SELECT tên_cột[,…] FROM tên_bảng[,…]
WHERE tên_cột phép_toán giá_trị[and/or …]
21
23.2.4. Mệnh đề where
Trong mệnh đề WHERE, các phép toán được sử dụng là
Phép toán Mô tả
= So sánh bằng
<> So sánh không bằng
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
BETWEEN Nằm giữa một khoảng
LIKE So sánh mẫu chuỗi
Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng !=
22
23.2.4. Mệnh đề where
b) Sử dụng mệnh đề WHERE
Để lấy danh sách những người sống ở thành phố Sandnes, ta sử dụng mệnh đề WHERE trong câu lệnh SELECT như sau:
SELECT * FROM Persons
WHERE City = `Sandnes`
Bảng Persons:
23
23.2.4. Mệnh đề where
Kết quả trả về
24
23.2.4. Mệnh đề where
c) Sử dụng dấu nháy:
Với dữ liệu dạng chuỗi văn bản:
Câu lệnh đúng:
SELECT * FROM Persons WHERE FirstName = `Tove`
Câu lệnh sai:
SELECT * FROM Persons WHERE FirstName = Tove
Với dữ liệu dạng số-Câu lệnh đúng:
SELECT * FROM Persons WHERE Year > 1965
Câu lệnh sai:
SELECT * FROM Persons WHERE Year > `1965`
25
23.2.4. Mệnh đề where
d) Toán tử Like
Toán tử like được sử dụng trong trường hợp so sánh gần đúng, có thể sử dụng các toán tử đại diện(wildcard operators) trong bảng dưới đây
26
23.2.5. Mệnh đề order by
Mệnh đề ORDER BY được sử dụng để sắp xếp kết quả trả về.
Sắp xếp các dòng
Mệnh đề ORDER BY được dùng để sắp xếp các dòng.
Ví dụ bảng Orders:
27
23.2.5. Mệnh đề order by
Ví dụ:
Để lấy danh sách các công ty theo thứ tự chữ cái (tăng dần):
SELECT Company, OrderNumber FROM Orders
ORDER BY Company
Kết quả trả về:
28
23.2.6. Kết nối bảng
Trong quá trình truy vấn, dữ liệu có thể được lấy từ một hoặc nhiều bảng trong CSDL, nếu số lượng bảng từ 2 trở lên chúng ta phải thực hiện việc kết nối giữa các bảng, biểu thức kết nối ta sẽ đặt trong mệnh đề where (ở đây chúng ta đang đề cập đến kết nối bằng)
SELECT TEN_NV
FROM NHAN_VIEN, PHIEU_XUAT
WHERE MA_NV = MANV_XUAT AND NGAY_XUAT =`08/12/2008`
29
23.2.6. Kết nối bảng
Quay trở lại với CSDL quản lý vật tư trong bài 10, giả sử muốn hiển thị tên nhân viên đã xuất vật tư trong ngày ‘12/07/2008’, chúng ta sẽ thiết kế câu truy vấn như sau:
SELECT TEN_NV
FROM NHAN_VIEN, PHIEU_XUAT
WHERE MA_NV = MANV_XUAT AND NGAY_XUAT =`08/12/2008‘
Câu truy vấn trên thực hiện trên hai bảng là NHAN_VIEN và PHIEU_XUAT, điều kiện kết nối giữa hai bảng là MA_NV = MANV_XUAT
30
23.3. Các bài tập về truy vấn cơ bản
Cho các bảng trong cơ sở dữ liệu quản lý vật tư ( hình vẽ ở dưới )
31
23.3. Các bài tập về truy vấn cơ bản
Hãy viết các câu truy vấn để trả lời các câu hỏi sau
1. Hiển thị tên và ngày sinh của những nhân viên sinh năm 1980
2. Hiển thị thông tin bao gồm mã, tên và ngày sinh của những nhân viên đã xuất vật tư trong tháng 6 năm 2008.
3. Hiển thị mã vật tư và số lượng đã xuất trong ngày 12 tháng 8 năm 2008
4. Hiển thị tên và đơn giá của tất cả vật tư sắp xếp theo chiều tăng của đơn giá
5. Hiển thị tên vật tư và số tiền tương ứng của những vật tư đã được xuất trong phiếu có số phiếu xuất là ‘001’
32
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Thị Như Trang
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)