1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn học cơ sở dữ liệu đề tài trình bày nội dung thực hành hàng tuần

39 2 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

Nội dung

- ProductLines: Lưu trữ các danh mục dòng sản phẩm - Orders: Lưu trữ các đơn bán hàng do khách hàng đặt - OrderDetails: Lưu trữ các chi tiết của mỗi đơn hàng - Payments: Lưu trữ các khoả

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

Trang 2

2

Mục L c

Tuần 1: Thiết lập môi trường làm việc MySQL 4

Bài 1: Thiết lập được hệ quản trị cơ sở dữ liệu trên máy tính cá nhân 4

Bài 2: Tạo được một cơ sở dữ liệu mẫu để làm việc 4

Tuần 2: Thực hành truy vấn SQL 5

Bài 1: SELECT, ORDER BY, WHERE, SELECT DISTINCT 5

Bài 3: BETWEEN, LIKE, LIMIT 6

Bài 4: IS NULL, Table & Column Aliases 7

Bài 5: JOINS, INNER JOIN, LEFT JOIN, RIGHT JOIN, SELF JOIN,CROSS JOIN 9

Bài 6: GROUP BY, HAVING, ROLLUP 11

Bài 7: Subquery, Derived Tables, EXISTS 12

Bài 8: UNION, MINUS, INTERSECT 15

TUẦN 3: THỰC HÀNH TÌM HIỂU ĐƯỢC CẤU TRÚC MỘT CƠ SỞ DỮ LIỆU 17

Bài 1: Xây dựng lược đồ (Diagram) 17

Bài 2: Truy vấn các bảng hệ thống trong cơ sở dữ liệu 18

TUẦN 4: THỰC HÀNH XÂY DỰNG ĐƯỢC CẤU TRÚC CỦA MỘT CƠ SỞ DỮ LIỆU 19

Bài 1: Thiết lập bảng dữ liệu (PK, UK, DataType, Null, constraint) 19

Bài 2: Thiết lập quan hệ dữ liệu (Relationship) 19

Bài 3: Thiết lập khung nhìn (Views) 20

Bài 4: Thiết lập thủ tục và hàm (procedure & function) 20

TUẦN 5: THỰC HÀNH CÁC CÂU LỆNH THAO TÁC DỮ LIỆU (PHẦN MYSQL DATA MANIPULATION) 22

Bài 1: Thực hiện các câu lệnh cập nhật (insert,update, delete dữ liệu) 22

Bài 2: Cập nhật dữ liệu từ 1 bảng excel qua sinh tự động SQL Script 22

Bài 3: Cập nhật dữ liệu từ một bảng khác 24

Bài 4: Cập nhật dữ liệu qua một procedure 24

TUẦN 6: THỰC HÀNH CÁC CÂU LỆNH SỬ DỤNG HÀM TRONG TRUY VẤN 26

Bài 1: Aggregate Functions, Math Functions, Comparison Functions 26

Bài 2: Control Flow Functions and Expressions 27

Bài 3: Window Functions 28

Bài 4: Date Functions, String Functions 28

Bài 5: Đánh chỉ mục dữ liệu một bảng 29

TUẦN 7: THỰC HÀNH THIẾT KẾ CƠ SỞ DỮ LIỆU LƯU TRỮ ĐƠN HÀNG 31

Trang 3

3

Bài 1 + 2 : Xây dựng lược đồ R-E và E-R 31

Bài 3: Thiết kế trên hệ quản trị cơ sở dữ liệu 31

Bài 4: In diagram cơ sở dữ liệu 31

Bài 5: Viết câu lệnh thêm dữ liệu và bảng 32

Bài 6: Viết câu lệnh truy vấn Thay đổi cấu trúc CSDL 32

Bài 7: Thay đổi cấu trúc CSDL 33

TUẦN 8 34

TUẦN 9: THỰC HÀNH QUẢN TRỊ CƠ SỞ DỮ LIỆU 37

Bài 1: Start, Stop, and Restart MySQL Server 37

Bài 2: Users, Roles, and Privileges 37

Bài 3: Show commands 39

Bài 4: Backup and Restore 40

Bài 5: Database maintenance 40

TỔNG KẾT MÔN HỌC 41

Tài liệu tham khảo: 42

Trang 4

4

Tuần 1: Thiết lập môi trường làm việc MySQL

Bài 1: Thi t lế ập được hệ quản trị cơ sở ữ liệu trên máy tính cá nhân d

Em sử dụng hệ quản trị cơ sở dữ liệu MySQL

Bài 2: Tạo được một cơ sở dữ liệu mẫu để làm việc

Mô tả cơ sở dữ liệu:

Cơ sở dữ liệu mẫu được dùng ở đây được download ở: https://www.mysqltutorial.org/mysql-sample-database.aspx/ Cơ sở dữ liệu mẫu này có tên classicmodels Bao gồm các bảng sau:

- Customers: Lưu trữ dữ liệu của khách hàng - Products: Lưu trữ kích cỡ các xe mẫu

- ProductLines: Lưu trữ các danh mục dòng sản phẩm - Orders: Lưu trữ các đơn bán hàng do khách hàng đặt - OrderDetails: Lưu trữ các chi tiết của mỗi đơn hàng - Payments: Lưu trữ các khoản thanh toán

- Employees: Lưu trữ tất cả thông tin của nhân viên - Offices: Lưu trữ dữ liệu bán hàng

Input: Câu lệnh chọn bảng Customers.

Output: Bảng Customers từ cơ sở dữ liệu mẫu Classicmodels Mã nguồn:

USE classicmodels;

SELECT * FROM customers;

Giao diện kết quả:

Trang 5

5

Tuần 2: Th c hành truy v n SQL ựấ

Bài 1: SELECT, ORDER BY, WHERE, SELECT DISTINCT

- SELECT: Cho phép bạn chọn dữ liệu từ một hoặc nhiều bản - ORDER BY: Sắp xếp lại các kết quả tìm được

- WHERE: Thêm điều kiện tìm kiếm cho các kết quả được trả về - SELECT DISTINCT: Loại bỏ các kết quả trùng lặp

Input: Các câu lệnh sử dụng SELECT, ORDER BY, WHERE, SELECT DISTINCT Output: Từ cơ sở dữ liệu Classicmodels, chọn ra các kết quả không trùng lặp từ các

trường state, city, country trong bảng Customers với điều kiện state không để trống và sắp xếp theo state

Mã nguồn:

USE classicmdodels;

SELECTDISTINCT state, city, country, FROM customers;

WHEREstateIS NOT NULLORDERBYstate

Giao diện kết quả:

Bài 2: AND, OR, IN

Trang 6

6 AND: cho phép tồn tại nhiều điều kiện trong câu lệnh

OR: dùng để kết hợp nhiều điều kiện trong một câu lệnh

IN: Khai báo một tập hợp các giá trị, nếu dữ liệu cần tìm trùng khớp với giá trị khai báo thì hợp lệ

Input: câu lệnh có sử dụng AND, OR, IN

Output: Từ cơ sở dữ liệu Classicmodels, chọn ra các kết quả từ trường officeCode, city, phone, country, state có trong bảng Offices, với điều kiện Country là USA hoặc Japan và officeCode < 6

Mã nguồn:

USE classicmdodels;

SELECT officeCode, city, phone, country, state FROM offices,

WHERE country IN ('USA' OR 'JAPAN') AND officeCode < 6

Giao diện kết quả:

Bài 3: BETWEEN, LIKE, LIMIT

BETWEEN: Kiểm tra xem một giá trị có nằm trong phạm vi không LIKE: truy xuất dữ liệu dựa theo quy tắc tìm kiếm

LIMIT: hạn chế số lượng kết quả tìm được

Input: các câu lệnh chứa BETWEEN, LIKE, LIMIT.

Trang 7

7

Output: Từ cơ sở dữ liệu classicmodels, chọn ra các kết quả từ trường

customerNumber, customerName, creditLimit, postalCode trong bảng customers với điều kiện customerName và creditLimit trong khoảng từ 100000 đến 400000 Mã nguồn:

USE classicmdodels;

SELECT customerNumber, customerName, creditLimit,postalCode FROM customers,

WHERE customerName LIKE '%a%' AND (creditLimit BETWEEN 100000.00 AND 400000.00)

ORDERBY customerNumber LIMIT200

Giao diện kết quả:

Bài 4: IS NULL, Table & Column Aliases

IS NULL: Kiểm tra xem giá trị có phải NULL không ALIAS: Dùng để định danh tên mới cho cột hoặc bảng

Input: câu lệnh sử dụng IS NULL và ALIAS

Output: Từ cơ sở dữ liệu classicmodels, chọn ra các kết quả từ trường

contactFirstName, contactLastName, state từ bảng customers với điều kiện state khác NULL

Mã nguồn:

Trang 9

9

Bài 5: JOINS, INNER JOIN, LEFT JOIN, RIGHT JOIN, SELF JOIN,CROSS JOIN

INNER JOIN: Ghép hàng trong một bảng với mọi hàng trong bảng khác.LEFT JOIN: Chọn dữ liệu từ bảng trái ghép với mọi hàng trong bảng phải RIGHT JOIN: Chọn dữ liệu từ bảng phải ghép với mọi hàng trong bảng trái SELF JOIN: Dùng để nối một bảng với chính nó.

Input: Các câu lệnh chứa mệnh đề JOINMã nguồn:

USE classicmodels;

SELECT customerNumber, customerName, phone FROM customers

CROSSJOIN orderdetails

USE classicmodels;

SELECT orderNumber, orderDate, requiredDate, shippedDate FROM orders

INNERJOIN orderdetails USING (orderNumber)

INNERJOIN products USING (productCode)

ORDERBY orderNumber

USE classicmodels;

SELECT customerNumber, customerName, phone FROM customers

LEFT JOIN orders USING (customerNumber);

Trang 10

10

ORDERBY salesRepEmployeeNumber Giao diện kết quả:

Trang 11

11

Bài 6: GROUP BY, HAVING, ROLLUP

- Group By: Hợp các câu lệnh để sắp xếp dữ liệu giống nhau thành một nhóm - Having: Chỉ định điều kiện lọc mà kết quả nhóm xuất hiện trong kết quả

Mã nguồn: USE classicmodels;

SELECT city, COUNT(customerName) AS total_customers FROM customers

GROUPBY city

ORDERBY city

Trang 12

12

USE classicmodels;

SELECT city, COUNT(customerName) AS total_customers FROM customers

GROUPBY city WITHROLLUPHAVINGcount(customerName) >=3

Giao diện kết quả:

Bài 7: Subquery, Derived Tables, EXISTS

- Subquery: truy vấn lồng vào bên trong mệnh đề Where

Trang 13

13

- Derived Tables: Bảng được trả về từ câu lệnh Select - Exists: Kiểm tra sự tồn tại

Mã nguồn: USE classicmodels;

SELECT customerNumber, customerName, creditLimit, (CASE

WHEN creditLimit < 10000THEN 'Bronze'

WHEN creditLimit BETWEEN 10000 AND100000THEN 'Silver' WHEN creditLimit > 100000THEN 'Gold'

SELECT customerNumber, checkNumber, amount FROM payments

WHERE amount =(SELECTMAX (amount) FROM payments) Giao diện kết quả:

Trang 14

14

Trang 15

18

Bài 2: Truy v n các b ng h thấảệống trong cơ sở dữ liệu a) Tên các bảng

Mã nguồn:

USE classicmodels;

SELECTTABLE_NAMEFROM information_schema.tables

WHERE table_schema = 'classicmodels' ORDERBY TABLE_NAME

Giao diện kết quả:

b) Tên các cột của một bảng và tính chất các cột đó Mã nguồn:

SELECT *FROM information_schema.columns

WHERE table_schema = 'classicmodels'

ORDERBYTABLE_NAME, ordinal_position

Giao diện kết quả:

Trang 16

19

MỘT CƠ SỞ DỮ LIỆU

Bài 1: Thi t l p bế ậảng d li u (PK, UK, DataType, Null, constraint) ữ ệ

Bài 2: Thi t l p quan h d li u (Relationship) ế ậệ ữ ệ

Mã nguồn:

CREATEDATABASE BaiTuan4;

CREATETABLE BaiTuan4.Persons (personID int NOTNULL, name VARCHAR(255) NOT NULL, age , address int VARCHAR(255) NOTNULL, city VARCHAR(255), city VARCHAR(255), CONSTRAINT uc_name_address UNIQUE (name, address),

PRIMARYKEY (personID));

CREATETABLE BaiTuan4.Orders (orderID intNOT NULL, OrderNumber intNOT

NULL, PersonID intNOT NULL, PRIMARYKEY (orderID), FOREIGNKEY (personID) REFERENCES Persons (PersonID));

INSERTINTO BaiTuan4.Persons (personID, name, age, address, city)

VALUES ('101','Hoang','19','Cau Giay','Ha Noi'), ('102','Quang','21','Tay Ho','Ha Noi'), ('103','Huy','17','Tu liem','Ha Noi'), ('104','Mai','19','Cau Giay' 'Ha Noi'), , ('105','Nhat' '19',, 'Hoan Kiem' 'Ha Noi'); ,

SELECT *FROM BaiTuan4.Persons ORDERBY personID

Giao diện kết quả:

Trang 17

20

Bài 3: Thi t l p khung nhìn (Views) ế ậ

Mã nguồn:

CREATEVIEW members AS

SELECT CONCAT(name, , age) ',' AS 'profile', CONCAT(address, , city) ',' AS 'location'

FROM baituan4.persons;

SELECT *FROM members

Giao diện kết quả:

Bài 4: Thi t l p thế ậủ ụ t c và hàm (procedure & function) Mã nguồn:

Trang 19

22

Bài 1: Th c hi n các câu l nh c p nh t (insert,update, delete d li u) ựệệậậữ ệ

Mã nguồn:

INSERTINTO huy.order (orderID, orderNumber)

VALUES ( , '3' '10');

UPDATE huy.orderSET orderNumber = 3 WHERE orderID = 3

DELETEFROM huy.orders

Giao diện kết quả:

Bài 2: C p nh t dậậữ li u t 1 bệừảng excel qua sinh t ng SQL Script ự độ

Mã nguồn:

USE huy;

DELETEFROM huy.order;

INSERTINTO huy.order (orderId, orderNumber, personId)

Trang 20

23

INSERTINTO huy.order (orderId, orderNumber, personId)

VALUES ('5','555' '567', );

UPDATE huy.order

SET personID = 1 WHERE orderid = 1

UPDATE huy.orderSET personID = 2 WHERE orderid = 2;

UPDATE huy.orderSET personID = 3 WHERE orderid = 3;

UPDATE huy.orderSET personID = 4 WHERE orderid = 4;

UPDATE huy.orderSET personID = 5

WHERE orderid = 5

Giao diện kết quả:

Trang 21

INNERJOIN orderdetails ON orders.ordernumber = orderdetails.ordernumber

SET status ='sale';

Giao diện kết quả:

Bài 4: C p nh t dậậữ li u qua m t procedure ệộ

INSERTINTO huy.order (orderid, ordernumber, personid)

VALUES (orderid, ordernumber, personid); END //

DELIMITER ;

CALL insertid_ ('11' '11' '111', , );

SELECT *FROM huy.order

Giao diện kết quả:

Trang 22

25

Trang 25

CREATETABLE scores(name VARCHAR(20) PRIMARYKEY score INTNOTNULL);

INSERTINTO score(name, score)

VALUES ('Smith',81), ('Jones',55), ('Williams',55),('Taylor',62),('Brown', 62), ('Davies', ), ('Evans', ), ('Wilson', ); 84 87 72

Bài 4: Date Functions, String Functions

USE classicmodels;

Trang 27

30

EXPLAINSELECT employeeNumber, lastName, firstName FROM employees

WHERE jobTitle = 'Sales Rep';

SHOW INDEXES FROM employees;

Trang 28

31

ĐƠN HÀNG

Bài 1 + 2 : Xây dựng lược đồ R-E và E-R

Bài 3: Thi t k trên h qu n trếếệảị cơ sở ữ li u d

Bài 4: In diagram cơ sở dữ liệu

Trang 29

32

Bài 5: Vi t câu l nh thêm d li u và b ng ếệữ ệả

Bài 6: Vi t câu l nh truy vếệấn Thay đổi c u trúc CSDL

Trang 31

34

TUẦN 8 Đề bài:

Bài 1:

a) D → EG ➔ AD → EG và G → B ➔ EG → B ➔ AD BAD → B ➔ AD → AB và AB → C ➔ AB → BC ➔ AD → BC b) {A}+ = {A, B, C, D, E, G}

c) Phân rã các phụ thuộc hàm có nhiều thuộc tính

F1 = {AB → C, AC → D, D → E, D → G, G → B, A → D, CG → A}

Trang 32

35 Loại các thuộc tính dư thừa

AB → C loại B

F2 = { A → C, AC → D, D → E, D → G, G → B, A → D, CG → A} AC → D loại C

F3= { A → C, A → D, D → E, D → G, G → B, A → D, CG → A} CG → A loại G

F4= { A → C, A → D, D → E, D → G, G → B, C → A} Một phủ tối thiếu của F là F4

Bài 2:

a) AB → G, G → H ➔ AB → H

GH → A, A → C và G → H ➔ GH → H ➔ GH → C b) {G}+ = {A, C, G, H}

Bài 3:

a) I → M ➔ HI → HM mà HN → G ➔ HI → G GH → L, L -> K ➔ GH → GK

GK → I, I → M ➔ GK → M

GH → M và GH → L ➔ GH → KM b) {G,H}+ = { G, H, L, K, I, M}

Loại các thuộc tính dư thừa, HM → G loại được M vì

{ }H + = {H, G, L, K, I, M} có F1 = {GH → L, I → M, L → K, H G, GK → → I, H → L}

Loại bỏ các thuộc tính dư thừa, bỏ được GH → L

F chứa tối thiểu Một phủ tối thiểu của F là {I → M, L → K, H → G, GK → I, H → L}

Bài 4:

a) Tập nguồn {H} Tập trung gian {I, K, N} Một khóa tối thiểu là {H, I} b) Ta có bảng:

Trang 33

{BG}+= BDEGHAC ➔ {B.G} là khóa tối thiểu của quan hệ R{BH}+= BHDE

Trang 34

37

Bài 1: Start, Stop, and Restart MySQL Server

- Start:

- Stop & Restart:

Bài 2: Users, Roles, and Privileges

- Create User:

Trang 35

38

- Grant Privileges:

- Manage Roles:

Trang 36

39

Bài 3: Show commands

- Show Databases and Tables:

- Show Columns:

Trang 37

40

Bài 4: Backup and Restore

Bài 5: Database maintenance

Trang 38

41

Trong môn học này, ngoài nh ng ki n thữ ế ức đã được thầy gi ng d y trong ti t hả ạ ế ọc thì những bài th c hành hàng tu n thự ầ ầy giao cũng giúp em biết thêm r t nhi u v h c ấ ề ề ọphần Cơ sở dữ liệu này

- Thực hành các câu lệnh s d ng hàm trong truy vử ụ ấn

- Thiết k ế cơ sở ữ ệu lưu trữ d li

- Luyện t p v ph thu c hàm trong h qu n trậ ề ụ ộ ệ ả ị cơ sở ữ ệu d li- Quản trị cơ sở ữ ệ d liu.

Trang 39

42

Tài li u tham kh o: ệả

1) https://www.mysqltutorial.org/ 2) https://viettus.vn/sql 3) https://w3schools.com

4) Slide bài gi ng th y Nguy n Danh Tú ả ầ ễ

Ngày đăng: 29/05/2024, 17:54

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w