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 2Tạ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 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
=» New / Select Database Connection x
User Info Proxy User
Authentication Type
Connection Type
Hostname Port
Trang 4Authentication 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 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:
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 7Khó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 9WHERE 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 12IN() 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 15Nhậ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 19Giai 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 208 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: