1. Trang chủ
  2. » Thể loại khác

BÀI TẬP THỰC HÀNH ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: CƠ SỞ DỮ LIỆU

37 82 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 37
Dung lượng 819,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

3 Bài 16: Thực hành về câu lệnh CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE Mục tiêu: Học xong bài học, người học có khả năng: - Vận dụng thành thạo các câu lệnh CREATE DAT

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: CƠ SỞ DỮ LIỆU

Trình độ đào tạo

Hệ đào tạo

: :

Đại học

Chính quy

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP THỰC HÀNH HỌC PHẦN: CƠ SỞ DỮ LIỆU

Trình độ đào tạo

Hệ đào tạo Chuyên ngành

: : :

Đại học Chính quy

Kỹ thuật Phần mềm

Lưu hành nội bộ

Trang 2

1

MỤC LỤC

Bài 16: Thực hành về câu lệnh CREATE DATABASE/ TABLE, ALTER TABLE, DROP TABLE 3

16.1 Nhắc lại lý thuyết 5

16.2 Bài tập làm mẫu 7

16.3 Bài tập thực hành 10

Bài 17: Thực hành về RBTV 11

17.1 Nhắc lại lý thuyết 11

17.2 Bài tập làm mẫu 11

17.3 Bài tập thực hành 14

Bài 18: Thực hành về cập nhật dữ liệu 15

18.1 Nhắc lại lý thuyết 15

18.2 Bài tập mẫu 16

18.3 Bài tập thực hành 18

Bài 19: Thực hành truy vấn cơ bản 19

19.1 Nhắc lại lý thuyết 19

19.2 Bài tập mẫu 21

19.3 Bài tập thực hành 22

Bài 20: Thực hành truy vấn lồng và các phép toán tập hợp 23

20.1 Nhắc lại lý thuyết 23

20.2 Bài Tập mẫu 26

20.3 Bài tập thực hành 27

Bài 21: Thực hành hàm kết hợp và gom nhóm 28

21.1 Nhắc lại lý thuyết 28

21.2 Bài tập mẫu 30

21.3 Bài tập thực hành 32

Bài 22: Thực hành một số dạng truy vấn khác 33

22.1 Nhắc lại lý thuyết 33

22.2 Bài tập mẫu 34

22.3 Bài tập thực hành 34

Bài 23: Kiểm tra thực hành 36

Trang 3

2

Trang 4

3

Bài 16: Thực hành về câu lệnh CREATE DATABASE, CREATE TABLE,

ALTER TABLE, DROP TABLE

Mục tiêu: Học xong bài học, người học có khả năng:

- Vận dụng thành thạo các câu lệnh CREATE DATABASE, create table để tạo một cơ sở dữ liệu và tạo các bảng

- Sử dụng thành thạo các câu lệnh alter table, drop table để sửa, xoá các bảng trong CSDL

- Áp dụng kiến thức đã học vào trong tình huống thực tế

CHO CSDL QLMUONSACH GỒM CÁC BẢNG SAU

1 LinhVuc: Thông tin về các lĩnh vực sách

Tên trường Kiểu dữ liệu Mô tả Độ rộng

tenLV Nvarchar Tên lĩnh vực 50

2 NXB: Thông tin về nhà xuất bản

Tên trường Kiểu dữ liệu Mô tả Độ rộng

tenNXB Nvarchar Tên nhà xuất bản 50

diaChi Nvarchar Địa chỉ nhà xuất bản 50

3 TacGia: Thông tin về tác giả

Tên trường Kiểu dữ liệu Mô tả Độ rộng

diaChi Nvarchar Địa chỉ của tác giả 50

dienThoai char Điện thoại của tác giả 10

4.Bảng DauSach: Lưu trữ thông tin của các đầu sách có trong thư viện

Tên trường Kiểu dữ liệu Mô tả Độ rộng

Trang 5

4

ngayNhap DateTime Ngày nhập

5 Sach: Thông tin về sách

Tên trường Kiểu dữ liệu Mô tả Độ rộng

tinhTrang Nvarchar Tình trạng sách 10

6 Bảng DocGia: lưu trữ thông tin về độc gia

Tên trường Kiểu dữ liệu Mô tả Độ rộng

ngaySinh DateTime ngày sinh

7 PhieuMuon: thông tin về phiếu mượn

Tên trường Kiểu dữ liệu Mô tả Độ rộng

Sophieu char Mã phiếu mượn 10

Sothe char Mã thẻ thư viện 10

ngayMuon DateTime Ngày mượn sách

ngayTra DateTime Ngày trả sách Ràng buộc: ngày trả phải sau hoặc

bằng ngày mượn..(Ràng buộc này phải khai báo mức bảng)

Trang 6

Hoặc:

Tạo 1 CSDL có tên Sales ở thư mục Thu trong ổ D với 2 tệp dữ liệu và nhật ký là

saledat.mdf, salelog.ldf như sau:

Trang 7

6

- Bảng là một cấu trúc để cất giữ các bộ của quan hệ.Có khuôn dạng hai chiều gồm có các cột và hàng Nó là yếu tố cơ bản cho các thao tác khác nhau Có thể nói việc tạo bảng là bước đầu tiên quan trọng nhất để thiết lập CSDL

-Cú pháp của lệnh này:

CREATE TABLE table_name (colom_name type (size) )

Khi tạo ra bảng chúng ta phải chỉ ra kiểu dữ liệu của cột và mỗi cột chỉ có thể có môt kiểu dữ liệu duy nhất Khi tạo bảng ta có thể đưa ra các ràng buộc

Các ràng buộc của các trường có thể là: primary key, foreign key, unique, not null

VD: Tạo bảng nhân viên

CREATE TABLE NHAN_VIEN (maNV char(11) constraint p _ NV Primary key, hoten Varchar(25), Ngaysinh datetime, chucvu varchar(20), diachi varchar(30), luong float);

trong VD trên ta tạo ra một ràng buộc là p_NV được định nghĩa là khóa chính

Ta cũng có thể tạo ra bảng mới với cấu trúc và dữ liệu từ 1 bảng khác

Cú pháp:

SELECT <ds cột> into <tên bảng mới>

FROM <Tên bảng>

[WHERE <điều kiện>]

Với cấu trúc này, bảng tạo ra có cấu trúc và dữ liệu, tuy nhiên bảng mới không có ràng buộc khóa chính

VD: Tạo ra 1 bảng mới có tên là NVN (maNV, Hoten) từ bảng NHAN_VIEN SELECT maNv, hoten into NVN FROM NHAN_VIEN;

Trang 8

7

+ ADD: thêm cột mới, hoặc ràng buộc

+ ALTER: sửa đổi kiểu dữ liệu của cột

+ DROP: xoá bỏ các ràng buộc, cột

VD1: Thêm cột giadinh kiểu char (1) vào bảng R1

ALTER TABLE R1 ADD giadinh char (1)

VD2: Thay đổi kiểu dữ liệu của cột diachi nvarchar (30) trong R1 thành diachi Nvarchar(20): ALTER TABLE R1 ALTER COLUMN diachi Nvarchar (20)

VD3: Xóa cột diachi khỏi bảng R1

ALTER TABLE R1 Drop COLUMN diachi

VD4: Xóa bỏ ràng buộc trường khoá tại cột Manv trong R1

ALTER TABLE R1 DROP constraint NV_prim

Trong đó, NV_prim là tên ràng buộc khóa chính của bảng R1

Lưu ý: Khi xóa một cột của một bảng nào đó đang có ràng buộc thì phải xóa ràng buộc trước

1 Sử dụng câu lệnh SQL tạo bảng NXB trong CSDL QLMUONSACH

- Ta nhận thấy với bảng NXB, trường maNXB chính là khóa chính của bảng, các trường tenNXB, diaChi ta yêu cầu không được trống, trường dienThoai có thể trống

- Để tạo bảng ta sử dụng câu lệnh create table

- Để tạo khóa chính của bảng ta sử dụng ràng buộc primary key

Thực thi các câu lệnh này trong hệ quản trị CSDL access hoặc hệ quản trị CSDL SQL server Cài đặt hệ quản trị 2000 trở lên Sau đây là cửa sổ soạn thảo và thực thi các câu lệnh SQL trong

Trang 9

8

môi trường là hệ quản trị SQL Server 2008 trở lên:

Click vào 1, sẽ mở ra cửa sổ 2, cửa sổ này cho phép soạn thảo bất kỳ một câu lệnh nào của ngôn ngữ SQL, database đang được mở hiện thị ở 3

3

2

Trang 10

Hoặc có thể tạo CSDL QLTV trong một thư mục có sẵn giống với CSDL ví dụ có

saledat.mdf, salelog.ldf trong thư mục “D:\thu” như trên.

Để tạo bảng NXB ta sử dụng câu lệnh sau đây:

CREATE TABLE NXB

(

maNXB char(10) primary key,

tenNXB varchar(50) not null,

diaChi varchar(50) not null,

dienThoai varchar(10) null )

