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

Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"

55 405 1
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 đề SQL & MS. Access
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Chương
Thành phố Hà Nội
Định dạng
Số trang 55
Dung lượng 194 KB

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

Nội dung

 Không thuộc tiêu chuẩn ANSI Có trong hầu hết các hệ QTCSDL thương mại  Tăng tốc độ truy xuất dữ liệu  Không cho phép giá trị của cột rỗng tại bất kỳ hàng nào  Thường dùng với khóa

Trang 1

KỸ THUẬT PHẦN MỀM

Chương IV: SQL & MS ACCESS

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Khoa Điện tử Viễn Thông – Bộ môn Điện tử Tin học

Trang 2

Chương IV SQL & MS Access

Trang 3

4.1 SQL

1 Giới thiệu

SQL-Structure Query Language

Ngôn ngữ truy xuất CSDL quan hệ

Là phương tiện được sử dụng để trao đổi với

DBMS

Câu lệnh giống ngôn ngữ tiếng Anh (dễ đọc, dễ hiểu hơn tiếng Anh).

Trang 4

4.1 SQL

Là một ngôn ngữ phi thủ tục

=>NSD không cần phải quan tâm đến việc dữ liệu được lưu trữ thật sự như thế nào, ở đâu và có thể lấy ra bằng cách nào.

Cho phép truy vấn và khai thác dữ liệu một cách linh hoạt

Trang 5

4.1 SQL

2 cách thực hiện câu lệnh SQL:

Tương tác (Dòng lệnh)

SQL nhúng.

Trang 6

4.1 SQL

* Lịch sử SQL

IBM’lab, San Jose, California – 1970: phát triển một

hệ quản trị CSDL quan hệ thực nghiệm mà có thể dần dần tạo ra một sản phẩm thương mại.

Một dự án được bắt đầu từ năm 1974 – Hệ thống R

Một ngôn ngữ được gọi là Sequel (Structure English QUEry Language) được chọn là ngôn ngữ CSDL quan

hệ cho hệ thống R.

Sequel đã được viết gọn lại thành SQL

Trang 7

là một sản phẩm thương mại: SQL/DS chạy trên môi

trường hệ điều hành DOS/VSE.

1983: DB2 ra đời và phát triển nhanh chóng

Trang 8

4.1 SQL

Oracle

ANSI

Trang 9

4.1 SQL

2 Phân loại SQL

DDL – Data Definition Language

Làm việc với cấu trúc CSDL

DML – Data Manipulation Language

Làm việc với dữ liệu thực sự được lưu trữ

DCL – Data Control Language

Trang 10

4.1 SQL

3 Các lệnh SQL

Ví dụ CSDL gồm 3 bảng:

Trang 12

4.1 SQL

CREATE TABLE <TableName> (

Column1 DataType [(width [,dec.])] [NOT NULL | UNIQUE |INDEX], Column2 DataType [(width [,dec.])] [NOT NULL | UNIQUE |INDEX],

……

Columnn DataType [ (width [,dec.])] [NOT NULL | UNIQUE |INDEX]

);

Trang 15

Không thuộc tiêu chuẩn ANSI

Có trong hầu hết các hệ QTCSDL thương mại

Tăng tốc độ truy xuất dữ liệu

Không cho phép giá trị của cột rỗng tại bất kỳ hàng nào

Thường dùng với khóa chính

Trang 16

4.1 SQL

CREATE TABLE < TableName > (

… PRIMARY KEY (columnname) );

CREATE TABLE <TableName> (

… FOREIGN KEY (columnname) REFERENCES <RefTableName> );

Trang 17

4.1 SQL

CREATE TABLE SPECS (

MD_NUM INTEGER , MPG INTERGER , RADIO CHAR(3) ,

ENGINE CHAR(7) );

CREATE TABLE STOCK (

MD_NUM INTEGER , QTY INTEGER , PRICE INTEGER );

Trang 18

4.1 SQL

Thêm cột:

ALTER TABLE <TableName>

