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

Bài giảng cơ sở dữ liệu chương 5 SQL (structured query language)

24 238 0

Đ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

Định dạng
Số trang 24
Dung lượng 296,49 KB

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

Nội dung

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 5Nội dung chi tiết - Lược đồ cho mỗi quan hệ - Miền giá trị tương ứng của từng thuộc tính - Ràng buộc toàn vẹn - Chỉ mục trên mỗi quan hệ ƒ Gồm -

Trang 1

Chương 5

SQL

(

(Structured Query Language)

Nội dung chi tiết

Trang 2

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 3

Giới thiệu

ƒ Ngôn ngữ ĐSQH

- Cách thức truy vấn dữ liệu

- Khó khăn cho người sử dụng

ƒ SQL (Structured Query Language)

- Ngôn ngữ cấp cao

- Người sử dụng chỉ cần đưa ra nội dung cần truy

vấn

- Được phát triển bởi IBM (1970s)

- Được gọi là SEQUEL

- Được ANSI công nhận và phát triển thành chuẩn

- Phân quyền và bảo mật

- Điều khiển giao tác

Trang 3

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 5

Nội dung chi tiết

- Lược đồ cho mỗi quan hệ

- Miền giá trị tương ứng của từng thuộc tính

- Ràng buộc toàn vẹn

- Chỉ mục trên mỗi quan hệ

ƒ Gồm

- CREATE TABLE (tạo bảng)

- DROP TABLE (xóa bảng)

- ALTER TABLE (sửa bảng)

- CREATE DOMAIN (tạo miền giá trị)

Trang 4

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 7

Kiểu dữ liệu

ƒ Số (numeric)

- INTEGER

- SMALLINT

- NUMERIC, NUMERIC(p), NUMERIC(p,s)

- DECIMAL, DECIMAL(p), DECIMAL(p,s)

ƒ Ngày giờ (datetime)

- DATE gồm ngày, tháng và năm

- TIME gồm giờ, phút và giây

- TIMESTAMP gồm ngày và giờ

Trang 5

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 9

Trang 6

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 11

CREATE TABLE NHANVIEN (

HONV VARCHAR(50) NOT NULL ,

TENNV VARCHAR(10) NOT NULL ,

MANV CHAR(9) PRIMARY KEY,

NGSINH DATETIME,

DCHI VARCHAR(50),

PHAI CHAR(3) CHECK (PHAI IN ( ‘Nam’ , ‘Nu’ )),

LUONG INT DEFAULT (10000),

MA_NQL CHAR(9),

PHG INT

)

Trang 7

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 13

Ví dụ - RBTV

CREATE TABLE PHONGBAN (

TENPB VARCHAR (20) UNIQUE ,

MAPHG INT NOT NULL ,

TRPHG CHAR (9),

NG_NHANCHUC DATETIME DEFAULT ( GETDATE() )

)

CREATE TABLE PHANCONG (

MA_NVIEN CHAR (9) FOREIGN KEY (MA_NVIEN)

REFERENCES NHANVIEN(MANV), SODA INT REFERENCES DEAN(MADA),

THOIGIAN DECIMAL (3,1)

)

Ví dụ - Đặt tên cho RBTV

CREATE TABLE NHANVIEN (

HONV VARCHAR (50) CONSTRAINT NV_HONV_NN NOT NULL ,

TENNV VARCHAR (10) NOT NULL ,

MANV CHAR (9) CONSTRAINT NV_MANV_PK PRIMARY KEY ,

NGSINH DATETIME ,

DCHI VARCHAR (50),

PHAI CHAR (3) CONSTRAINT NV_PHAI_CHK

CHECK (PHAI IN ( ‘Nam’ , ‘Nu’ )), LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),

MA_NQL CHAR (9),

PHG INT

Trang 8

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 15

CONSTRAINT PC_MANVIEN_FK FOREIGN KEY

(MA_NVIEN) REFERENCES NHANVIEN(MANV),

CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA)

ALTER TABLE <Tên_bảng> DROP COLUMN<Tên_cột>

ALTER TABLE <Tên_bảng> ALTER COLUMN

<Tên_cột> <Kiểu_dữ_liệu_mới>

Trang 9

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 17

Ví dụ - Thay đổi cấu trúc bảng

ALTER TABLE NHANVIEN

ADD NGHENGHIEP CHAR(20)

ALTER TABLE NHANVIEN

DROP COLUMN NGHENGHIEP

ALTER TABLE NHANVIEN

ALTER COLUMN NGHENGHIEP CHAR(50)

Trang 10

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 19

ALTER TABLE PHONGBAN ADD

CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG),

CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG)

ƒ Được dùng để xóa cấu trúc bảng

- Tất cả dữ liệu của bảng cũng bị xóa

ƒ Cú pháp

ƒ Ví dụ

DROP TABLE <Tên_bảng>

DROP TABLE NHANVIEN

DROP TABLE PHONGBAN

DROP TABLE PHANCONG

Trang 11

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 21

Lệnh xóa bảng (tt)

NHANVIEN

TENNV HONV TENLOT MANV NGSINH DCHI PHAI LUONG MA_NQL PHG

PHONGBAN

TRPHG TENPHG MAPHG NG_NHANCHUC

Lệnh tạo và xóa miền giá trị

ƒ Tạo ra một kiểu dữ liệu mới kế thừa những

kiểu dữ liệu có sẳn

ƒ Cú pháp

ƒ Ví dụ

CREATE DOMAIN <Tên_kdl_mới> AS<Kiểu_dữ_liệu>

DROP DOMAIN <Tên_kdl_mới> AS <Kiểu_dữ_liệu>

CREATE DOMAIN Chuoi AS VARCHAR(50)

DROP DOMAIN Chuoi

Trang 12

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 23

Nội dung chi tiết

ƒ Là ngôn ngữ rút trích dữ liệu thỏa một số

điều kiện nào đó

ƒ Dựa trên

- Cho phép 1 bảng có nhiều dòng trùng nhau

Phép toán ĐSQH + Một số bổ sung

Trang 13

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 25

Truy vấn cơ bản (SELECT)

- Nối các biểu thức: AND, OR, và NOT

- Phép toán: < , > , ≤ , ≥ , ≠ , =, LIKE, BETWEEN,

EXISTS, ANY/SOME, ALL, IN

Trang 14

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 27

σPHG=5 (NHANVIEN)

TENNV

Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5

Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5

333445555

987987987

888665555 333445555

TENLOT Thanh Manh

Trang 15

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 29

Mệnh đề SELECT

SELECT MANV, HONV, TENLOT, TENNV

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

πMANV,HONV,TENLOT,TENNV(σPHG=5 ∧ PHAI=‘Nam’(NHANVIEN))

TENNV HONV

Tung Nguyen

Hung Nguyen

TENLOT Thanh Manh

WHERE PHG=5 AND PHAI= ‘Nam’

ρMANV,HO,TEN LOT,TEN (πMANV,HONV,TENLOT,TENNV(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))

TEN HO

Tung Nguyen

Hung Nguyen

TEN LOT Thanh

Manh

33344555

5 98798798

7 MANV

Tên bí danh

Trang 16

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 31

Mệnh đề SELECT (tt)

SELECT MANV,

HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’

FROM NHANVIEN

WHERE PHG=5 AND PHAI= ‘Nam’

ρMANV,HO TEN(πMANV,HONV+TENLOT+TENNV(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))

HO TEN Nguyen Thanh Tung Nguyen Manh Hung

WHERE PHG=5 AND PHAI=‘Nam’

ρMANV,LUONG10%(πMANV,LUONG*1.1(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))

LUONG10%

33000 27500

333445555 987987987 MANV

Mở rộng

Trang 17

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 33

R1 ← NHANVIEN PHG=MAPHG PHONGBAN

KQ ← πMANV, TENNV ( σTENPHG=‘Nghien cuu’(R1))

MANV, TENNV

NHANVIEN, PHONGBAN

TENPHG=‘Nghien cuu’ AND PHG=MAPHG

Trang 18

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 35

Mệnh đề WHERE

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG

Biểu thức luận lý

TRUE

TRUE

Mệnh đề WHERE (tt)

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE (TENPHG=‘K Toan’ OR TENPHG=‘Quan ly’)

AND PHG=MAPHG

Độ ưu tiên

Trang 19

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 37

WHERE LUONG BETWEEN 20000 AND 30000

Mệnh đề WHERE (tt) NOT BETWEEN

SELECT MANV, TENNV

FROM NHANVIEN

WHERE LUONG NOT BETWEEN 20000 AND 30000

Trang 20

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 39

Trang 21

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 41

Trang 22

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 43

Mệnh đề WHERE (tt) NULL

ƒ Sử dụng trong trường hợp

- Không biết (value unknown)

- Không thể áp dụng (value inapplicable)

- Không tồn tại (value withheld)

ƒ Những biểu thức tính toán có liên quan đến giá trị

NULL sẽ cho ra kết quả là NULL

- x có giá trị là NULL

- x + 3 cho ra kết quả là NULL

- x + 3 là một biểu thức không hợp lệ trong SQL

ƒ Những biểu thức so sánh có liên quan đến giá trị

NULL sẽ cho ra kết quả là UNKNOWN

- x = 3 cho ra kết quả là UNKNOWN

- x = 3 là một so sánh không hợp lệ trong SQL

Mệnh đề WHERE (tt) NULL

SELECT MANV, TENNV

FROM NHANVIEN

WHERE MA_NQL IS NULL

SELECT MANV, TENNV

FROM NHANVIEN

WHERE MA_NQL IS NOT NULL

Trang 23

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 45

WHERE TRUE

Mệnh đề FROM

SELECT MANV, MAPHG

FROM NHANVIEN, PHONGBAN

Không sử dụng mệnh đề WHERE

MAPHG 1 4

333445555 333445555 MANV

5 1 987987987

987987987

333445555

4 5 987987987

Mệnh đề FROM (tt)

SELECT TENPHG, DIADIEM

FROM PHONGBAN, DDIEM_PHG

Tên bí danh ( Alias )

SELECT TENPHG, DIADIEM

FROM PHONGBAN AS PB, DDIEM_PHG AS DD

WHERE PB.MAPHG=DD.MAPHG

SELECT TENNV, NGSINH, TENTN, NGSINH

FROM NHANVIEN, THANNHAN

WHERE MANV=MA_NVIEN

SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH

FROM NHANVIEN NV, THANNHAN TN

WHERE MANV=MA_NVIEN

Trang 24

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 47

999887777

999887777

MA_NVIEN

10 30 987987987

987654321

987987987

10 20 987654321

30 987654321

Ngày đăng: 03/12/2015, 01:03

TỪ KHÓA LIÊN QUAN