Sau khi thực thi câu lệnh này, bảng NXB sẽ được tạo ra trong CSDL có tên QLTV, và hệ thống

sẽ tạo ra cho bảng 1 ràng buộc khóa chính với một tên do hệ thống quy định Muốn đặt tên ràng

buộc cho khóa chính (tên ràng buộc là P_NXB), câu lệnh trên sẽ được viết lại như sau:

CREATE TABLE NXB

(maNXB char(10) constraint p_NXB primary key,

tenNXB varchar(50) not null,

diaChi varchar(50) not null,

dienThoai varchar(10) null )

Lưu ý: Có thể tạo một cấu trúc bảng chưa có khóa chính sau đó dùng câu lệnh thêm ràng buộc

để tạo khóa chính Tuy nhiêu, những cột ý định tham gia vào khóa chính không được phép rỗng

Trang 11

10

(phải là không rỗng - not null)

- Để xem cấu trúc bảng NXB vừa tạo ra, ta dùng câu lệnh sau:

Exec sp_help nxb

Để xem thông tin về các ràng buộc của bảng nxb

Exec sp_helpconstraint nxb

2 Sử dụng câu lệnh SQL sửa đổi độ rộng của trường tenNXB có độ rộng 40 ký tự

Alter table NXB alter column tenNXB varchar (40) not null

3 Sử dụng câu lệnh SQL xóa bảng NXB

- Để xóa bảng ta sử dụng câu lệnh drop như sau:

Drop table NXB

16.3 Bài tập thực hành

Anh/Chị hãy dùng các câu lệnh SQL thực hiện các yêu cầu sau:

1 Tạo cơ sở dữ liệu Quản lý sách thư viện với tên QLTV_hotensv ở trên

2 Tạo các bảng trong CSDL QLTV_hotensv (các ràng buộc khóa chính, khóa ngoại)

3 Thêm cột idSach vào bảng Sach

4 Thêm bảng nhapSach (gồm các trường maPhieuNhap, maDS, ngayNhap, soLuong, đơn giá) vào CSDL trên

5 Xóa các trường ngayNhap, soLuong của bảng NhapSach

6 Thay đổi kiểu dữ liệu của cột Đơn giá trong bảng NhapSach thành FLOAT

7 Xóa các bảng trong CSDL vừa tạo

8 Xóa CSDL đã tạo ra

9 Tạo lại các cấu trúc bảng và thiết lập các ràng buộc khóa chính, khóa ngoại

Chú ý: Sinh viên làm các bài tập thực hành ở trên, cuối buổi thực hành nộp lại bài làm cho giáo viên

Trang 12

11

Bài 17: Thực hành về RBTV

Mục tiêu: Học xong bài học, người học có khả năng:

- Thành thạo việc sử dụng các ràng buộc khi thiết kế CSDL trong các tình huống cụ thể

CREATE TABLE NHANVIEN

( HONV VARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,

TENLOT VARCHAR(20) NOT NULL,

TENNV VARCHAR(10) NOT NULL,

MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,

 Muốn xem thông tin về các ràng buộc trong bảng, ta dùng câu lệnh sau:

Exec sp_helpconstraint NHANVIEN

Ràng buộc toàn vẹn tạo ra khi ta tạo ra các cấu trúc bảng hoặc sau khi tạo ra cấu trúc

Trang 13

với các này, hệ thống sẽ quy định tên của ràng buộc

hoặc ta có thể viết theo cách khác như sau:

Cách 1:

CREATE TABLE NXB

(

maNXB char(10) constraint p_NXB primary key, tenNXB varchar(50), diaChi

varchar(50), dienThoai varchar(10))

Cách 2:

CREATE TABLE NXB

(

maNXB char(10) , tenNXB varchar(50), diaChi archar(50), dienThoai varchar(10),

constraint p_NXB primary key(MaNXB) )

với 2 cách này, ta tự đặt tên cho ràng buộc khóa chính là p_NXB

- Cách 1, chỉ phù hợp với trường hợp ràng buộc khóa chính có 1 cột còn cách 2 thì có thể áp dùng cho mọi trường hợp (số lượng cột tham gia ràng buộc >=1)

 Câu lệnh thêm ràng buộc:

ALTER TABLE <Tên_bảng> ADD

CONSTRAINT <Ten_RBTV1> <LOẠI RBTV>, CONSTRAINT <Ten_RBTV2> <LOẠI RBTV>,

Câu lệnh này sử dụng khi đã tạo xong cấu trúc bảng (bảng chưa có dữ liệu)

Ví dụ 1: Thêm ràng buộc check có tên c_GIOITINH trên cột GIOITINH của bảng

Trang 14

13

Ví dụ 1:

- Tạo bảng PHONGBAN:

CREATE TABLE PhongBan

(maphong char(10) NOT NULL, tenphong varchar(50), diadiem varchar(50))

- Thêm ràng buộc khóa chính trên cột maphong:

ALTER TABLE PHONGBAN ADD CONSTRAINT P_PHONG primary key (maphong)

Lưu ý: Cột tham gia vào ràng buộc khóa chính phải NOT NULL

- Thêm cột maphong char(10) vào bảng NHANVIEN:

ALTER TABLE NHANVIEN ADD maphong char(10)

- Thêm ràng buộc khóa ngoại của bảng NHANVIEN và ràng buộc tham chiếu đến bảng PHONGBAN thông qua cột Maphong:

ALTER TABLE NHANVIEN ADD f_NV FOREIGN key (maphong) REFERENCES

PHONGBAN(maPhong) ON DELETE CASCADE ON UPDATE CASCADE

Ví dụ 2: Ràng buộc khóa chính gồm nhiều thuộc tính:

CREATE TABLE ThamgiaDT (masv CHAR(10), madt CHAR(10) , NTT

NVARCHAR(25),

kqtt FLOAT CONSTRAINT c_kqtt CHECK(kqtt>0 AND kqtt<=10),

CONSTRAINT p_tt PRIMARY key (masv, madt),

CONSTRAINT f1_tt FOREIGN key (masv) REFERENCES sv (masv) ON DELETE

CASCADE ON UPDATE CASCADE ,

CONSTRAINT f2_tt FOREIGN key (madt) REFERENCES dt (madt) ON DELETE

CASCADE ON UPDATE CASCADE)

 Câu lệnh xóa ràng buộc:

ALTER TABLE <Tên_bảng> DROP CONSTRAINT <Tên_RBTV>

Ví dụ:

- Xóa ràng buộc khóa chính trên cột Maphong của bảng PHONGBAN (Điều kiện: bảng PHONGBAN không có bảng nào tham chiếu đến)

ALTER TABLE PHONGBAN DROP CONSTRAINT P_PHONG

- Xóa ràng buộc Check trên cột Gioitinh của bảng NHANVIEN:

ALTER TABLE NHANVIEN DROP CONSTRAINT C_GIOITINH

Trang 15

3 Tạo ràng buộc trên cột ngayNhap sao cho cột này nhận giá trị mặc định là ngày hiện tại

(hàm Getdate() lấy ngày hiện hành) d_nn

4 Xóa hết ràng buộc tại các cột trong các bảng trong CSDL QLTV (Đối với ràng buộc khóa chính và khóa ngoại, ta phải xóa ràng buộc trên bảng tham chiếu trước, bảng

bị tham chiếu sau)

5 Tạo lại các ràng buộc khóa chính, khóa ngoại và các ràng buộc khác trên các bảng

trong CSDL QLTV (bằng cách thêm các ràng buộc vào các cấu trúc bảng đã tồn tại)

6 Kiểm tra lại tất cả các cột, các ràng buộc trên các bảng trong CSDL để thay đổi cho phù hợp với thực tế

Chú ý: Sinh viên làm các bài tập thực hành ở trên, cuối buổi thực hành nộp lại bài làm cho giáo viên

Trang 16

15

Bài 18: Thực hành về cập nhật dữ liệu

Mục tiêu: Học xong bài học, người học có khả năng:

- Vận dụng thành thạo các câu lệnh cập nhật dữ liệu để giải quyết các bài tập trong phần bài tập thực hành

- Áp dụng kiến thức đã học vào trong tình huống thực tế

18.1 Nhắc lại lý thuyết

Câu lệnh INSERT INTO được dùng để chèn dòng mới vào bảng

Cú pháp:

- Chèn 1 bản ghi vào bảng:

cột/trường nào cần chèn dữ liệu:

- Chèn nhiều bản ghi vào bảng từ một bảng khác:

INSERT INTO <Tên bảng>

SELECT Clause

Câu lệnh UPDATE được sử dụng để cập nhật/sửa đổi dữ liệu đã có trong bảng

Cú pháp:

SET tên_cột = giá_trị_mới

Câu lệnh DELETE được dùng để xoá tất cả các dòng hoặc tất cả các dòng ra khỏi bảng

Cú pháp:

Xóa những bản ghi thỏa mãn điều kiện:

Xoá tất cả các dòng:

Đôi khi ta muốn xoá tất cả dữ liệu trong bảng nhưng vẫn giữ lại bảng cùng với cấu trúc và tất cả các thuộc tính của bảng, ta có thể dùng câu lệnh: DELETE FROM

table_name

Trang 17

Tg001 Tô Phương Lan Hà Nội 04 7892345

Tg002 Đỗ Xuân Lôi Đồng Nai 078 789223

NXB

Nxb01 Nhà xuất bản giáo dục Hà Nội 04 7892345

Nxb02 Nhà xuất bản đồng nai Đồng Nai 078 789223

Để thực hiện sửa đổi dữ liệu ta thực hiện các câu lệnh: INSERT INTO: Thêm một bộ

dữ liệu vào CSDL, việc nhập thành công khi các giá trị tại các cột (thuộc tính, trường) phải giống với danh sách các cột cả về số lượng và kiểu dữ liệu; sử dụng câu lệnh UPDATE: để thay đổi giá trị của một hoặc nhiều trường của một bảng nào đó; câu lệnh DELETE: để thực hiện xóa một hoặc nhiều bộ dữ liệu trong một bảng nào đó

- Với mỗi câu lệnh INSERT INTO thực hiện thêm được một bản ghi hoặc nhiều bản ghi cho mỗi lần thực hiện câu lệnh Để đơn dễ hiểu ta thực hiện trường hợp thêm 1 bản

Trang 18

- Nhập dữ liệu vào bảng Tacgia:

INSERT INTO Tacgia (MaTg, tenTG, diaChi, dienThoai)

VALUES („Tg001‟, „Tô Phương Lan‟, „Hà Nội‟, „04 7892345‟)

INSERT INTO Tacgia (MaTg, tenTG, diaChi, dienThoai)

VALUES („Tg002‟, „Đỗ Xuân Lôi‟, „Đồng Nai, „078 789223‟)

- Nhập dữ liệu vào bảng NXB:

INSERT INTO NXB (MaNXB, tenNXB, diaChi, dienThoai)

VALUES („Nxb01‟, „Nhà xuất bản giáo dục‟, „Hà Nội‟, „04 7892345‟)

INSERT INTO NXB (MaNXB, tenNXB, diaChi, dienThoai)

VALUES („Nxb02‟, „Nhà xuất bản đồng nai‟, „Đồng Nai‟, „078 789223‟)

- Nhập dữ liệu vào bảng Linhvuc:

INSERT INTO Linhvuc (maLV, tenLV)

VALUES („CNTT‟, „Công Nghệ Thông Tin‟)

- Nhập dữ liệu vào bảng Dausach:

INSERT INTO DauSach

VALUES („1010111‟, „Lý thuyết CSDL, 2007,‟ 12/09/2008‟,60, „CNTT‟, „Nxb01‟, Tg002‟);

INSERT INTO DauSach

VALUES („1011111‟, „Lập trình hướng đối tượng với C#‟, 2008,‟ 12/01/2009‟, 19 , „CNTT‟, „Nxb02‟, „Tg001‟);

Bản ghi thứ 3 không nhập được vào bảng DAUSACH do lỗi khóa ngoại (khóa ngoại maLV có giá trị TT chưa tồn tại trong bảng bị tham chiếu linhvuc)

2 delete FROM DauSach WHERE maDS like ‘%11’;

Trang 19

18

3 update DauSach Set maDS =’1010110’

WHERE maDS = ‘1010111’;

18.3 Bài tập thực hành

Viết các câu lệnh SQL thực hiện các yêu cầu sau:

1 Thêm các thông tin sau vào bảng TacGia (tối thiểu 10 bản ghi trong 1 bảng), Chẳng hạn:

Tg001 Tô Phương Lan Hà Nội 04 7892345

Tg002 Đỗ Xuân Lôi Đồng Nai 078 789223

Tg003 Phạm Ngọc Thách Hà Nội 04 3223049

Tg004 Nguyễn Văn Ba Hà Nội 04 2230498

2 Thêm các thông tin sau vào bảng NXB

Nxb01 Nhà xuất bản giáo dục Hà Nội 04 7892345

Nxb02 Nhà xuất bản đồng nai Đồng Nai 078 789223

Nxb03 Nhà xuất bản giao thông vận tải Hà Nội 04 3223049

Nxb04 Nhà xuất bản Kim Đồng Hà Nội 04 2230498

3 Thêm các thông tin sau vào bảng LinhVuc

Ngày đăng: 17/08/2021, 23:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w