1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 4 NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)

32 870 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

Thông tin cơ bản

Tiêu đề Bài 4 NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Chuyên ngành Ngôn Ngữ Truy Vấn Cấu Trúc
Thể loại Bài giảng
Định dạng
Số trang 32
Dung lượng 2,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu câu lệnh SELECT trên nhiều bảngTìm hiểu 3 nhóm lệnh SQL: Nhóm định nghĩa dữ liệu DDL: Gồm các lệnh tạo, thay đổi các bảng dữ liệuCreate, Drop, Alter, … Nhóm thao tác dữ liệu DML

Trang 1

Bài 4:

NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)

Trang 2

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Giới thiệu các nhóm ngôn ngữ của SQL

Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề SELECT

Hệ thống bài cũ

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Giới thiệu các nhóm ngôn ngữ của SQL

Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề SELECT

Trang 3

Tìm hiểu câu lệnh SELECT trên nhiều bảng

Tìm hiểu 3 nhóm lệnh SQL:

Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các

bảng dữ liệu(Create, Drop, Alter, …)

Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu(Insert, Delete, Update,…) lưu trong các bảng

Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truynhập vào dữ liệu và các bảng (Grant, Revoke, …)

Mục tiêu bài học hôm nay

Tìm hiểu câu lệnh SELECT trên nhiều bảng

Tìm hiểu 3 nhóm lệnh SQL:

Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các

bảng dữ liệu(Create, Drop, Alter, …)

Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu(Insert, Delete, Update,…) lưu trong các bảng

Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truynhập vào dữ liệu và các bảng (Grant, Revoke, …)

Trang 4

Khi truy vấn trên nhiều bảng, phải kết nối các bảng

Có hai kiểu kết nối:

Kết nối trong: mệnh đề WHERE chỉ ra các trường khóa của cácbảng cần kết nối phải như nhau hoặc dùng từ khóa JOIN trongmệnh đề FROM

Kết nối ngoài: sử dụng từ khóa LEFT/RIGHT OUTER JOIN trongmệnh đề FROM

Mệnh đề SELECT trên nhiều bảng

Khi truy vấn trên nhiều bảng, phải kết nối các bảng

Có hai kiểu kết nối:

Kết nối trong: mệnh đề WHERE chỉ ra các trường khóa của cácbảng cần kết nối phải như nhau hoặc dùng từ khóa JOIN trongmệnh đề FROM

Kết nối ngoài: sử dụng từ khóa LEFT/RIGHT OUTER JOIN trongmệnh đề FROM

Trang 5

Kết nối trong

Trang 6

Kết nối ngoài

Trang 7

Kết nối trong trả về 106 bộ dữ liệu

Kết nối ngoài trả về 107 bộ dữ liệu

Giải thích:

Kết nối trong chỉ trả về kết quả khi tìm được DEPARTMENT_IDtương ứng của nhân viên trong bảng DEPARTMENT

Kết nối ngoài trả về kết quả ngay cả khi không tìm được

DEPARTMENT_ID của nhân viên trong bảng DEPARTMENT

So sánh kết quả hai kiểu kết nối

Kết nối trong trả về 106 bộ dữ liệu

Kết nối ngoài trả về 107 bộ dữ liệu

Giải thích:

Kết nối trong chỉ trả về kết quả khi tìm được DEPARTMENT_IDtương ứng của nhân viên trong bảng DEPARTMENT

Kết nối ngoài trả về kết quả ngay cả khi không tìm được

DEPARTMENT_ID của nhân viên trong bảng DEPARTMENT

Trang 8

Hàm truy vấn nhóm thực hiện trên một cột của bảng

Một số hàm nhóm như:

Tìm Max(column) - Tìm giá trị lớn nhất trong cột column

Min(column) - Tìm giá trị nhỏ nhất trong cột column

Avg(column) - Tìm giá trị trung bình của cột column

Tìm Max(column) - Tìm giá trị lớn nhất trong cột column

Min(column) - Tìm giá trị nhỏ nhất trong cột column

Avg(column) - Tìm giá trị trung bình của cột column

Count – Hàm đếm số bộ

Trang 9

Tìm mức lương nhỏ nhất, lớn nhất, lương trung bình (được làm

tròn), và số bộ có trong bảng EMPLOYEES

Ví dụ: Hàm nhóm đơn giản

Trang 10

Tìm lương nhỏ nhất, lớn nhất, tiền lương trung bình cho các bộ

phận và đếm số lượng nhân viên trong từng bộ phận

Hàm nhóm cùng với mệnh đề GROUP BY

Trang 11

Ngôn ngữ thao tác dữ liệu (DML – Data Manipulation

Language) gồm các truy vấn cho phép thêm, sửa, xóa

dữ liệu trong các bảng

Bao gồm các truy vấn bắt đầu bằng từ khóa:

INSERT INTO - thêm dữ liệu mới vào bảng

UPDATE - cập nhật/sửa đổi dữ liệu trong bảng

DELETE - xóa dữ liệu trong bảng

Ngôn ngữ thao tác dữ liệu (DML)

Ngôn ngữ thao tác dữ liệu (DML – Data Manipulation

Language) gồm các truy vấn cho phép thêm, sửa, xóa

dữ liệu trong các bảng

Bao gồm các truy vấn bắt đầu bằng từ khóa:

INSERT INTO - thêm dữ liệu mới vào bảng

UPDATE - cập nhật/sửa đổi dữ liệu trong bảng

DELETE - xóa dữ liệu trong bảng

Trang 12

Cú pháp:

INSERT [INTO] TableName VALUES(val1,val2,…)

INSERT [INTO] TableName(column1,…,columnN) VALUES

Thêm dữ liệu mới vào bảng

Cú pháp:

INSERT [INTO] TableName VALUES(val1,val2,…)

INSERT [INTO] TableName(column1,…,columnN) VALUES

Trang 13

Chương trình thực hiện thêm dữ liệu và thông báo kết quả như sau:

Thêm dữ liệu mới vào bảng

Trang 14

Dòng dữ liệu mới được thêm vào trong bảng EMPLOYEES

Thêm dữ liệu mới vào bảng

Trang 16

Kết quả:

Cập nhật dữ liệu trong bảng

Trang 17

Cú pháp:

DELETE FROM TableName

[WHERE condition];

Có thể xóa toàn bộ nội dung bảng với cú pháp:

DELETE FROM TableName ;

Ví dụ:

DELETE FROM EMPLOYEES

Xóa dữ liệu trong bảng

Cú pháp:

DELETE FROM TableName

[WHERE condition];

Có thể xóa toàn bộ nội dung bảng với cú pháp:

DELETE FROM TableName ;

Ví dụ:

DELETE FROM EMPLOYEES

Trang 18

Ngôn ngữ định nghĩa dữ liệu (DDL – Data Definition

Chúng ta cũng có thể định nghĩa các khoá (key), chỉ

mục (index), chỉ định các liên kết giữa các bảng và thiết lập các quan hệ ràng buộc giữa các bảng trong CSDL

Ngôn ngữ định nghĩa dữ liệu

Ngôn ngữ định nghĩa dữ liệu (DDL – Data Definition

Chúng ta cũng có thể định nghĩa các khoá (key), chỉ

mục (index), chỉ định các liên kết giữa các bảng và thiết lập các quan hệ ràng buộc giữa các bảng trong CSDL

Trang 19

Các lệnh:

CREATE TABLE: tạo một bảng mới trong CSDL

ALTER TABLE: thay đổi cấu trúc của một bảng trong CSDL

CREATE VIEW: tạo một View mới

CREATE INDEX: tạo chỉ mục ( khóa để tìm kiếm)

DROP INDEX: xóa chỉ mục đã được tạo

Ngôn ngữ định nghĩa dữ liệu

Các lệnh:

CREATE TABLE: tạo một bảng mới trong CSDL

ALTER TABLE: thay đổi cấu trúc của một bảng trong CSDL

CREATE VIEW: tạo một View mới

CREATE INDEX: tạo chỉ mục ( khóa để tìm kiếm)

DROP INDEX: xóa chỉ mục đã được tạo

Trang 20

CREATE TABLE table_name (

column_name2 data_type[option], , );

Trongđó:

table_name là tên bảng cần tạo,

column_name là tên các trường cần tạo,

data_type là kiểu dữ liệu tươngứng

Lệnh CREATE TABLE

CREATE TABLE table_name (

column_name2 data_type[option], , );

Trongđó:

table_name là tên bảng cần tạo,

column_name là tên các trường cần tạo,

data_type là kiểu dữ liệu tươngứng

Trang 21

CREATE TABLE EMPLOYEE_INPUT (

EMPLOYEE_ID NUMBER(6) NOT NULL,

FIRST_NAME VARCHAR2(20) NULL,

LAST_NAME VARCHAR2(25) NOT NULL,

EMAIL VARCHAR2(25) NOT NULL,

PHONE_NUMBER VARCHAR2(20) NULL,

JOB_ID VARCHAR2(10) NOT NULL,

SALARY NUMBER(8,2) NULL,

COMMISSION_PCT NUMBER(2,2) NULL,

MANAGER_ID NUMBER(6) NULL,

DEPARTMENT_ID NUMBER(4) NULL

Ví dụ lệnh CREATE TABLE

CREATE TABLE EMPLOYEE_INPUT (

EMPLOYEE_ID NUMBER(6) NOT NULL,

FIRST_NAME VARCHAR2(20) NULL,

LAST_NAME VARCHAR2(25) NOT NULL,

EMAIL VARCHAR2(25) NOT NULL,

PHONE_NUMBER VARCHAR2(20) NULL,

JOB_ID VARCHAR2(10) NOT NULL,

SALARY NUMBER(8,2) NULL,

COMMISSION_PCT NUMBER(2,2) NULL,

MANAGER_ID NUMBER(6) NULL,

DEPARTMENT_ID NUMBER(4) NULL

Trang 22

Lệnh ALTER TABLE cho phép thay đổi các định nghĩa trên bảng như:

Thêm/xóa cột trong bảng

Thay đổi kiểu dữ liệu cho các cột trong bảng

Thay đổi thuộc tính bộ nhớ cấp cho bảng

Thêm/xóa/thay đổi các ràng buộc

Lệnh ALTER TABLE

Lệnh ALTER TABLE cho phép thay đổi các định nghĩa trên bảng như:

Thêm/xóa cột trong bảng

Thay đổi kiểu dữ liệu cho các cột trong bảng

Thay đổi thuộc tính bộ nhớ cấp cho bảng

Thêm/xóa/thay đổi các ràng buộc

Trang 23

Thêm một cột:

ALTER TABLE table_name

ADD COLUMN column_name data_type;

Xóa một cột:

ALTER TABLE table_name

DROP COLUMN column_name;

Lệnh ALTER TABLE

Thêm một cột:

ALTER TABLE table_name

ADD COLUMN column_name data_type;

Xóa một cột:

ALTER TABLE table_name

DROP COLUMN column_name;

Trang 24

Thêm một ràng buộc Check:

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

CHECK (condition);

Ví dụ:

ALTER TABLE EMPLOYEES

ADD CONSTRAINT EMPLOYEES_CHK_SALARY_MIN

CHECK (SALARY > 0);

Lệnh ALTER TABLE

Thêm một ràng buộc Check:

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

CHECK (condition);

Ví dụ:

ALTER TABLE EMPLOYEES

ADD CONSTRAINT EMPLOYEES_CHK_SALARY_MIN

CHECK (SALARY > 0);

Trang 25

ALTER TABLE EMPLOYEE_INPUT

ADD CONSTRAINT EMP_INPUT_DEPT_FK

FOREIGN KEY (DEPARTMENT_ID)

REFERENCES DEPARTMENTS (DEPARTMENT_ID);

Ví dụ này định nghĩa một ràng buộc tham chiếu có tên

EMP_DEPT_FK sẽ được thêm vào bảng EMPLOYEES để

Lệnh ALTER TABLE

ALTER TABLE EMPLOYEE_INPUT

ADD CONSTRAINT EMP_INPUT_DEPT_FK

FOREIGN KEY (DEPARTMENT_ID)

REFERENCES DEPARTMENTS (DEPARTMENT_ID);

Ví dụ này định nghĩa một ràng buộc tham chiếu có tên

EMP_DEPT_FK sẽ được thêm vào bảng EMPLOYEES để

Trang 26

Ví dụ ràng buộc UNIQUE:

ALTER TABLE EMPLOYEE_INPUT

ADD CONSTRAINT EMPLOYEES_UNQ_EMAIL

UNIQUE (EMAIL);

Ràng buộc UNIQUE có thể được loại bỏ với lệnh ALTER

ALTER TABLE EMPLOYEE_INPUT

DROP CONSTRAINT EMPLOYEES_UNQ_EMAIL;

Lệnh ALTER TABLE

Ví dụ ràng buộc UNIQUE:

ALTER TABLE EMPLOYEE_INPUT

ADD CONSTRAINT EMPLOYEES_UNQ_EMAIL

UNIQUE (EMAIL);

Ràng buộc UNIQUE có thể được loại bỏ với lệnh ALTER

ALTER TABLE EMPLOYEE_INPUT

DROP CONSTRAINT EMPLOYEES_UNQ_EMAIL;

Trang 27

Lệnh DROP dùng để bỏ đối tượng không cần

thiết khỏi CSDL

Ví dụ:

DROP TABLE EMPLOYEE_INPUT CASCADE CONSTRAINTS;

(mệnh đề CASCADE CONSTRAINTS được thêm vào để tự động loại

bỏ các ràng buộc tham chiếu trong bảng )

Lệnh DROP

Lệnh DROP dùng để bỏ đối tượng không cần

thiết khỏi CSDL

Ví dụ:

DROP TABLE EMPLOYEE_INPUT CASCADE CONSTRAINTS;

(mệnh đề CASCADE CONSTRAINTS được thêm vào để tự động loại

bỏ các ràng buộc tham chiếu trong bảng )

Trang 28

Gồm các lệnh cho phép đặt các quyền truy xuất dữ liệu cho người sử dụng CSDL

Ngôn ngữ điều khiển truy xuất dữ liệu

Gồm các lệnh cho phép đặt các quyền truy xuất dữ liệu cho người sử dụng CSDL

Trang 29

Cú pháp:

Cung cấp quyền trên CSDL:

GRANT privilege1, privilege2, … TO database;

Cung cấp quyền trên bảng:

GRANT privilege1, privilege2,…

ON database.TableName TO UserName;

Lệnh GRANT

Cú pháp:

Cung cấp quyền trên CSDL:

GRANT privilege1, privilege2, … TO database;

Cung cấp quyền trên bảng:

GRANT privilege1, privilege2,…

ON database.TableName TO UserName;

Trang 30

Ví dụ cấp quyền tạo View cho người dùng CSDL HR:

GRANT CREATE VIEW TO HR;

Ví dụ cấp các quyền lựa chọn, thêm, cập nhật dữ liệu

trên bảng EMPLOYEES cho admin của CSDL HR:

GRANT SELECT, INSERT, UPDATE

ON HR.EMPLOYEES TO HR_ADMIN;

Lệnh GRANT

Ví dụ cấp quyền tạo View cho người dùng CSDL HR:

GRANT CREATE VIEW TO HR;

Ví dụ cấp các quyền lựa chọn, thêm, cập nhật dữ liệu

trên bảng EMPLOYEES cho admin của CSDL HR:

GRANT SELECT, INSERT, UPDATE

ON HR.EMPLOYEES TO HR_ADMIN;

Trang 31

REVOKE cho phép thu hồi lại các quyền đã cấp bởi mệnh

đề GRANT.

Ví dụ:

Thu hồi quyền tạo View cho người dùng CSDL HR:

REVOKE CREATE VIEW TO HR;

Thu hồi các quyền lựa chọn, thêm, cập nhật dữ liệu trên bảngEMPLOYEES cho admin của CSDL HR:

REVOKE SELECT, INSERT, UPDATE

Lệnh REVOKE

REVOKE cho phép thu hồi lại các quyền đã cấp bởi mệnh

đề GRANT.

Ví dụ:

Thu hồi quyền tạo View cho người dùng CSDL HR:

REVOKE CREATE VIEW TO HR;

Thu hồi các quyền lựa chọn, thêm, cập nhật dữ liệu trên bảngEMPLOYEES cho admin của CSDL HR:

REVOKE SELECT, INSERT, UPDATE

Trang 32

Ngôn ngữ SQL cho phép Tạo CSDL và cung cấp các

Thao tác cho phép làm việc trên dữ liệu như Thêm, Sửa, hoặc Xóa dữ liệu.

4 nhóm mệnh đề chính của SQL:

Nhóm truy vấn dữ liệu (DQL) : Select

Nhóm định nghĩa dữ liệu (DDL): Create, Drop, Alter …

Nhóm thao tác dữ liệu (DML): Insert, Delete, Update …

Nhóm điều khiển dữ liệu (DCL): Grant, Revoke, …

Tổng kết bài học

Thao tác cho phép làm việc trên dữ liệu như Thêm, Sửa, hoặc Xóa dữ liệu.

4 nhóm mệnh đề chính của SQL:

Nhóm truy vấn dữ liệu (DQL) : Select

Nhóm định nghĩa dữ liệu (DDL): Create, Drop, Alter …

Nhóm thao tác dữ liệu (DML): Insert, Delete, Update …

Nhóm điều khiển dữ liệu (DCL): Grant, Revoke, …

Ngày đăng: 23/05/2014, 19:25

TỪ KHÓA LIÊN QUAN