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

Thực hành cơ sở dữ liệu

24 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Tiêu đề Thực Hành Cơ Sở Dữ Liệu
Trường học University Name
Chuyên ngành Database
Thể loại practical work
Năm xuất bản 2023
Thành phố City Name
Định dạng
Số trang 24
Dung lượng 3,11 MB

Nội dung

Thực hiện lệnh như sau: SELECT * FROM employee; Két qua hién thi: pees, LỔy vUQUANGVT9EAG10CVT126 +-BYHS >bữw-Mm3 33 AaGAR TT Nhận xét lệnh này thực hiện làm øi: Lénh SELECT dùng đ

Trang 2

Tạo một kết nối mới với tên HR(@<tên SV<_<MSSSV> - 2 21 2222122122122 e6 3

Lénh SELECT trong Oracle dung dé lay 6 1:07 6 Lệnh AS sẽ đặt tên mới cho đối ¡2 + 10

Lệnh rẻ nhánh CASE trone OracÌ€ - L0 12111211111 111 112112011101 11111011 11811182 rg 13 Lệnh INSERT thêm dữ liệu vào bang trong OracÌe c2 122222111211 11 25122 zxe2 15 Lệnh UPDATTE trong OracÌ€ - G2 2211121121 1121 112211011191 21111111 1011121111118 1 E811 deg 16 Lệnh DELETE trong OracÌe - c1 212211211121 11221 1211191 11111111 11111 11 8112111111 1H g 17 Truy van Ni ajJšEaddiaddiii.ỶẢÝÝỶẢ 18

Trang 3

1 Tạo một kết nối mới với tên HR@<tên SV<_<MSSSV>

THỰC HIỆN TRÊN ORACLE DEVELOPER

Bắm vào nút + xanh đương

Oracle NoSQL Connections

'<» Database Schema 5ervice Connections

Cửa số mới xuât hiện

=» New / Select Database Connection x

User Info Proxy User

Authentication Type

Connection Type

Hostname Port

Trang 4

Authentication Type |Defaut *'

Details Advanced

Hostname Pott

Bắm nút Test và cho kết quả thành công hay không? Nếu connect không thành công thì tiến hành sửa lỗi

Ghi lại các thông tin đăng nhập, cách thức sửa lỗi (nếu có) và kết quả đạt được:

8 New / Select Database Connection

Connection Name Connection Details

Trang 5

(~-([ij Materialized Views

(-[ Materialized View Logs

(2 (@ Analytic View Reports

Bam vao Tables (Filtered) va liét ké ra c6 bao nhiêu Table trong lược đồ CSDL có sẵn:

——- = Trong Tables (Filtered) có 7 Table co san trong , say Connections

&- a7 RS CSDL do la COUNTRIES, DEPARTMENTS,

EMPLOYEES, JOB_HISTORY, JOBS, LOCATIONS, LOCATION, REGIONS

Trang 6

Liệt kê các thuộc tính của từng quan hệ có trone mục ra Tables, ghi lai thudc tinh nao la

thuộc tính khóa chính và khóa ngoại:

COUNTRIES (COUNTRY_ID, COUNTRY_NAME, REGION)

Khoa chinh: COUNTRY_ID

Khóa ngoại: REGION tham chiếu đến REGION_ID trong bảng REGIONS

DEPARTMENTS (DEPARTMENT ID, DEPARTMENT NAME, MANAGER ID,

LOCATION_ID)

Khóa ngoại:

EMPLOYEES (EMPLOYEE _ID, FIRST NAME, LAST NAME, MAIL,

PHONE NUMBER, HIRE DATE, JOB_ID, SALARY, COMMISSION PCT,

Khóa chính: EMPLOYEE_ID

Khóa ngoại:

JOB_ID tham chiéu dén JOB_ID trong bang JOBS

MANAGER _ID tham chiéu dén EMPLOYEE ID (tu tham chiéu)

Trang 7

Khóa ngoại:

EMPLOYEE._ID tham chiếu đến EMPLOYEE_ID trong bảng EMPLOYEES

JOB_ID tham chiéu dén JOB_ID trong bang JOBS

DEPARTMENTS

JOBS (JOB_ID, JOB_TITLE, MIN SALARY, MAX SALARY)

Khóa chính: JOB_ID

Khóa ngoại: Không có

LOCATIONS (LOCATION_ID, STREET_ ADDRESS, POSTAL_ CODE, CITY,

SLATE PROVINCE, COUNTRY_ID)

Khóa chính: LOCATION_ID

Khóa ngoại: COUNTRY _ID tham chiếu đến COUNTRY _ID trong bảng COUNTRIES

REGIONS (REGION_ID, REGION_NAME)

Khóa chính: REGION_ID

Khóa ngoại: Không có

2 Lénh SELECT trong Oracle ding dé lay dir liéu

Thực hiện lệnh như sau:

SELECT *

FROM department;

Két qua hién thi:

Trang 8

Thực hiện lệnh như sau:

SELECT *

FROM employee;

Két qua hién thi:

pees, LỔy vUQUANGVT9EAG10CVT126 +-BYHS >bữw-Mm3 33 AaGAR

TT

Nhận xét lệnh này thực hiện làm øi:

Lénh SELECT dùng đề chọn các thuộc tính trong TABLE(iltered) s-ssezse:

WHERE last_name = 'KING

Nhận xét sau khi nhận kết quả thu được:

Trang 9

WHERE Lest_pae = "KLng'1

| * Ô> Quang Raswt +

# 8A sai

ÍÌ EMPLOVEE_D |() FIRST_NAME |) LAST_HMAME |Ý EMAN |Ý PHONE NUMBER _ |Ý HRRE_ĐATE |Ý 1O8_Đ Í SALARY Jp | BEPARTMEMT_Đ]

- ME DATE TEEN eepioyees ‘SARS ¢ a

A commmssion_pct

- Ñ MANAGER ID

UB DEPARTHENT_D

© W208 HISTORY

08D 3 BBD 50 | Alone Fatchad: 2 in 0.003 seconds

TH DePARTWENT_D () EMPLOYEE_D [[) FRST_NAME |) LAST_puwe|} Eman |} PHONE_NUMBER |} HIRE_DATE| 108 |/) SALARY|() COsmmassion PCT |) MANAGER_ID| CEPARTMENT_D

Trong Oracle, cơ sở đữ liệu phân biệt chữ hoa và chữ thường đối với chuỗi ký tự khi sử

dụng câu lệnh szr=cr Điều này có nghĩa là giá trị so sánh trong mệnh đề wiza= phải khớp

chính xác về chữ hoa và chữ thường với dữ liệu trong bảng để trả về kết quả

Giải thích cú pháp lénh SELECT

Trang 10

ø WHERE conditions: Đặt các điều kiện dé lọc dữ liệu, chỉ trả về các bản ghi thỏa mãn

các điều kiện đó Điều kiện có thể sử dụng các toán tử so sánh vả toán tử logic để kết hợp

nhiều điều kiện

ORDER BY salary DESC;

Két qua thu dugc la gi va rut ra kết luận:

Trang 11

« - Điều kiện lọc: Lệnh wirRz job id = 'IT PROG’ AND salary > 4500 giúp lọc ra những nhân viên có job_¡d là 'rr_»Roe' và có mức lương lớn hơn 45oo Điều nay

cho phép tìm kiếm chính xác những nhân viên đáp ứng cả hai điều kiện này ú

- - Sắp xếp kết quả: Từ khóa oabsR 8v salary D5SC giúp sắp xếp dữ liệu giảm dần

theo lương, do đó nhân viên có mức lương cao nhất sẽ năm ở đầu danh sách

3 Lệnh AS sẽ đặt tên mới cho đối tượng

Sử dụng AS để đổi tên cột của các kết quả truy vấn

Thực hiện lệnh sau:

SELECT EMPLOYEE_ID as manhanvien,

LAST_name as tennhanvien

FROM employees

Két qua thu dugc la gi va rut ra kết luận:

ÍÖ Grscle SQL Developer : VUQUANGVINH-N21DCVT12€ = 7 x

EB Prove saree DP BB 5a | Fetched 5010080 0.01 seconds

Kết luận & Lệnh AS được sử dụng để đặt tên khác (alias) cho các cột:

« _ emp ¡d được đối tên thành manhanvien

« emp name được đôi tên thành tennhanvien

Điều này ø1úp tiêu đề của các cột trong kết quả truy vân trở nên đề hiệu hơn, đặc biệt khi cân hiện thị cho người dùng cuôỗi hoặc trong các báo Cáo c1 c c2 SH re ưa

4 Các toán tử so sánh

11

Trang 12

IN() Kiểm tra có nằm trong danh sách

NOT Kiểm tra phủ định

BETWEEN _ | Kiém tra trong khoảng

IS NOT NULL | Kiểm tra không phải là gia tri NULL

LIKE So sánh gần giống, sử dụng % and _

REGEXP LIKE | 5o sánh sử dụng Regular Expression

EXISTS Kiểm tra sub query có trả về dữ liệu không, tối thiếu 1a 1 row

Viết lệnh truy vẫn SELECT

2500 và kết quả thu được:

Trang 13

¢ Lénhwxere salary > 2500 giới hạn kết quả chỉ còn những nhân viên có mức lương

cao hơn 2500

« _ Kết quả sẽ bao gồm toàn bộ thông tin của các nhân viên thỏa mãn điều kiện lương, giúp dễ dàng tìm kiếm nhân viên có thu nhập cao

trong khoảng từ 2000 đến 3000 và kết quả thu được:

SELECT *

FROM employees

WHERE salary BETWEEN 2000 AND 3000;

Kết luận:

* Lénh BETWEEN 2000 AND 3000 giúp dễ dàng lọc ra những nhân viên có lương

năm trong khoảng xác định

« - Kêt quả nảy cung cap toàn bộ thông tin cho các nhân viên thỏa mãn điều kiện ve mức lương, giúp quản lý nhanh chóng xác định những nhân viên trong khoảng lương yêu câu

Viết lệnh truy vấn SELECT lây danh sách nhân viên có ID là 7900, 7839, 7369 và

kết quả thu được:

Trang 14

‹« - Sử dụng ïN với các giá trị cu thé giúp dễ dàng truy xuất thông tin của một nhóm nhân viên có mã ID xác định

« - Kêt quả sẽ hiền thị toàn bộ thông tin về những nhân viên có ID nắm trone danh sách yêu câu

Viết lệnh truy vấn SELECT lây danh sách nhân viên có ngoại trừ nhân viên ở phòng

có mã phòng là 30 và kết quả thu được:

SELECT *

FROM employee

WHERE department_1d <> 305.00 ccceccccescesseeneesseensecnscessesseeesecsecenecsteetsessseestsaeeeneeeeas Kết luận:

° Toán tử <> (khác) được sử dụng để lọc các nhân viên không thuộc phòng có mã 30

« _ Kêt quả sẽ bao gôm tât cả thông tin về nhân viên trừ những người ở phòng 30

5 Lénh ré nhanh CASE trong Oracle

Thực hiện lệnh như sau:

SELECT EMPLOYEE_ID,LAST_NAME,JOB_ID,

CASE

WHEN SALARY > 800 AND SALARY < 1000 THEN 'LUONG THAP'

WHEN SALARY >= 1000 AND SALARY <= 2500 THEN 'TRUNG BINH'

WHEN SALARY > 2500 THEN 'LUONG CAO!

ELSE ‘khong ro'

END

FROM EMPLOYEES;

14

Trang 15

Nhận xét kết quả thu được:

ŠÖ Oracle SQL Developer : VUQUANGVINH-N21DCVT126

case

JOMEER

WHEN condition_1 THEN result_1

WHEN condition_2 THEN result_2

WHEN condition_n THEN result_n

condition cần phải là một biểu thức điều kiện trả về giá trị TRUE hoặc FALSE

* WHEN condition_n THEN result_n: condition_n la điều kiện sẽ được kiêm tra Nếu điều kiện này đúng, result_n sẽ được trả về Oracle sẽ dừng lại ở điều kiện đúng đầu tiên mà nó gặp

¢ ELSE result: ELSE là tùy chọn, quy định kết quả trả về nếu không có điều kiện nào trong các WHEN thỏa mãn Nếu không có ELSE và không có điều kiện nào đúng, Oracle sẽ trả vé NULL

15

Trang 16

¢ END: Danh dau két thúc của lệnh CASE

Cach hoat dong:

¢ Néucé [expression], Oracle sé so sanh [expression] voi cac condition trong từng

WHEN cho đến khi tìm được một điều kiện khớp

¢ Néu khéng co [expression], Oracle sẽ kiểm tra từng condition như một biểu thức điều kiện độc lập

6 Lệnh INSERT thêm dữ liệu vào bảng trong Oracle

Thực hiện lệnh sau:

INSERT INTO EMPLOYEE

(EMP_ID,EMP_NAME,EMP_NO,HIRE_DATE,JOB,SALARY,DEPT_ID)

VALUES

(0001,"Nguyen Van A','D19', '05-09-2019','Sinh vien', 200, 5);

Sau khi thực hiện, vào trang Tab Data của bảng EMPLOYEE, kết quả thu được là gi: INSERT INTO EMPLOYEES

(EMPLOYEE ID,FIRST NAME,LAST NAME,EMAIL,PHONE NUMBER,HIRE DAT E,JOB_ID,SALARY,DEPARTMENT ID)

VALUES

(99,'john','deep’,'ZINGGG’, '535.123.4567',13-JAN-01', 'AD_ VP’, 8586,70);

16

Trang 17

ŠÖ Oracte SQL Developer : Table HREMPLOVEES@VUQUANGVINH-N21DCV¥T126

(expression1, expression2, expression_n );

Giai thich cac thanh phan:

« INSERT INTO table: Xac dinh tén cua bang ma ban muốn thêm dữ liệu vảo Thay table bang tén bang cy thé

« - (columnl, column2, column_n): Danh sách các cột của bảng mà bạn muốn chèn

dữ liệu Bạn có thê chỉ định một hoặc nhiều cột (tối đa là tất cả các cột trong bảng)

Nếu chèn vào tất cả các cột, bạn có thê bỏ qua danh sách cột này, nhưng thứ tự của các giá trị trong VALUES phai tương ứng với các cột trong bảng

« VALUES: Tu khoa xac định các giá trị ban muốn chèn vào các cột đã chỉ định

« - (expressionl, expression2, expression_n): Danh sách các giá trị hoặc biểu thức tương ứng với từng cột đã liệt kê Các ø1á trị phải theo thứ tự của các cột trong danh sách trên và phù hợp với kiểu dữ liệu của từng cột

Trang 18

-Ổồ Nếu bạn không chỉ định tất cả các cột của bảng, các cột không được liệt kê sẽ nhận gia tri mac định của chúng (hoặc NULL nêu không có giá trị mặc định)

7, Lénh UPDATE trong Oracle

Thực hiện lệnh sau:

UPDATE EMPLOYEES

SET HIRE_DATE = '03-JAN-06'

WHERE EMPLOYEE_ID = 99;

Sau khi thực hiện, vào trang Tab Data của bảng EMPLOYEE, kết quả thu được là gi:

Từ đó, giải thích cú pháp lệnh UPDATE dùng để cập nhật dữ liệu trong một bảng theo một

điều kiện nảo đó:

Trang 19

Giai thich cac thanh phan:

UPDATE table_name: table_name là tên của bảng mà bạn muốn cập nhật dữ liệu Thay table_name bằng tên bảng cụ thể

SET column1 = expression1, column2 = expression2, column_n =

expression_n: SET xác định các cột mà bạn muốn cập nhật và gán ø1á trị mới cho chúng

o_ column]l, column2, ., column_n là tên các cột cần được cập nhật

o_ @xpressionl, expression2, ., expression_n là các giá trị hoặc biểu thức mới

mà bạn muốn gán cho từng cột tương ứng

o_ Bạn có thể cập nhật một hoặc nhiều cột trong bảng bằng cách liệt kê chúng và

sử dụng dấu phây đề phân tách

WHERE conditions: WHERE la diéu kién dé loc ra cdc hang ma ban muốn cập nhật

o conditions là biểu thức điều kiện (hoặc các biểu thức điều kiện kết hợp với các toán tử loeie như AND, OR) đề chỉ rõ các bản ghi cy thé can cap nhật

o Néu ban b6 qua WHERE, tat ca cac ban ghi trong bang sẽ được cập nhật với các ø1á trị mới trong SET

Quy tắc và lưu ý:

Cần phải chỉ định điều kiện WHERE cần thận đề tránh cập nhật toàn bộ dữ liệu

không mong muốn trong bảng

expression trong SET phải phù hợp với kiểu đữ liệu của các cột tương ứng

Bạn có thê sử dụng các biểu thức tính toán hoặc truy vấn phụ để tính giá trị cho cột trong SET

Hãy cập nhật tên nhân viên và mã sô nhân viên băng chính tên cua ban và mã sinh viên của bạn:

Trang 20

8 Lénh DELETE trong Oracle

Thực hiện lệnh

DELETE FROM EMPLOYEES

WHERE EMPLOYEE _ID='T';

Sau khi thực hiện, vào trang Tab Data của bảng EMPLOYEE, kết quả thu được là gi: Khi chạy câu lệnh nảy, bản phí với emp_¡d ='1' sẽ được xóa khỏi bảng EMPLOYEE nếu

Thực hiện lệnh:

DELETE FROM EMPLOYEE

WHERE FIRST_NAME = 'ADAMS'

AND SALARY < 1000;

Sau khi thực hiện, vào trang Tab Data của bảng EMPLOYEE, kết quả thu được là gi: Chạy câu lệnh này, các bản ghi trong bảng =Meroy== mà thỏa mãn cả hai điều kiện tên là ADAMS và có lương dưới 1000 sẽ bị xóa khỏi bang employees

Từ đó, giải thích cú pháp lệnh DELETE dùng để xóa dữ liệu:

DELETE FROM table_name

WHERE conditions;

Giải thích các thành phần:

20

Trang 21

¢ DELETE FROM table_name: table_name la tén cua bang ma bạn muốn xóa dữ liệu từ đó Cần thay table_name bằng tên bảng cụ thé

¢ WHERE conditions: WHERE la phan điều kiện lọc, xác định các hàng cụ thể mà bạn muốn xóa

o_ conditions là một biểu thức điều kiện (hoặc các biểu thức kết hợp với các

toán tử logic nh AND, OR) dé chỉ rõ bản ghi nào sẽ được xóa

o_ Chỉ những hàng thỏa mãn điều kiện mới bị xóa

Quy tắc và lưu ý:

* Quan trong: Néu khéng cé WHERE conditions, tat ca cac hang trong bang sé bị

xóa, vì lệnh DELETE sẽ áp dụng cho toàn bộ bảng

«Ö Lénh DELETE chỉ xóa dữ liệu trong bảng mà không xóa cau trúc của bảng

« - Quyền hạn: Đề xóa dữ liệu, người dùng cần có quyền thao tác với bảng

9, Truy vấn con (Subquery)

Lệnh SELECT trả về một bảng đữ liệu mới, bảng này sẽ không lưu vào hệ thống mà là một bang tam (local temporary) va sẽ tự giải phóng khi câu truy vấn kết thúc Ta có thê thực hiện một truy vấn trên bảng kết quả này

Tìm nhân viên có lương cao nhất bằng lệnh:

Ngày đăng: 26/12/2024, 17:14

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

TÀI LIỆU LIÊN QUAN