ADD (ColumnName Datatype(width,dec)

Trang 19

DROP TABLE CARS;

DROP TABLE SPECS;

Trang 20

4.1 SQL

Trang 21

4.1 SQL

Thêm DL vào bảng: CARS

Trang 22

4.1 SQL

Tên bảng cần thêm dữ liệu

Tên cột chứa dữ liệu

Giá trị dữ liệu cần thêm

Chú ý: kiểu dữ liệu của các cột phải đúng

INSERT INTO TABLE <TableName> (Field1, Field2, …., Fieldn) VALUES (Value1, Value2, …, Valuen)

Trang 23

4.1 SQL

Cú pháp rút gọn

Bỏ qua phần khai báo tên trường nếu thứ tự và số lượng trường giống cấu trúc bảng.

INSERT INTO TABLE <TableName>

VALUES (Value1, Value2, …, Valuen)

Trang 24

4.1 SQL

Thêm thông tin vào bảng SPECS

Trang 25

4.1 SQL

Trang 26

4.1 SQL

c Lệnh “SELECT”: Lấy thông tin từ bảng

Ví dụ: lấy thông tin từ bảng CARS

Kết quả:

Trang 28

4.1 SQL

Có thể lấy DL từ nhiều bảng bằng cách đặt danh sách bảng sau FROM

Kết quả: tích đề các của giữa các bản ghi của các bảng.

Xác định điều kiện WHERE

Trang 29

4.1 SQL

Lấy ra tất cả thông tin (giá trị của mọi cột) của bảng:

Thứ tự cột dữ liệu trả về giống thứ tự khi tạo bảng

Danh sách cột sau từ khóa SELECT:

Trang 30

4.1 SQL

Loại bỏ các hàng dữ liệu giống nhau

Ví dụ:

SELECT DISTINCT ma_lop FROM SinhVien

Được dùng để kiểm tra sự xuất hiện của các giá trị của cột trong bảng mà không quan tâm đến việc giá trị đó xuất hiện bao nhiêu lần

Trang 31

4.1 SQL

Cột tính toán:

SELECT mahs, ((D1T*2+D15+DM)/4*2+THI)/3 FROM Diem

=> Trả về danh sách mã học sinh và điểm trung bình học kỳ của từng học sinh

Trang 32

SELECT * FROM SinhVien

WHERE TenSV=‘Nguyễn Văn A’

=> Lấy ra thông tin của tất cả SV có tên là ‘Nguyễn Văn A’

Trang 33

4.1 SQL

Các toán tử kiểm tra giá trị:

=, >=, <=, <>, >, <

SELECT * FROM DIEM WHERE diemthi BETWEEN 5 AND 9

SELECT * FROM HocSinh WHERE DaoDuc BETWEEN ‘A’ AND ‘C’ SELECT * FROM HocSinh WHERE Ten BETWEEN ‘N’ AND ‘T’

Biểu thức tương đương:

colname BETWEEN minvalue AND maxvalue

colname>=minvalue AND colname<=maxvalue

Trang 34

4.1 SQL

Kiểm tra là phần tử của tập hợp: IN

SELECT * FROM Diem WHERE DiemThi IN (2,3,4) SELECT * FROM Diem WHERE mahs IN (‘A1’,’B1’,’C1’)

Biểu thức tương đương:

Colname IN (value1, value2, …) Colname = value1 OR Colname = Value2 …

Trang 35

4.1 SQL

Toán tử so sánh theo mẫu: LIKE

LIKE được dùng để kiểm tra một cột kiểu chuỗi kỹ tự (CHAR, VCHAR) có giá trị theo một mẫu xác định nào đó.

Các ký tự đại diện:

‘_’ : đại diện cho 1 và đúng 1 ký tự

‘%’: đại diện cho một nhóm ký tự bất kỳ (kể cả chuỗi rỗng)

Trang 36

4.1 SQL

Ví dụ:

SELECT * FROM SinhVien WHERE malop LIKE ‘DTVT_’

SELECT * FROM SinhVien WHERE malop LIKE ‘DTVT%’

SELECT * FROM SinhVien WHERE malop LIKE ‘ VT%’

SELECT * FROM SinhVien WHERE malop LIKE ‘%’

ESCAPE: Dùng để coi các ký tự đại diện _ % là giá trị thật sự.

SELECT * FROM Subjects WHERE subname LIKE ‘$_VXL$%’

ESCAPE ‘$’

=> Trả ra danh sách môn học có giá trị cột subname là ‘_VXL%’

Trang 37

4.1 SQL

Xắp sếp kết quả trả về: ORDER BY

SELECT * FROM SinhVien

ORDER BY MaLop, TenSV ASC, NgaySinh DESC

=> Kết quả trả về là danh sách sinh viên được sắp xếp theo mã lớp tăng dần, tên sinh viên tăng dần và ngày sinh giảm dần.

Trang 39

SELECT COUNT(Dept_no) FROM Staffs

Đếm số lượng nhân viên đã được gán giá trị Dept_no

SELECT COUNT(DISTINCT Dept_no) FROM Staffs

Đếm số lượng mã phòng sử dụng

SELECT COUNT(*) FROM Staffs

Đếm số nhân viên (số bản ghi hiện có trong bảng Staffs)

Trang 40

4.1 SQL

Tính tổng giá trị của cột

Kiểu dữ liệu của cột phải là kiểu số

Đối số có thể là một biểu thức mà kết quả trả về là kiểu số.

Ví dụ:

Tính tổng giá trị cột pay trong bảng Salary

Tính tổng giá trị cột pay+1500 của bảng Salary

Trang 41

4.1 SQL

Tính trung bình cộng giá trị của cột

Kiểu dữ liệu của cột phải là kiểu số

Ví dụ:

Tính trung bình cộng giá trị cột pay trong bảng Salary

Trang 42

Tìm giá trị điểm nhỏ nhất trong bảng Marks

Trang 43

Tìm giá trị điểm lớn nhất trong bảng Marks

Trang 45

SELECT MaSV, AVG(Diem) FROM DiemThi

GROUP BY MaSV HAVING AVG(Diem)>=50

=> Lấy ra danh sách sinh viên và điểm trung bình của những sinh viên có điểm trung bình >=50

Trang 46

4.1 SQL

Liên kết bảng:

Lấy dữ liệu từ nhiều bảng

Xác định liên kết bằng điều kiện WHERE

Ví dụ:

SELECT SV.TenSV, Lop.TenLop FROM SV, Lop

Trả ra tích đề các của 2 bảng

SELECT SV.TenSV, Lop.TenLop FROM SV, Lop

WHERE SV.MaLop = Lop.MaLop

Trả ra danh sách tên SV và tên lớp SV đang theo học

Trang 47

4.1 SQL

SELECT SV.TenSV, Lop.TenLop

FROM SV INNER JOIN Lop ON SV.MaLop = Lop.MaLop

Trang 48

4.1 SQL

Truy vấn lồng nhau: nested query; sub query

Ví dụ:

SELECT * FROM SanPham WHERE MaSP = (SELECT MaSP

FROM HoaDon Where MaNV=‘NV1’ AND NgayHD=’25-10-2006’)

Lấy ra thông tin về sản phẩm do nhân viên có mã ‘NV1’ bán vào ngày

’25-10-2006’ (Giả sử trong ngày hôm đó nhân viên ‘NV1’ chỉ bán được

1 sản phẩm)

SELECT * FROM SanPham WHERE MaSP IN (SELECT MaSP

FROM HoaDon Where NgayHD=’25-10-2006’)

Lấy ra danh sách và thông tin về sản phẩm được bán vào ngày 2006’ bởi tất cả nhân viên

Trang 49

’25-10-4.1 SQL

SELECT * FROM Depts

WHERE DeptCode IN

(SELECT DISTINCT DeptCode FROM Staffs)

Lấy ra thông tin chi tiết của các phòng có nhân viên làm việc

Trang 50

4.1 SQL

Nối các kết quả của các câu truy vấn: UNION

Các câu truy vấn phải trả về kết quả có cùng cấu trúc.

Kết quả cuối cùng là hợp của tất cả kết quả của các câu truy vấn

Loại bỏ các dòng dữ liệu giống nhau

Các câu truy vấn không được có ORDER BY

Các câu truy vấn không được dùng các hàm tổng hợp

Trang 51

4.1 SQL

Trang 52

4.1 SQL

giá trị dữ liệu.

Chú ý: Where

Trang 54

4.1 SQL

Không có WHERE => All records affected.

DELETE [FROM] <TableName> WHERE <Expression>

Trang 55

4.1 SQL

e Views (Virtual tables)

Nội dung lấy từ các bảng cơ bản

Chỉ lưu trữ cấu trúc trên đĩa (không thực sự lưu trữ dữ liệu nào cả).

Khai thác DL từ View

Ngày đăng: 19/10/2013, 17:15

HÌNH ẢNH LIÊN QUAN

 A) Lệnh tạo bảng - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
nh tạo bảng (Trang 2)
 a. Lệnh “CREATE TABLE” – Tạo bảng - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
a. Lệnh “CREATE TABLE” – Tạo bảng (Trang 10)
 Tạo bảng CARS - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
o bảng CARS (Trang 11)
 Tên bảng: &lt; TableName &gt; - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
n bảng: &lt; TableName &gt; (Trang 13)
 Thay đổi cấu trúc bảng: ALTER TABLE - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
hay đổi cấu trúc bảng: ALTER TABLE (Trang 18)
Thêm DL vào bảng: CARS - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
h êm DL vào bảng: CARS (Trang 21)
 Thêm thông tin vào bảng SPECS - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
h êm thông tin vào bảng SPECS (Trang 24)
 Thêm thông tin vào bảng STOCK - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
h êm thông tin vào bảng STOCK (Trang 25)
 c. Lệnh “SELECT”: Lấy thông tin từ bảng - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
c. Lệnh “SELECT”: Lấy thông tin từ bảng (Trang 26)
 Thứ tự cột dữ liệu trả về giống thứ tự khi tạo bảng - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
h ứ tự cột dữ liệu trả về giống thứ tự khi tạo bảng (Trang 29)
⇒ Tính tổng giá trị cột pay trong bảng Salary - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
nh tổng giá trị cột pay trong bảng Salary (Trang 40)
⇒ Tìm giá trị điểm nhỏ nhất trong bảng Marks - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
m giá trị điểm nhỏ nhất trong bảng Marks (Trang 42)
⇒ Tìm giá trị điểm lớn nhất trong bảng Marks - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
m giá trị điểm lớn nhất trong bảng Marks (Trang 43)
 Nội dung lấy từ các bảng cơ bản - Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access"
i dung lấy từ các bảng cơ bản (Trang 55)

TỪ KHÓA LIÊN QUAN