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 1m 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 31 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 4ConnectioNeme 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 5Bam 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 6Liệ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 7Trong 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 8Ké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 9Nhậ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 11WHERE 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 120 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 13PHY-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 14BETWEEN _ | 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 15Worksheet 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 16P>ă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 17Từ đó, 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 18ELSE 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 19Phầ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 21Hã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 22Giả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: