1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội

56 30 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 1,64 MB

Nội dung

Tiếp nội dung phần 1, Giáo trình Quản trị SQL Server: Phần 2 cung cấp cho người học các kiến thức: Thao tác dữ liệu trong MS SQL Server; Khung nhìn (View); Thủ tục lưu trữ (Stored Procedure). Mời các bạn cùng tham khảo!

Bài 3: Thao tác liệu MS SQL Server Thêm dòng liệu Dữ liệu bảng thể dạng dòng (bản ghi) Để bổ sung thêm dòng liệu vào bảng, ta sử dụng câu lệnh INSERT Hầu hết hệ quản trị CSDL dựa SQL cung cấp cách để thực thao tác bổ sung liệu cho bảng:  Bổ sung dòng liệu với câu lệnh INSERT Đây sử dụng thường gặp giao tác SQL  Bổ sung nhiều dòng liệu cách truy xuất liệu từ bảng liệu khác Bổ sung dòng liệu với lệnh INSERT Để bổ sung dòng liệu vào bảng, ta sử dụng câu lệnh INSERT với cú pháp sau: INSERT INTO tên_bảng[(danh_sách_cột)] VALUES(danh_sách_trị) Trong câu lệnh INSERT, danh sách cột sau tên bảng không cần thiết phải định giá trị trường ghi định đầy đủ danh sách trị Trong trường hợp này, thứ tự giá trị danh sách trị phải với số lượng trường bảng cần bổ sung liệu phải tuân theo thứ tự trường bảng định nghĩa Ví dụ: Câu lệnh bổ sung thêm dòng liệu vào bảng KHOA INSERT INTO khoa VALUES(‘DHT10’,’Khoa Luật’,’054821135’) Trong trường hợp nhập giá trị cho số cột bảng, ta phải định danh sách cột cần nhập liệu sau tên bảng Khi đó, cột khơng nhập liệu nhận giá trị mặc định (nếu có) nhận giá trị NULL (nếu cột cho phép chấp nhận giá trị NULL) Nếu cột khơng có giá trị mặc định không chấp nhận giá trị NULL mà không đuợc nhập liệu, câu lệnh bị lỗi Ví dụ: Câu lệnh bổ sung ghi cho bảng SINHVIEN 34 INSERT INTO sinhvien(masv,hodem,ten,gioitinh,malop) VALUES(‘0241020008’,‘Nguyễn Cơng’,’Chính’,1,’C24102’) câu lệnh cịn viết sau: INSERT INTO sinhvien VALUES(‘0241020008’,‘Nguyễn Cơng’,’Chính’, NULL,1,NULL,’C24102’) Bổ sung nhiều dịng liệu từ bảng khác Một cách sử dụng khác câu lệnh INSERT sử dụng để bổ sung nhiều dòng liệu vào bảng, dòng liệu lấy từ bảng khác thông qua câu lệnh SELECT Ở cách này, giá trị liệu bổ sung vào bảng không định tường minh mà thay vào câu lệnh SELECT truy vấn liệu từ bảng khác Cú pháp câu lệnh INSERT có dạng sau: INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT Ví dụ: Giả sử ta có bảng LUUSINHVIEN bao gồm trường HODEM, TEN, NGAYSINH Câu lệnh bổ sung vào bảng LUUSINHVIEN dịng liệu có từ câu truy vấn SELECT: INSERT INTO luusinhvien SELECT hodem,ten,ngaysinh FROM sinhvien WHERE noisinh like ‘%Huế%’ Khi bổ sung liệu theo cách cần lưu ý số điểm sau: Kết câu lệnh SELECT phải có số cột với số cột định bảng đích phải tương thích kiểu liệu Cập nhật liệu Câu lệnh UPDATE SQL sử dụng để cập nhật liệu bảng Câu lệnh có cú pháp sau: UPDATE tên_bảng 35 SET tên_cột = biểu_thức [, , tên_cột_k = biểu_thức_k] [FROM danh_sách_bảng] [WHERE điều_kiện] Sau UPDATE tên bảng cần cập nhật liệu Một câu lệnh UPDATE cập nhật liệu cho nhiều cột cách định danh sách tên cột biểu thức tương ứng sau từ khoá SET Mệnh đề WHERE câu lệnh UPDATE thường sử dụng để định dòng liệu chịu tác động câu lệnh (nếu không định, phạm vi tác động câu lệnh hiểu tồn dịng bảng) Ví dụ: Câu lệnh cập nhật lại số đơn vị học trình mơn học có số đơn vị học trình nhỏ UPDATE monhoc SET sodvht = WHERE sodvht = Sử dụng cấu trúc CASE câu lệnh UPDATE Cấu trúc CASE sử dụng biểu thức cần phải đưa định khác giá trị biểu thức Ví dụ: Giả sử ta có bảng NHATKYPHONG sau Sau thực câu lệnh: UPDATE nhatkyphong SET tienphong=songay*CASE WHEN loaiphong='A' THEN 100 WHEN loaiphong='B' THEN 70 ELSE 50 END 36 Dữ liệu bảng là: Điều kiện cập nhật liệu liên quan đến nhiều bảng Mệnh đề FROM câu lệnh UPDATE sử dụng cần định điều kiện liên quan đến bảng khác với bảng cần cập nhật liệu Trong truờng hợp này, mệnh đề WHERE thường có điều kiện nối bảng Ví dụ: Giả sử ta có hai bảng MATHANG NHATKYBANHANG sau: Câu lệnh cập nhật giá trị trường THANHTIEN bảng NHATKYBANHANG theo công thức THANHTIEN = SOLUONG × GIA UPDATE nhatkybanhang SET thanhtien = soluong*gia FROM mathang WHERE nhatkybanhang.mahang = mathang.mahang Câu lệnh UPDATE với truy vấn Tương tự câu lệnh SELECT, truy vấn sử dụng mệnh đề WHERE câu lệnh UPDATE nhằm định điều kiện dòng liệu cần cập nhật liệu Ví dụ: Câu lệnh viết sau: 37 UPDATE nhatkybanhang SET thanhtien = soluong*gia FROM mathang WHERE mathang.mahang =(SELECT mathang.mahang FROM mathang WHERE mathang.mahang=nhatkybanhang.mahang) Xóa dịng liệu Để xố liệu bảng, ta sử dụng câu lệnh DELETE Cú pháp câu lệnh sau: DELETE FROM tên_bảng [FROM danh_sách_bảng] [WHERE điều_kiện] Trong câu lệnh này, tên bảng cần xoá liệu định sau DELETE FROM Mệnh đề WHERE câu lệnh sử dụng để định điều kiện dòng liệu cần xố Nếu câu lệnh DELETE khơng có mệnh đề WHERE tồn dịng liệu bảng bị xố Ví dụ: Câu lệnh xoá khỏi bảng SINHVIEN sinh viên sinh Huế DELETE FROM sinhvien WHERE noisinh LIKE ‘%Huế%’ Xoá liệu điều kiện liên quan đến nhiều bảng Nếu điều kiện câu lệnh DELETE liên quan đến bảng khơng phải bảng cần xóa liệu, ta phải sử dụng thêm mệnh đề FROM sau danh sách tên bảng Trong trường hợp này, mệnh đề WHERE ta định thêm điều kiện nối bảng Ví dụ: Câu lệnh xoá khỏi bảng SINHVIEN sinh viên lớp Tin K24 DELETE FROM sinhvien FROM lop 38 WHERE lop.malop=sinhvien.malop AND tenlop='Tin K24' Sử dụng truy vấn câu lệnh DELETE Một câu lệnh SELECT lồng vào mệnh đề WHERE câu lệnh DELETE để làm điều kiện cho câu lệnh tương tự câu lệnh UPDATE Ví dụ: Câu lệnh xố khỏi bảng LOP lớp khơng có sinh viên học DELETE FROM lop WHERE malop NOT IN (SELECT DISTINCT malop FROM sinhvien) Xố tồn liệu bảng Câu lệnh DELETE không định điều kiện dịng liệu cần xố mệnh đề WHERE xố tồn liệu bảng Thay sử dụng câu lệnh DELETE trường hợp này, ta sử dụng câu lệnh TRUNCATE có cú pháp sau: TRUNCATE TABLE tên_bảng Ví dụ: Câu lệnh sau xố toàn liệu bảng diemthi: DELETE FROM diemthi có tác dụng tương tự với câu lệnh TRUNCATE TABLE diemthi Truy xuất liệu Lấy thông tin từ cột bảng mệnh đề SELECT 4.1 Câu lệnh SELECT sử dụng để truy xuất liệu từ dòng cột hay nhiều bảng, khung nhìn Câu lệnh dùng để thực phép chọn (tức truy xuất tập dòng hay nhiều bảng), phép chiếu (tức truy xuất tập cột hay nhiều bảng) phép nối (tức liên kết dòng hai hay nhiều bảng để truy xuất liệu) Ngồi ra, câu lệnh cịn cung cấp khả thực thao tác truy vấn thống kê liệu phức tạp khác  Cú pháp chung câu lệnh SELECT có dạng: SELECT [ALL | DISTINCT][TOP n] danh_sách_chọn 39 [INTO tên_bảng_mới] FROM danh_sách_bảng/khung_nhìn [WHEREđiều_kiện] [GROUP BY danh_sách_cột] [HAVING điều_kiện] [ORDER BY cột_sắp_xếp] [COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]] Điều cần lưu ý câu lệnh thành phần câu lệnh SELECT sử dụng phải tuân theo thứ tự cú pháp Nếu không, câu lệnh xem không hợp lệ Câu lệnh SELECT sử dụng để tác động lên bảng liệu kết câu lệnh hiển thị dạng bảng, tức tập hợp dòng cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT với mệnh đề COMPUTE) Ví dụ: Kết câu lệnh sau cho biết mã lớp, tên lớp hệ đào tạo lớp có SELECT malop,tenlop,hedaotao FROM lop  Mệnh đề FROM Mệnh đề FROM câu lệnh SELECT sử dung nhằm định bảng khung nhìn cần truy xuất liệu Sau FROM danh sách tên bảng khung nhìn tham gia vào truy vấn, tên bảng khung nhìn phân cách dấu phẩy Ví dụ: Câu lệnh hiển thị danh sách khoa trường SELECT * FROM khoa kết câu lệnh sau: Ta sử dụng bí danh cho bảng hay khung nhìn câu lệnh SELECT Bí danh gán mệnh đề FROM cách định bí danh sau tên bảng Ví dụ: câu lệnh sau gán bí danh a cho bảng khoa SELECT * FROM khoa a 40  Danh sách chọn câu lệnh SELECT Danh sách chọn câu lệnh SELECT sử dụng để định trường, biểu thức cần hiển thị cột kết truy vấn Các trường, biểu thức định sau từ khoá SELECT phân cách dấu phẩy Sử dụng danh sách chọn câu lệnh SELECT bao gồm trường hợp sau: - Chọn tất cột bảng Khi cần hiển thị tất Trường bảng, sử dụng ký tự * danh sách chọn thay phải liệt kê danh sách tất cột Trong trường hợp này, cột hiển thị kết truy vấn tuân theo thứ tự mà chúng tạo bảng định nghĩa Ví dụ: Câu lệnh SELECT * FROM lop cho kết bao sau: 41 - Tên cột danh sách chọn Trong trường hợp cần định cụ thể cột cần hiển thị kết truy vấn, ta định danh sách tên cột danh sách chọn Thứ tự cột kết truy vấn tuân theo thứ tự trường danh sách chọn Ví dụ: Câu lệnh SELECT malop,tenlop,namnhaphoc,khoa FROM lop cho biết mã lớp, tên lớp, năm nhập học khố lớp có kết sau: Lưu ý: Nếu truy vấn thực nhiều bảng/khung nhìn bảng/khung nhìn có trường trùng tên tên trường xuất danh sách chọn phải viết dạng: tên_bảng.tên_trường Ví dụ: SELECT malop, tenlop, lop.makhoa, tenkhoa FROM lop, khoa WHERE lop.malop = khoa.makhoa - Thay đổi tiêu đề cột Trong kết truy vấn, tiêu đề cột mặc định tên trường tương ứng bảng Tuy nhiên, để tiêu đề trở nên thân thiện hơn, ta đổi tên tiêu đề cột Để đặt tiêu đề cho cột đó, ta sử dụng cách viết: tiêu_đề_cột = tên_trường 42 tên_trường AS tiêu_đề_cột tên_trường tiêu_đề_cột Ví dụ: Câu lệnh đây: SELECT 'Mã lớp'= malop,tenlop 'Tên lớp',khoa AS 'Khoá' FROM lop cho biết mã lớp, tên lớp khoá học lớp trường Kết câu lệnh sau: - Sử dụng cấu trúc CASE danh sách chọn Cấu trúc CASE sử dụng danh sách chọn nhằm thay đổi kết truy vấn tuỳ thuộc vào trường hợp khác Cấu trúc có cú pháp sau: CASE biểu_thức WHEN biểu_thức_kiểm_tra THEN kết_quả [ ] [ELSE kết_quả_của_else] END hoặc: CASE 43 ... sinhvien(masv,hodem,ten,gioitinh,malop) VALUES(‘ 024 1 020 008’,‘Nguyễn Cơng’,’Chính’,1,’C241 02? ??) câu lệnh cịn viết sau: INSERT INTO sinhvien VALUES(‘ 024 1 020 008’,‘Nguyễn Cơng’,’Chính’, NULL,1,NULL,’C241 02? ??) Bổ sung nhiều dòng... có tuổi nằm khoảng từ 20 đến 22 SELECT hodem,ten,year(getdate())-year(ngaysinh) AS tuoi FROM sinhvien WHERE ten=''Bình'' AND YEAR(GETDATE())-YEAR(ngaysinh) BETWEEN 20 AND 22  Danh sách (IN NOT... giá trị Sau IN (hoặc NOT IN) danh sách giá trị câu lệnh SELECT khác Ví dụ: Để biết danh sách mơn học có số đơn vị học trình 2, 5, thay sử dụng câu lệnh SELECT * FROM monhoc 49 WHERE sodvht =2 OR

Ngày đăng: 11/11/2021, 16:31

HÌNH ẢNH LIÊN QUAN

Điều kiện cập nhật dữ liệu liên quan đến nhiều bảng - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
i ều kiện cập nhật dữ liệu liên quan đến nhiều bảng (Trang 4)
Ví dụ: Giả sử ta có hai bảng MATHANG và NHATKYBANHANG như sau: - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
d ụ: Giả sử ta có hai bảng MATHANG và NHATKYBANHANG như sau: (Trang 4)
Trường trong các bảng, sử dụng ký tự * trong danh sách chọn thay vì phải liệt kê danh sách  tất cả các cột - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
r ường trong các bảng, sử dụng ký tự * trong danh sách chọn thay vì phải liệt kê danh sách tất cả các cột (Trang 8)
- Chọn tất cả các cột trong bảng - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
h ọn tất cả các cột trong bảng (Trang 8)
Lưu ý: Nếu truy vấn được thực hiện trên nhiều bảng/khung nhìn và trong các bảng/khung nhìn có các trường trùng tên thì tên của những trường này nếu xuất hiện  trong danh sách chọn phải được viết dưới dạng: tên_bảng.tên_trường   - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
u ý: Nếu truy vấn được thực hiện trên nhiều bảng/khung nhìn và trong các bảng/khung nhìn có các trường trùng tên thì tên của những trường này nếu xuất hiện trong danh sách chọn phải được viết dưới dạng: tên_bảng.tên_trường (Trang 9)
4.2. Chọn các dòng của bảng bằng mệnh đề WHERE - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
4.2. Chọn các dòng của bảng bằng mệnh đề WHERE (Trang 14)
4.2. Chọn các dòng của bảng bằng mệnh đề WHERE - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
4.2. Chọn các dòng của bảng bằng mệnh đề WHERE (Trang 14)
4.3. Truy vấn thông tin từ nhiều bảng - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
4.3. Truy vấn thông tin từ nhiều bảng (Trang 18)
 Chọn ra dòng trong bảng KHOA có tên khoa là Khoa Công nghệ Thông tin, từ đó xác định được mã khoa (MAKHOA) là DHT02 - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
h ọn ra dòng trong bảng KHOA có tên khoa là Khoa Công nghệ Thông tin, từ đó xác định được mã khoa (MAKHOA) là DHT02 (Trang 19)
Bảng KHOA - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
ng KHOA (Trang 19)
 Những bảng nào có tham gia vào truy vấn. - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
h ững bảng nào có tham gia vào truy vấn (Trang 20)
Điều kiện nối giữa các bảng trong câu lệnh trên là điều kiện bằng giữa khoá ngoài  và   khoá chính của các bảng có  mối quan hệ với nhau - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
i ều kiện nối giữa các bảng trong câu lệnh trên là điều kiện bằng giữa khoá ngoài và khoá chính của các bảng có mối quan hệ với nhau (Trang 22)
Nếu thực hiện phép nối ngoài trái giữa bảng NHANVIEN và bảng DONVI: SELECT *    - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
u thực hiện phép nối ngoài trái giữa bảng NHANVIEN và bảng DONVI: SELECT * (Trang 25)
Ví dụ: Giả sử ta có hai bảng DONVI và NHANVIEN như sau: - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
d ụ: Giả sử ta có hai bảng DONVI và NHANVIEN như sau: (Trang 25)
Bảng DONVI  Bảng NHANVIEN - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
ng DONVI Bảng NHANVIEN (Trang 25)
Nếu trong các cột củacác bảng tham gia vào điều kiện của phép nối có các giá trị NULL thì các giá trị NULL được xem như là không bằng nhau - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
u trong các cột củacác bảng tham gia vào điều kiện của phép nối có các giá trị NULL thì các giá trị NULL được xem như là không bằng nhau (Trang 26)
Ví dụ: Giả sử ta có hai bảng TABLE1 và TABLE2 như sau: TABLE1  - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
d ụ: Giả sử ta có hai bảng TABLE1 và TABLE2 như sau: TABLE1 (Trang 26)
tên_bảng_1 [INNER] JOIN tên_bảng_2 ON điều_kiện_nối - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
t ên_bảng_1 [INNER] JOIN tên_bảng_2 ON điều_kiện_nối (Trang 27)
tên_bảng_1 LEFT|RIGHT|FULL [OUTER] JOIN tên_bảng_2   ON điều_kiện_nối  - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
t ên_bảng_1 LEFT|RIGHT|FULL [OUTER] JOIN tên_bảng_2 ON điều_kiện_nối (Trang 28)
Ví dụ: Giả sử ta có hai bảng DONVI, NHANVIEN dữ liệu như sau: - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
d ụ: Giả sử ta có hai bảng DONVI, NHANVIEN dữ liệu như sau: (Trang 28)
thực hiện phép nối ngoài phải giữa hai bảng NHANVIEN và DONVI, và có kết quả là:  - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
th ực hiện phép nối ngoài phải giữa hai bảng NHANVIEN và DONVI, và có kết quả là: (Trang 29)
Thực hiện phép nối trên nhiều bảng - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
h ực hiện phép nối trên nhiều bảng (Trang 30)
Các hàm gộp được sử dụng để tính giá trị thống kê cho toàn bảng hoặc trên mỗi nhóm dữ liệu - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
c hàm gộp được sử dụng để tính giá trị thống kê cho toàn bảng hoặc trên mỗi nhóm dữ liệu (Trang 31)
Các bảng trong cơ sở dữ liệu đóng vai trò là các đối tượng tổ chức và lưu trữ dữ liệu - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
c bảng trong cơ sở dữ liệu đóng vai trò là các đối tượng tổ chức và lưu trữ dữ liệu (Trang 39)
Hình 1: Khung nhìn DSSV với dữ liệu được lấy từ bảng SINHVIEN và LOP - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
Hình 1 Khung nhìn DSSV với dữ liệu được lấy từ bảng SINHVIEN và LOP (Trang 39)
vấn dữ liệu từ hai bảng SINHVIEN và LOP CREATE VIEW dssv  - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
v ấn dữ liệu từ hai bảng SINHVIEN và LOP CREATE VIEW dssv (Trang 41)
 Tên khung nhìn và tên cột trong khung nhìn, cũng giống như bảng, phải tuân theo qui tắc định danh  - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
n khung nhìn và tên cột trong khung nhìn, cũng giống như bảng, phải tuân theo qui tắc định danh (Trang 42)
Một bản ghi mới sẽ được bổ sung vào bảng NHANVIEN và dữ liệu trong bảng này sẽ là:   - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
t bản ghi mới sẽ được bổ sung vào bảng NHANVIEN và dữ liệu trong bảng này sẽ là: (Trang 44)
Bảng DONVI - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
ng DONVI (Trang 44)
Bảng NHANVIEN - Giáo trình Quản trị SQL Server: Phần 2 - CĐ Cơ điện Hà Nội
ng NHANVIEN (Trang 44)

TỪ KHÓA LIÊN QUAN