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

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

25 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 of Information Technology
Chuyên ngành Data Science
Thể loại Thực hành
Thành phố Ho Chi Minh City
Định dạng
Số trang 25
Dung lượng 1,82 MB

Nội dung

Nhận xét lệnh này thực hiện làm gì: - Céu truy van SOL "SELECT * FROM EMPLOYEES;" được sử dụng đề truy vấn tất ca cdc dong va tat cả các cột từ bảng có tên la "EMPLOYEES" Khi bạn chạy câ

Trang 1

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

Lệnh SELECT trong Oracle dùng đề lấy đữ liệu

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

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

MỤC LỤC

Trang 2

Ð

Lénh ré nhanh CASE trong Oracle

Lénh INSERT thém dtr ligu vao bang trong Oracle

Lénh UPDATE trong Oracle

Lénh DELETE trong Oracle

Truy van con (Subquery)

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

z+ New / Select Database Connection MS

Connection Name Connection Details || Name { | Ea Color

hr hr@jJlocalhost: 1

HR@CSDL hr@/flocalhost:1,,, | Database Type Oracle y

User Info Proxy User

Authentication Type

Username [ | Role |defaut x Password lai Save Password Details Advanced

Hostname Port

Trang 4

ConnectioNeme CcrmedieiDetais Neme [HR@QUANG_123 | E4 cao

tr r0/Jlecahnst: ì

H28CSDL lr@jecahost:: DetabaseType |Orace y'

User Info Proxy User

Authentication Type |Defaut ¥

Password [oe | )Save Password Comection Type pask — ~

Details Advanced

Hostname Pott f3) sID

) Sevice name status : Success

Heb Seve Clear Test Connect Cancel

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:

Kết quả test thành công và không bị lỗi

Thông tin đăng nhập: Name: HR(@THIEN N20DCV7T059

Username :hr

Password: hr

Hostname: localhost

Port: 1521

Trang 5

Bam nut Connect

z+ Oracle SQL Developer : hr~1

e- aes PHB- BE BB BGA!

3 ores ‘a Worksheet | Query Builder

‘Select, emp_name, emp_id

8 @ HR@QUANG_123 trom employee

# [EB Editions E\script output x D> Query Result x

= 1 ADAMS 7900

ỗ All Reports 3 JONES 7566

[8 ; Analytic View Reports 4 2

Reports x| fl

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

& Oracle SQL Developer -

a889w0 9-â &-

+-NTiio »i9-1A 08 8/8% Ñ I8anit Iơ00/m3 ~

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:

ưới đây là danh sách các thuộc tính của từng quan hệ và xác định thuộc tính khóa

Trang 7

Trong danh sach trén:

+ (PK): Đánh dấu thuộc tinh là khóa chính

‹ (FK): Đánh dấu thuộc tính là khóa ngoại

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

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

SELECT *

FROM department;

Trang 8

Két qua hién thi:

ElWEISSSESS a meron: Te LLL À U À U À À T U U À À UÀU ĐỐI

x & @ @& sai | All Rows Fetched: 27 in 0.016 seconds

13 130 Corporate Tax (nuit) 1700

14 140 Control And Credit (na11) 1700

15 150 Shareholder Services (na11) 1700 Ÿ

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

SELECT *

FROM employee;

Két qua hién thi:

EEE 8 nor coc - ey

17-JON-03 ADI 24000 (eu) 21-SED-05 AD_VD 17000 (sua) AS-UAN-O1 AD_VP 17000 tnu33) 03-JAN-C€ © TT_FROG 9000 {nu33) 22-MRY-G7 | IT_PROG 6009 (nual) 28-JUN-05 | IT_PROG 4800 (nul) S-FEE-OE TT FROG 4000 (nui) 07-YES~-97 TT FROS 4200 (nui) L7-AUG-02 FI_MGR 12008 (ull)

h FI_ACCOUNT 9000 {oud 28-SEP-Q6 - ¥I_ACCOUNT 2200 {nu33) 30-SEP-05 © FT_ACCOUNT 7700 {nu33) '-MLR-0E TT ACCOONT 7800 (u33) 91-DEC-Q1 EE ACCOUNT 6309 (mul) o7-pec-o2 EU NAM +a009 (u32)

Ineert Modlfeở| Windows: CF

Trang 9

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

- Céu truy van SOL "SELECT * FROM EMPLOYEES;" được sử dụng đề truy vấn tất

ca cdc dong va tat cả các cột từ bảng có tên la "EMPLOYEES"

Khi bạn chạy câu truy vấn này, kết quả sẽ trả về một bảng dữ liệu chứa thông tin vé moi nhân viên, bao gồm tất cả các cột trong bang "EMPLOYEES" Moi dong cua bang sé tương ứng với một bản ghỉ hoặc một nhân viên trong cơ sở đữ liệu

- Céu truy van SOL "SELECT * FROM DEPARTMENTS;" duoc sve dung dé truy van

tat ca cdc dòng và tất cả các cột từ bảng có tên la "DEPARTMENTS"

Khi bạn chạy câu truy vấn này, kết quả sẽ trả về một bảng dữ liệu chứa tất cả các thông tu trong bang "DEPARTMENTS", bao gom tat cả các cột và mỗi dòng tương ứng với một bản ghi trong bang

WHERE emp_name = 'KING’;

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

- _ Chạy lệnh đầu tiên:

Trang 10

[dWasmeise &⁄«eszsxesovrss emo ee

# Ö (lì & SOL | AI Rows Fetched: 2 in 0.004 seconds

4} EMPLOYEE_ID Ÿ FIRST_NAME ? LAST_NAME 4 EMAL |Ö

2 100 Steven King seine

@ G WL 501 | Al Rows Fetched: 0 in 0,001 seconds

Ÿ EMPLOY Ô FIRST_ ÔLAST_N ŸEMANI _|{) PHONE_ |) HIRE_D |} J08_ID |} SALARY _|{} COMMIS ) MANAGE 3 DEPART

Giải thích:

Cau truy van SOL "SELECT * FROM EMPLOYEES WHERE LAST NAME = 'King';"

được sử dụng để truy vấn và lấy thông tin từ bảng "EMPLOYEES" chỉ cho những nhân viên có họ (hoặc tên đệm) là King"

Dưới đây là giải thích từng phần của cẩu truy vấn:

SELECT *:** Chọn tất cả các cột (*) từ bảng

EROM EMPLOYEES:** Xác định rằng dữ liệu sẽ được lấy từ bảng có tên là

"EMPLOYEES"

10

Trang 11

WHERE LAST _NAME = 'King:** Điều kiện lọc dữ liệu Chỉ lấy những bản ghi từ bảng

"EMPLOYEES" ma co gid tri trong c6t "LAST NAME" Id 'King' Điễu này có thê áp dụng cho việc tìm kiếm nhân viên với họ là 'Kmg'

- Do LAST NAME =’KING’ khéng ton tai trong bang ghi EMPLOYEES nén khi trích xuất dữ liệu sẽ không tìm thấy kết quả ứng với tên KING' Do đó kết quả sẽ trả về trồng và chỉ hiển thị khung tiêu đề của bảng ghỉ Còn LAST NAME = 'KING' có trong bảng ghi EMPLOYEES, nên khi trích xuất dữ liệu thì sẽ trả về kết quả như trên

- FROM tables: Day là phan mà bạn chỉ định các bảng mà bạn muốn fruy vấn dữ liệu Bạn có thể chỉ định một hoặc nhiều bảng từ nơi dữ liệu sẽ được trả về

- WHERE conditions: Day la phan mà bạn xác định các điều kiện lọc đữ liệu Chỉ những dòng thỏa mãn điều kiện này sẽ được trả về trong kết quả truy vấn Điều kiện này thường liên quan đến so sánh giả trị trong cột với một giá trị cụ thể hoặc với một biếu thức logic

ORDER BY salary DESC;

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

11

Trang 12

0 to Declaration” ERS ee ITIsert | Modifledl Windows: CF:

- _ KÉT LUẬN: Câu lệnh truy vấn này sẽ trả về tất cả các cột tie bang employees cho nhiing nhdn vién cé job _idla'ST CLERK", mức lương (salary) lớn hơn 900, và kết quả sẽ được sắp xếp theo mức lương giảm đâu

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

Trang 13

