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

Quản lý Công Trình (SQL)

25 3K 179
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

Định dạng
Số trang 25
Dung lượng 359 KB

Nội dung

Đề tài Quản lý công trình

Trang 1

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU 4

Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được thiết kế để đáp ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị lưu trữ của máy tính và được quản lý theo một cơ chế thống nhất của hệ quản trị cơ sở dữ liệu nhằm thực hiện ba chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm kiếm dữ liệu Cơ sở dữ liệu được ứng dụng rộng rãi trong cuộc sống như ngân hàng, hàng không, đại học, các phương tiện giao thông, bán hàng, … 4

Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho phép người dùng định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ truy cấp đến cơ sở dữ liệu này một cách có quản lý.Một số hệ quản trị cơ sở dữ liệu thông dụng: Microsofts Access, Visual Foxpro, Microsoft SQL Server, MySQL, Oracle, … 4

Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và thực hiện truy vấn thành thạo các câu lệnh trên CSDL Bài tập Hệ CSDL giúp chúng ta tạo, xóa cơ sở dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục hồi cơ sở dữ liệu Môn học này cũng giúp các sinh viên thành thạo các thao tác như: tạo CSDL, tạo bảng, tạo các ràng buộc cho bảng, các câu lệnh, các phép toán SQL giúp các sinh viên có cơ hội thực hành và hoàn thiện hơn về kiến thức quản lý cơ sở dữ liệu trong môn hệ cơ sở dữ liệu 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5

1 CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ 5

.2 NGÔN NGỮ SQL 9

.1.1 Cú pháp -9

.1.2 Các phép toán -9

CHƯƠNG 3: BÀI TẬP ĐSQH VÀ SQL 16

.1 LƯỢC ĐỒ CSDL QUAN HỆ 16

.1.1 Lược đồ và Tân từ (Relation Schema & Predicate) -16

CONSTRAINT FK_THIETKE_CGTRINH FOREIGN KEY (STT_CTR) REFERENCES CGTRINH(STT_CTR) ON UPDATE CASCADE) 18

.2 BÀI TẬP ĐSQH 18

.2.1 Câu 1: Hãy cho biết tên và địa chỉ các công trình do chủ thầu Công ty xây dựng số 6 thi công. -18

.2.2 Câu 2: Tìm tên và địa chỉ liên lạc của các chủ thầu thi công công trình ở Cần Thơ do kiến trúc sư Lê Kim Dung thiết kế. -18

.2.3 Câu 3: Hãy cho biết họ tên và nơi tốt nghiệp của các kiến trúc sư đã thiết kế công trình Khách Sạn Quốc Tế ở Cần Thơ. -18

.2.4 Câu 4: Cho biết tên và địa chỉ của công trình mà công nhân Nguyễn Hông Vân đang tham gia vào ngày 18/12/94. -18

CGTRINH * CHUTHAU * CONGNHAN * THAMGIA(E) [HOTEN_CN, NAMS_CN, NAM_VAO_N] 19

.2.6 Câu 6: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành phố Hồ Chí Minh và đã thiết kế ít nhất một công trình có kinh phí đầu tư trên 400 triệu đồng 19 E = (NOI_TN = ‘TP HCM’, KINH_PHI >400) -19

.2.7 Câu 7: Cho biết tên công trình có kinh phí cao nhất -19

.2.8 Câu 8: Tìm tên và địa chỉ các chủ thầu đã trúng thầu ứng với công trình có kinh phí thấp nhất. -19

3.1 Câu 1: Hãy cho biết tên và địa chỉ các công trình do chủ thầu Công ty xây dựng số 6 thi công. -20

Trang 2

3.2 Câu 2: Tìm tên và địa chỉ liên lạc của các chủ thầu thi công công trình ở Cần Thơ do kiến trúc sư Lê Kim Dung thiết kế. -203.3 Câu 3: Hãy cho biết họ tên và nơi tốt nghiệp của các kiến trúc sư đã thiết kế công trình Khách Sạn Quốc Tế ở Cần Thơ. -203.4 Câu 4: Cho biết họ tên, năm sinh, năm vào nghề của các công nhân có chuyên môn hàn hoặc điện đã tham gia các công trình mà chủ thầu Lê Văn Sơn thi công. -203.5 Câu 5: Những công nhân nào đã bắt đầu tham gia công trình Khách sạn Quốc Tế ở Cần Thơ trong giai đoạn từ ngày 15/12/94 đến ngày 31/12/94, số ngày tương ứng là bao nhiêu 21

3.6 Câu 6: Cho biết tên và địa chỉ của công trình mà công nhân Nguyễn Hông Vân đang tham gia vào ngày 18/12/94. -213.7 Câu 7: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành phố

Hồ Chí Minh và đã thiết kế ít nhất một công trình có kinh phí đầu tư trên 400 triệu đồng 21

3.8 Câu 8: Cho biết họ tên các kiến trúc sư vừa thiết kế các công trình do chủ thầu Phòng dịch vụ Sở xây dựng thi công, vừa thiết kế các công trình do chủ thầu Lê Văn Sơn thi công. -213.9 Câu 9: Cho biết tên công trình có kinh phí cao nhất -223.10 Câu 10: Cho biết họ tên các công nhân có tham gia các công trình ở Cần Thơ, nhưng không có tham gia công trình ở Vĩnh Long. -223.11 Câu 11: Cho biết tên của các chủ thầu đã thi công các công trình có kinh phí lớn hơn tất cả các công trình do chủ thầu Phòng dịch vụ Sở xây dựng thi công. -223.12 Câu 12: Cho biết họ tên các kiến trúc sư có thù lao thiết kế cho một công trình nào

đó dưới giá trị trung bình thù lao thiết kế của một kiến trúc sư cho một công trình.223.13 Câu 13: Tìm tên và địa chỉ các chủ thầu đã trúng thầu ứng với công trình có kinh phí thấp nhất. -233.14 Câu 14: Tìm họ tên và chuyên môn của các công nhân tham gia các công trình do kiến trúc sư ‘Le Thanh Tung’ thiết kế. -233.15 Câu 15: Tìm các cặp tên của chủ thầu có trúng thầu các công trình tại cùng một thành phố. -233.16 Câu 16: Tìm các cặp tên của các công nhân có làm việc chung với nhau trong ít nhất là hai công trình. -233.17 Câu 17: Tìm tổng kinh phí của tất cả các công trình theo từng chủ thầu. 243.18 Câu 18: Cho biết họ tên các kiến trúc sư có tổng thù lao thiết kế các công trình lớn hơn 25 triệu. -243.19 Câu 19: Cho biết số lượng các kiến trúc sư có tổng thù lao thiết kế các công trình lớn hơn 25 triệu. -243.20 Câu 20: Tìm tổng số công nhân đã tham gia của mỗi công trình. -243.21 Câu 21: Tìm tên và địa chỉ công trình có tổng số công nhân tham gia nhiều nhất 243.22 Câu 22: Cho biết tên các thành phố và kinh phí trung bình cho mỗi công trình của từng thành phố tương ứng. -243.23 Câu 23: Cho biết họ tên các công nhân có tổng số ngày tham gia vào các công trình lớn hơn tổng số ngày tham gia của công nhân Nguyen Hong Van. -252.24 Câu 24: Cho biết tổng số công trình mà mỗi chủ thầu đã thi công tại mỗi thành phố 25

3.25 Câu 25: Cho biết họ tên công nhân có tham gia ở tất cả các công trình. -253.26 Câu 26: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành phố Hồ Chí Minh và đã thiết kế ít nhất là 2 công trình có kinh phí đầu tư trên 400 triệu đồng 25

CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ 26

Trang 3

CHƯƠNG 1: GIỚI THIỆU

Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được thiết

kế để đáp ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị lưu trữ của máy tính và được quản lý theo một cơ chế thống nhất của hệ quản trị

cơ sở dữ liệu nhằm thực hiện ba chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm kiếm dữ liệu Cơ sở dữ liệu được ứng dụng rộng rãi trong cuộc sống như ngân hàng, hàng không, đại học, các phương tiện giao thông, bán hàng, …

Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho phép người dùng định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ truy cấp đến cơ sở dữ liệu này một cách có quản lý.Một số hệ quản trị cơ sở dữ liệu thông dụng: Microsofts Access, Visual Foxpro, Microsoft SQL Server, MySQL, Oracle, …

Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và thực hiện truy vấn thành thạo các câu lệnh trên CSDL Bài tập Hệ CSDL giúp chúng

ta tạo, xóa cơ sở dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục hồi cơ sở dữ liệu Môn học này cũng giúp các sinh viên thành thạo các thao tác như: tạo CSDL, tạo bảng, tạo các ràng buộc cho bảng, các câu lệnh, các phép toán SQL giúp các sinh viên có cơ hội thực hành và hoàn thiện hơn về kiến thức quản lý cơ sở

dữ liệu trong môn hệ cơ sở dữ liệu

Trang 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

1 CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ

1.1 Định nghĩa Đại số quan hệ

- Đại số quan hệ là một bộ α = <M, P> trong đó:

M là tập các quan hệ cho trước

P là tập các phép toán cơ bản sau đây:

6 Phép chia (Division) ÷ hay /

7 Phép kết nối tự nhiên (Natural Join) *

8 Phép tích Đề-các (Dacastersian) x

9 Phép θ kết nối (delta-join)

- Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :

SV (MASV, HOTEN_SV, NAMS_SV, DCHI_SV, TENLOP)

MON (MAMH, TENMON, SO_TC, LOAI_MON)

GV (MAGV, HOTEN_GV, NAMS_GV, HOCVI)

HOC (MASV, MAMH, STT_HK, NKHOA, LANTHI, K_QUA)

DAY (MA_GV, MAMH, STT_HK, NKHOA)

Trang 5

R: Danh sách lớp: S: Danh sách môn học:

(TENLOP TH' 5')( SV )

1.1.2 Phép chiếu (Projection) kí hiệu [ ]

Định nghĩa:

Cho quan hệ R(U) và tập thuộc tính X ⊆ U Phép chiếu quan hệ R trên X cho

ta quan hệ P có tập thuộc tính là X và các bộ và các bộ là hạn chế trên X của các bộ trong R

P = R[X] = {t.X | t ∈ R }

Ví dụ: Tìm mã số, họ tên sinh viên có địa chỉ ‘Can Tho’

SV MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP

102 Le Thanh Ha 1991 Vinh Long XD5

- Nếu U∩ ≠V Ø thì phải đổi tên các thuộc tính trùng nhau.

Ví dụ: Cho hai quan hệ R(U) và S(V):

MAMHTH333TH555

MASV101102

Trang 6

P = R  S = { <u, v> | u ∈ R ∧ v ∈ S ∧ u [U] θ v [V] }

Chú ý:

Phép kết nối này chỉ thực hiện được khi θ thực hiện được giữa các thuộc tính của

U và V Nếu không dựa trên θ và U∩V = Ø, thì R  S trở thành tích Đề-các của R và S Nếu θ là phép so sánh “=”, thì gọi là kết nối bằng Nếu kết nối bằng được thực hiện tại tất cả các thuộc tính cùng tên của hai quan hệ R và S thì đây là phép kết nối tự nhiên

Ví dụ: Tìm thông tin giáo viên nhỏ tuổi hơn một sinh viên nào đó

CTU123 Trần Thành Nhân 1985

CTU554 Huỳnh Thị Thùy Linh 1989

103 Phan Pham Chuc 1988

CTU554 Huỳnh Thị Thùy Linh 1989 101 Trần Thu Thảo 1988

CTU554 Huỳnh Thị Thùy Linh 1989 103 Phan Pham Chuc 1988

GV

SV

Trang 7

Hợp của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U

và các bộ thuộc một trong hai quan hệ cho trước

Giao của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U

và các bộ đồng thời có mặt trong hai quan hệ cho trước

Hiệu của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U

và các bộ đồng thời có trong R nhưng không có trong S

Cú pháp của lệnh SQL được giới thiệu theo dạng mở rộng của ký hiệu BNF:

- Chữ hoa đại diện cho từ khóa

- Chữ thường đại diện cho các từ của người dùng định nghĩa

Trang 8

- Dấu | chỉ sự lựa chọn.

- Dấu { chỉ phần tử bắt buộc phải có

- Dấu [ chỉ phần tử tùy chọn (không bắt buộc)

- Dấu … chỉ thành phần có thể lặp lại từ 0 đến nhiều lần

.1.2 Các phép toán

Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :

KTRUCSU(MA_KTS, HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,

DCHI_LL_KTS)

CHUTHAU(ID_THAU, TEN_THAU, TEL, DCHI_THAU)

CHUNHAN(ID_CHU, TEN_CHU, DCHI_CHU)

CONGNHAN(MA_CN, HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI,

ID_CHU, ID_THAU, NGAY_BD)

THAMGIA(MA_CN, STT_CTR, NGAY_TGIA, SO_NGAY)

THIETKE(MA_KTS, STT_CTR, THU_LAO)

2.2.1 Truy vấn đơn giản:

- Truy vấn dữ liệu từ một bảng, có thể định thứ tự xuất hiện các cột:

SELECT [DISTINC | ALL]

- Sắp xếp kết quả theo một hay nhiều cột:

+) Sử dụng mệnh đề ORDER BY ở cuối lệnh SELECT

ORDER BY <tên cột | STT cột> [ASC | DESC]

[,<tên cột | STT cột> [ASC | DESC], …]

Ví dụ: Sắp xếp kết quả theo cột kinh phí công trình:

SELECT KINH_PHIFROM CGTRINHORDER BY KINH_PHI

2.2.3 Chọn các dòng trong bảng:

- Sử dụng mệnh đề WHERE sau mệnh đề FROM để chọn các dòng thỏa điều kiện: WHERE <điều kiện chọn 1> [AND | OR <điều kiện chọn 2> […] ]

Trang 9

+) Dạng 1: So sánh giá trị thuộc tính với một giá trị cụ thể:

<Cột 1> so sánh <giá trị>

Ví dụ: Hiện thị mã và năm sinh của kiến trúc sư Lê Thanh Tùng:

SELECT MA_KTS, NAMS_KTSFROM KTRUCSU

WHERE HOTEN_KTS = ‘LE THANH TUNG’

+) Dạng 2: so sánh giá trị của các thuộc tính với nhau <cột 1> so sánh <cột 2>

+) Dạng 3: so sánh giá trị thuộc tính với hằng có kiểu tương thích <cột> so sánh

+) Dạng 6: tìm kiếm theo mẫu dạng chuỗi <cột> [NOT] LIKE <chuỗi>

+) Dạng 7: tìm kiếm theo trị thống NULL <cột> IS [NOT] NULL

2.2.4 Kết nối ngoại (outer join)

- Cho phép giữ lại những dòng không thỏa điều kiện kết nối

- Có 3 loại kết nối:

FROM <bảng 1> LEFT JOIN <bảng 2> ON <điều kiện kết nối>

FROM <bảng 1> RIGHT JOIN <bảng 2> ON <điều kiện kết nối>

FROM <bảng 1> FULL JOIN <bảng 2> ON <điều kiện kết nối>

Ví dụ: Hãy liệt kê tên thầu, tên công trình, tỉnh thành kể cả những tên thầu có tỉnh thành trùng với nhau:

SELECT TEN_THAU, TEN_CTR, TINH_THANHFROM CHUTHAU A LEFT JOIN CGTRINH B

Bước đầu tiên để tạo một CSDL là tạo bảng Lệnh CREATE TABLE

dùng tạo bảng với cú pháp như sao:

CREATE TABLE<tên bảng>

(<tên cột 1><loại dữ liệu>[NOT NULL], (<tên cột 2><loại dữ liệu>[NOT NULL],

Trang 10

(<tên cột n><loại dữ liệu>[NOT NULL])

Từ khóa NOT NULL co nghĩa là bắt buộc phải có giá trị trong cột này

Ví dụ: Tạo bảng có tên là chủ nhân:

CREATE TABLE CHUNHAN(

ID_CHU INT NOT NULL,TEN_CHU CHAR(20),DCHI_CHU CHAR(30))

VALUES(‘19’, ‘PHAN THANH HAI’, ‘1876’, ‘NAM’, ‘TP BAC LIEU’, ’23 CAO VAN LAU’)

2.2.7 LỆNH TRUY VẤN SELECT

- Để thi hành một truy vấn đơn giản chúng ta có thể dùng lệnh gồm hai thành phần được gọi là mệnh đề như sau:

SELECT tên cột,danh sách các cột,hay *

FROM tên bảng, hay danh sách các bảng

- Mệnh đề SELECT luôn luôn phải có và sau đó phải kèm theo mệnh đề FROM

2.2.7.1 Hiển thị toàn bộ bảng

Một cách sử dụng SQL đơn giản là hiển thị nội dung của một bảng như lệnh sau đây

SELECT *

FROM tên bảng

Dấu hoa thị (*)thay thế tất cả các cột trong bảng

Ví dụ: Hiện thị toàn bộ nội dung của bảng công nhân:

SELECT*

FROM CONGNHAN

2.2.7.2 Lưu kết quả câu hỏi

ta sử từ khóa INTO<nơi kết xuất> để lưu kết quả câu hỏi.nếu không có INTO, kết quả

có thể in ra màn hình,máy in, tập tin nơi kết xuất có thể là:

 TABLE<tên của table>

 DBF<tên của dbf>

 ARRAY<tên bảng>

 CURSOR<tên cursor>

Ví dụ: Lưu kết quả câu hỏi của bảng công nhân:

SELECT* INTO DBF TAMFROM CONGNHAN

2.2.7.3 Sắp xếp kết quả

Trang 11

SQL cho phép sắp xếp thứ tự kết quả của lệnh SELECT bằng cách bổ sung tiêu chuẩn sắp xếp (ORDER)như ví dụ theo sau:

Ví dụ: Xem tất cả thông tin của bảng tham gia theo thứ tự mã công trình tăng dần:

SELECT*

FROM THAMGIAORDER BY STT_CTR

Bảng các hàm nội tại trong SQL

Ví dụ: Cho biết kinh phí trung bình của các công trình:

SELECT AVG(KINH_PHI) AS KPHITBFROM CGTRINH

Ví dụ: Cho biết tổng kinh phí các công trình:

SELECT SUM(KINH_PHI) AS TONGKPFROM CGTRINH

Ví dụ: Cho biết kinh phí nhỏ nhất của bảng công trình:

SELECT MIN(KINH_PHI) AS KPHINNFROM CGTRINH

Ví dụ: Cho biết kinh phí lớn nhất của bảng công trình:

SELECT MAX(KINH_PHI) AS KPHILNFROM CGTRINH

2.2.9 TRUY VẤN CON

Truy vấn con là kết hợp nhiều truy vấn thứ nhất (truy vấn con) được tự động chuyển qua truy vấn cấp sau (truy vấn chính) và chính truy vấn này sẽ cho ra kết quả sau cùng Thành phần WHERE của truy vấn chính sẽ chứa truy vấn con, cú pháp thông thường như sau:

Truy vấn SELECT <các tên cột>

AVG Cho biết giá trị trung bình của một tập giá trịSUM Cho biết giá trị tổng cộng của một tập giá trịMIN Cho biết giá trị tối thiểu của một tập giá trịMAX Cho biết giá trị tối đa của một tập giá trịCOUNT Cho biết số lượng các phần tử của một tập

Trang 12

chính FROM <các tên bảng>

WHERE <điều kiện> AND <tên cột><toán tử>

Truy vấn con (SELECT <các tên cột>

FROM <tên bảng>

[WHERE <điều kiện>])

Các dạng điều kiện nối với truy vấn con:

- <tên cột> <so sánh> ALL (<select con>): điều kiện đúng khi giá trị của cột so

sánh đúng với giá trị trả về từ select con

- <tên cột> <so sánh> ANY | SOME (<select con >): Điều kiện đúng khi giá trị

của cột so sánh đúng với bất kỳ một giá trị nào trả về từ select con

- <tên cột> [NOT] IN (<select con >): Điều kiện đúng khi giá trị của cột nằm

trong tập hợp các giá trị trả về của select con

- [NOT] EXISTS (<select con>): Điều kiện đúng khi kết quả trả về của select

con

Ví dụ: Hiển tên các kiến trúc sư có cùng phái với Lê Kim Dung:

SELECT HOTEN_KTS, PHAIFROM KTRUCSU

WHERE PHAI =

(SELECT PHAI

FROM KTRUCSUWHERE HOTEN_KTS = ‘LE KIM DUNG’)

2.2.10 GOM NHÓM CÁC DÒNG.

Phần này, chúng ta sẽ làm quen với đặc thù rất mạnh của SQL là khái niệm gom nhóm Đặc tính gom nhóm cho phép chúng ta thực hiện các chức năng trên một nhóm các dòng như là một dòng riêng biệt

Thành phần GROUP BY cho phép gom nhóm các dòng có liên quan Cú pháp như sau:

SELECT<các tên cột>,<hàm-nội-tại(thông-số)>

FROM <tên bảng>

GROUP BY <các tên cột>

Ví dụ: Hiển thị kinh phí trung bình của bảng công trình:

SELECT STT_CTR, AVG(KINH_PHI)FROM CGTRINH

HAVING <điều kiện chọn trên nhóm>

Ví dụ: Tìm các công trình có kinh phí lơn hơn 200:

SELECT STT_CTR, AVG(KINH_PHI) AS KINHPHIFROM CGTRINH

GROUP BY STT_CTR

Ngày đăng: 22/03/2013, 23:28

TỪ KHÓA LIÊN QUAN

w