PHY-BA BR KPa (@ HR@THIEN_N20DCVTOSS ~ Worksheet Query Builder

> Query Result *

#@ & @ BW Sal | Fetched 50 rows in 0.005 seconds

So to Dedaration* I Line 1 Column 16 GD ốc

- KET LUAN: Két qua cua cau truy van nay sẽ là một bảng mới có hai cột được đồi tên là mwanhanvien và tennhanvien, chia dit liéu tie c6t employee_id va last name trong bang employee

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

NOT Kiểm tra phủ định

13

Trang 14

BETWEEN _ | Kiém tra trong khoảng

Viết lệnh truy vấn SELECT lây danh sách nhân viên có lương (SALARY) cao hơn

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

|ElW6fñEfSfE ˆÏ âu seerxzx suoxrrs l8ãM@ØWfS 7 ãa㣣K

m”m8øw-»A:88 ROAR ÑÄ HRGTHIEN_N20DCVT059 ~

GÌ HỒ SQL | All Rows Fetched: 96 in 0.009 seconds

{) EMPLOYEE_ID/) FIRST_NAME ||} LAST_NAME |) EMATL |) PHONE_NUMBER |) HIRE_DATE|}30B_D _| |} SALARY|) COMMISSION_PCT |) MANAGER_ID |) DEPARTMENT_ ID

Trang 15

Worksheet Query Builder

vane saLaR ener 2000 axD 20004

#P Ö Là lÈ sọL | All Rows Fetched: 26 in 0.003 seconds

A ‘SBAI 24-DEC-05 PU_CLERE 2500 (aul) 114 30

1 116 Shelli Baide DR 515.127.4563

2 117 Sigal Tobias STOBIRS 515.127.4564 2d-JUL-05 EU CLERE 2900 (null) 1€ 30

3 118 Gay Aamuro GHIMURO 515.127.4565 IS5-NOW-06 EU CLERK 200 (null) 14 30

6 127 Janes Landry JLANDRV €50.124.132¢ 14-JAM-07 ST CLEBE 2400 (nell) 120 số

7 128 Steven Markle SMQRLE 650.124.1824 08-MRR-08 ST CLERE 2200 (nell) 120 số

8 130 Mazhe Atkinson MATEIMSO ES0.124.€234 30-07-05 ST CLERE 2800 (men) 1a số

9 131 James Marlow UAMRLOW £E50.124.1234 LE-FEB-OS | ST_CLERK 2500 (neil) 1a số

10 132 Tử 0130n TUJOLSON E59.124.8Z34 10-AFR-0T ST CLERK zing (11) 121 sọ

11 134 Michael Rogers MROGERS 650.127.1034 ZE-AUU-Q6 ST_CLERK Z300 trai) 122 sọ

12 135K Gee KGEE £50.127.1733 12-DEC-0T SI CLERK 2300 (nell) 122 sọ

13 136 Hazel Philtanker HPHILTAN 650.127.1639 06-FEB-08 ST CLERK Z200 (re11) 122 sọ

15 149 Joshua Pavel JEATEL 650.121.1834 06-RFA-06 SI CLERE 2500 (pull) 123 số

Line 3 Colunn 35 Insert | Modified! Windows: CR

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:

— Samos es

Worksheet Query Builder

elscipt Output * | > query Result «

8 OB Bd Tesk completed in 0.033 seconds

Ino rows selected

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:

15

Trang 16

P>ă9- MA 23 8đa@% (ả s£ørrqE\ !G00Cvr0e

5 Lénh ré nhanh CASE trong Oracle

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

SELECT EMP_ID,EMP_NAME,JOB,

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 EMPLOYEE;

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

16

Trang 17

Từ đó, giải thích cú pháp lénh CASE trong Oracle:

CASE [ expression ]

WHEN condition_1 THEN result_ 1

WHEN condition_2 THEN result_2

WHEN condition_n THEN result_n

WHEN condition 1 THEN result_1: Diéu kiện và kết quả tương ứng nếu điều kiện đó là dung

17

Trang 18

ELSE result: Phần này là tùy chọn Nếu không có điểu kiện nào đúng, gid trị của ELSE sẽ được trả về

6 Lénh INSERT thém di 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 Ä','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:

Từ đó, giải thích cú pháp lệnh INSERT dùng để thêm một record vào bảng trong Oracle:

INSERT INTO table

(column1, column2, column_n}

VALUES

(expression1†1, expression2, expression_n );

INSERT INTO table:

INSERT INTO Ia phan của câu lệnh mà bạn sử dụng đề xác định rằng bạn muốn thêm dữ liệu vào một bảng cụ thể

table là tên của bảng mà bạn muốn thêm dữ liệu vào

(column1, column2, column_n):

18

Trang 19

Phần này là tùy chọn va được sử dụng khi bạn chỉ muốn thêm dữ liệu vào một số cột cụ thê trong bảng

column1, column2, column_n là danh sách các cột mà bạn muốn thêm dữ liệu vào

VALUES:

Phần này được sử dụng đề xác định giá trị cụ thê mà bạn muốn thêm vào bảng

VALUES là từ khoá và được sử dụng đề xác định rằng bạn sẽ cung cắp giá trị cho các

cột được liệt kê

(expression1, expression2, expression_n):

Phân này chứa giá trị cụ thé mà bạn muốn thêm vào các cột tương ứng

expression1, expression2, expression_n là giá trị bạn muốn thêm vào các cột tương

ứng với danh sách cột được liệt kê ở trên

7, Lénh UPDATE trong Oracle

Trang 20

# tì & X a, Fite «|> Actors

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 đó:

¢ UPDATE 1a te khod ma ban swe dung đề bắt đầu lệnh cập nhật

¢ table_name la tén cua bang ma ban muon cập nhật

3 SET column = expression1, column2 = expression2, ., column_n =

«Ồ - coldrmml, colurmH2, , coluưun m là danh sách các cột cân được cập nhật

* expressionl, expressiort2, , expression_m là giá trị bạn muôn gản cho các cot tuong ung

4 WHERE conditions:

° Phan này là tùy chon và xác định điểu kiện đữ liệu cần được cập nhật

¢ Chi nhitng hang thoa man diéu kién nay sẽ được cập nhật Nếu bạn bỏ qua phan WHERE, tat cả các hàng trong bảng sẽ được cập nhật

20

Trang 21

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:

wWeeemeFeo (2⁄0Ø7MEodcvrner NI oneen

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

Lệnh này sẽ xóa cac ban ghi te bang EMPLOYEE ma co gid tri trong c6t emp_idla'l'

Sau khi thuc hién lénh nay, trén trang Tab Data cua bang EMPLOYEE, ban sẽ không còn thấy bản ghi nào có giá trị emp_¡d là '1' Các dòng có emp_id bằng '1' đã được xóa khỏi bảng

Thực hiện lệnh:

DELETE FROM EMPLOYEE

WHERE EMP_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:

Lệnh này sẽ xóa các bản ghi từ bảng LEMIPLOYFE mà có tên nhân viên (EMP_ NAMH) là 'ADAMS' va mic luwong (SALARY) nho hon 1000

19

Sau khi thuc hién lénh nay, trén trang Tab Data cua bang EMPLOYEE, ban sẽ không còn thấy các bản ghi nào có tên nhân viên là !4DAAAS' và mức lương nhỏ hơn 1000 Các dòng này đã được xóa khỏi bảng

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

DELETE FROM table_name

WHERE conditions;

Lénh DELETE trong SOL duoc sw dung đề xóa dữ liệu từ một hoặc nhiễu đồng trong một bảng dựa trên một điểu kiện cụ thể

21

Trang 22

Giải thích các phần chính của cú pháp:

DELETE FROM table_name: Chi dinh tén cua bang ma ban muon xóa dit liéu khỏi

WHERE conditons: Xác định điều kiện đề xác định các dong cu thể mà bạn muốn xóa Dữ liệu sẽ chỉ được xóa từ các dong thỏa mãn điều kiện này Nếu bạn không chỉ định điều

kiện, lệnh DELETE sẽ xóa tất cả dữ liệu từ bảng

Vi du:

DELETE FROM employees

WHERE department id = 30 AND salary < 1000;

Trong vi du nay, dit liéu tie bang "employees" sé bi xoa cho những người làm ở phòng có department id la 30 va có mức lương (salary) nhỏ hơn 1000

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: 18/02/2025, 16:24