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

MY SQL DATABASE potx

35 352 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

Định dạng
Số trang 35
Dung lượng 1,73 MB

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

Nội dung

CSDL LÀ GÌ ? Gồm nhiều bảng và mỗi quan hệ giữa chúng  Mỗi bảng chứa nhiều thực thể cùng loại  Mỗi thực thể có nhiều thuộc tính  Mỗi thuộc tính chịu nhiều ràng buộc  Khóa chính có g

Trang 1

CSDL LÀ GÌ ?TẠO, XÓA, SAO LƯU, PHỤC HỒI

TẠO, XÓA, SỬA BẢNG

CÁC RÀNG BUỘCTHAO TÁC DỮ LIỆUTRUY VẤN DỮ LIỆU

TOÁN TỬ LỌCHÀM THƯỜNG DÙNG

Trang 2

THỰC THỂ LÀ GÌ ?

 Thực thể: các vật thể, hình thức có thực liên quan đến bài toán hiện tại.

 Sinh viên, giáo viên, nhân viên…

 Lớp học, phòng ban, nhà xưởng, kho chứa, thư viện…

 Điện thoại, máy tính, quần áo, bánh kẹo…

 DV sửa chữa, DV biểu diễn…

 Đơn đặt hàng, phiếu bán hàng, phiếu chuyển hàng…

 Thuộc tính: được sử dụng để mô tả thực thể

 Sinh viên: họ tên, giới tính, điểm, chuyên ngành…

 Sản phẩm: tên, giá, ngày sản xuất,

Trang 3

Học phí

Điểm

Trang 5

QUAN HỆ GIỮA CÁC THỰC THỂ

 Sinh viên & Lớp học

 Nhân viên & Phòng ban

 Sinh viên $ Môn học

 Sinh viên & Giáo viên

 Tài xế & Xê

 Khách hàng & Chính sách giảm giá

Trang 6

Anh ngữ

Trang 7

CSDL LÀ GÌ ?

 Gồm nhiều bảng và mỗi quan hệ giữa chúng

 Mỗi bảng chứa nhiều thực thể cùng loại

 Mỗi thực thể có nhiều thuộc tính

 Mỗi thuộc tính chịu nhiều ràng buộc

 Khóa chính (có giá trị duy nhất)

 Khóa ngoại (có giá trị của cột khóa ở bảng khác)

 Null (cho phép để trống)

 Miền giá trị (giá trị phải thuộc vào)

 Mỗi bảng có thể có quan hệ với nhiều bảng khác

 Có thể có nhiều cột tham gia vào khóa chính

Trang 8

CSDL LÀ GÌ ?

Trang 9

TẠO, XÓA, SAO LƯU, PHỤC HỒI CSDL

Trang 11

TẠO BẢNG

CREATE TABLE SinhVien

(

MaSV VARCHAR (20) NOT NULL ,

HoTen VARCHAR (50) NOT NULL ,

GioiTinh INT (1) DEFAULT 1 ,

CONSTRAINT SV_PK PRIMARY KEY ( MaSV ) );

Trang 13

RÀNG BUỘC

 PRIMARY KEY : Khóa chính

 CONSTRAINT <tên> PRIMARY KEY (<cột>)

 FOREIGN KEY : Khóa ngoại

 CONSTRAINT <tên> FOREIGN KEY (<cột>)

REFERENCES <bảng> (<cột>) [ON DELETE CASCADE] [ON UPDATE CASCADE]

 CHECK: Kiểm tra

 CONSTRAINT <tên> CHECK (<điều kiện>)

 NOT NULL : Không cho để trống

 DEFAULT : Mặc định

 UNIQUE: Duy nhất

Trang 14

XÓA BẢNG

 DROP TABLE

Trang 15

SỬA ĐỔI CẤU TRÚC

 Thêm cột DiaChi vào bảng SinhVien

ALTER TABLE SinhVien

ADD COLUMN DiaChi VARCHAR(50)

 Xóa cột HoTen khỏi bảng SinhVien

ALTER TABLE SinhVien

DROP COLUMN HoTen

 Thay đổi thuộc tính cột HoTen trong bảng SinhVien

ALTER TABLE SinhVien

ALTER COLUMN HoTen VARCHAR(30)

Trang 16

SỬA ĐỔI CẤU TRÚC

 Thêm ràng buộc khóa ngoại cho cột MaLH bảng SinhVien chỉ đến cột MaLH bảng LopHoc

ALTER TABLE SinhVien

ADD CONSTRAINT SV_FK FOREIGN KEY (MaLH)

REFERENCES LopHoc (MaLH)

ON DELETE CASCADE

ON UPDATE CASCADE

 Xóa ràng buộc có tên SV_FK

ALTER TABLE SinhVien

DROP CONSTRAINT SV_FK

 Định nghĩa ràng buộc kiểm tra cho bảng SinhVien

ALTER TABLE SinhVien

ADD CONSTRAINT SV_CK CHECK (DiemTB < 10)

Trang 17

THAO TÁC DỮ LIỆU

 INSERT INTO: Chèn dữ liệu

INSERT INTO SanPham(MaSP, TenSP, DonGia, NgaySX)

VALUES (1, '8610', 100, '2000-12-31');

 UPDATE: Cập nhật dữ liệu

UPDATE SanPham SET DonGia=123, NgaySX='2009-12-31'

WHERE MaSP > 100;

 DELETE: Xóa dữ liệu

DELETE FROM SanPham WHERE MaSP=123;

Trang 18

TRUY VẤN DỮ LIỆU

 Liệt kê các cột C1, C2, C3

 SELECT C1, C2, C3 FROM T

 Đặt bí danh cho cột C2 là NAME

 SELECT C1, C2 AS ‘ NAME ’, C3 FROM T

 Sử dụng DISTINCT để loại bỏ các hàng trùng dữ liệu

 SELECT DISTINCT C1, C2, C3 FROM T

 Sử dụng LIMIT để hạn chế số lượng bản ghi

 SELECT C1, C2, C3 FROM T LIMIT 3, 20

 Sử dụng dấu sao ( * ) để liệt kê tất cả các cột

 SELECT * FROM T

 Sắp xếp

 SELECT * FROM T ORDER BY C2 DESC

 SELECT * FROM T ORDER BY C2 ASC

Trang 19

LỌC DỮ LIỆU

 Sử dụng WHERE và điều kiện để chỉ ra các bản ghi cần thực hiện cho các câu lệnh UPDATE, DELETE và SELECT

 SELECT * FROM T WHERE <điều kiện>

 DELETE FROM T WHERE <điều kiện>

 UPDATE T SET C2=3, C3=’2010-12-31’ WHERE <điều kiện>

 Sau đây là một số ví dụ về biểu thức lọc WHERE

 Các bản ghi có giá trị của C1 là ‘ABC’

Trang 20

 AND, OR, NOT

 …WHERE NOT (C2>=10 AND C2<=20)

Trang 21

TOÁN TỬ ĐẶC BIỆT (1)

LIKE và ký tự dại diện %, _ và [xyz]

 Các ví dụ

 Cột C1 có chứa chuỗi ‘ABC’ ?

 …WHERE C1 LIKE ‘%ABC%’

 Cột C1 có kết thúc bởi chuỗi ‘ABC’ ?

 …WHERE C1 LIKE ‘%ABC’

 Cột C1 có chứa một trong các ký tự ‘A’, ‘B’ hay ‘C’ ?

 …WHERE C1 LIKE ‘%[ABC]%’

 Cột C1 có chứa chuỗi ‘AB x C’, với x là ký tự bất kỳ ?

 …WHERE C1 LIKE ‘%AB_C%’

Trang 22

TOÁN TỬ ĐẶC BIỆT (2)

 Kiểm tra phạm vi số hoặc ngày

 …WHERE C3 BETWEEN ‘2000-12-31’ AND ‘2010-12-31’

 Kiểm tra tập hợp bất kỳ (số, ngày, chuỗi,…)

 Kiểm tra giá trị không null

 …WHERE C1 IS NOT NULL

Trang 23

HÀM THƯỜNG DÙNG

TỔNG HỢP NGÀY THÁNG XỬ LÝ CHUỖI KHÁC

Trang 24

HÀM TỔNG HỢP

 SUM(biểu thức) dùng để tính tổng

 SELECT SUM(C2) AS ‘Tong’ FROM T

 MIN(biểu thức) dùng để lấy giá trị nhỏ nhất

 SELECT MIN(C2) AS ‘NhoNhat’ FROM T

 MAX(biểu thức) dùng để lấy giá trị lớn nhất

 SELECT MAX(C2) AS ‘LonNhat’ FROM T

 AVG(biểu thức) dùng để tính giá trị trung bình

 SELECT AVG(C2) AS ‘TrungBinh’ FROM T

 COUNT(cột hoặc *) dùng để đếm số bản ghi

 SELECT COUNT(*) AS ‘SoLuong’ FROM T

Trang 25

HÀM XỬ LÝ CHUỖI

 UPPER(chuỗi) đổi sang chữ hoa

 SELECT UPPER(C1) FROM T

 LOWER(chuỗi) đổi sang chữ thường

 SELECT C3 FROM T WHERE LOWER(C1)=‘xyz’

 LTRIM(chuỗi) cắt bỏ ký tự trắng bên trái chuỗi

 SELECT LTRIM(C1) FROM T

 RTRIM(chuỗi) cắt bỏ ký tự trắng bên phải chuỗi

 SELECT RTRIM(C1) FROM T

 TRIM(chuỗi) cắt bỏ ký tự trắng 2 đầu chuỗi

 SELECT TRIM(C1) FROM T

 CONCAT(‘chuỗi 1’, ‘chuỗi 2’) ghép 2 chuỗi

 SELECT CONCAT(‘SV:’, C1) AS MaSV FROM T

Trang 26

HÀM XỬ LÝ NGÀY

 CURDATE() lấy ngày hiện tại

SELECT * FROM T WHERE C3 < CurDate ()

 Lấy năm-tháng-ngày và giờ-phút-giây

 DATE(ngày) lấy năm-tháng-ngày

 TIME(ngày) lấy giờ-phút-giây

 Các hàm lấy ngày, tháng, năm, giờ, phút, giây

 YEAR(ngày) lấy năm

 MONTH(ngày) lấy tháng

 HOUR(ngày) lấy giờ

 MINUTE(ngày) lấy phút

 SECOND(ngày) lấy giây

SELECT SUM(C2) FROM T WHERE Year(C3 )=2010

Trang 27

CÁC HÀM KHÁC

 FORMAT(số, <số lượng số lẻ>) định dạng số

 SELECT C1, FORMAT(C2, 3) AS CC2 FROM T

 DATE_FORMAT(ngày, ‘%d%m%Y’) định dạng ngày

 SELECT FORMAT(C3, ‘%d-%m-%Y’) AS CC3 FROM T

 IF(<điều kiện>, <gtrị đúng>, <gtrị sai>) chọn 1 trong 2

 SELECT IF(C1 IS NULL, ‘SV00’, C1) AS CC1 FROM T

Trang 28

IF(Diem<5, 'Yếu', IF(Diem<7.5, 'Trung Bình', 'Giỏi')) AS ‘XẾP LOẠI',

DATE_FORMAT(NgaySinh, "%d-%M-%Y") AS 'NGÀY SINH'

FROM SinhVien

ORDER BY Diem DESC

LIMIT 0, 30;

Trang 29

COUNT(MaSV) AS "SỐ LƯỢNG",

MAX(Diem) AS "ĐIỂM CAO NHẤT",

AVG(Diem) AS "ĐIỂM TRUNG BÌNH",

MAX(NgaySinh) AS "SV TRẺ NHẤT"

 FROM SinhVien

GROUP BY MaLH

Cột tự do (không sử dụng hàm tổng hợp) phải là cột nhóm (phải ở trong GROUP

BY)

Cột tự do (không sử dụng hàm tổng hợp) phải là cột nhóm (phải ở trong GROUP

BY)

Trang 30

GROUP BY…HAVING

 SELECT

 MaLH AS "MÃ LỚP",

COUNT(MaSV) "SỐ LƯỢNG",

MAX(Diem) "ĐIỂM CAO NHẤT",

AVG(Diem) "ĐIỂM TRUNG BÌNH",

đó

WHERE <ĐK>

là điều kiện chung (toàn bộ)

Chỉ hiện các nhóm thỏa điều kiện này

Trang 31

JOIN KẾT NỐI 2 BẢNG

INNER JOIN

KẾT NỐI TRONG KẾT NỐI NGOÀI TRÁILEFT OUTER JOIN KẾT NỐI NGOÀI PHẢIRIGHT OUTER JOIN

Lấy các bản ghi của

bảng phải và bảng trái

có cùng giá trị của cột

kết nối

Lấy tất cả các bản ghi của bảng trái và bảng phải có cùng giá trị của cột kết nối Giá trị NULL cho các cột bảng

phải

Lấy tất cả các bản ghi của bảng phải và bảng trái có cùng giá trị của cột kết nối Giá trị NULL cho các cột bảng

trái

Trang 32

[INNER] JOIN

 SELECT t.HoTen, p.TenLop FROM SinhVien t JOIN LopHoc p ON t.MaLH=p.MaLH

 SELECT t.HoTen, p.TenLop FROM SinhVien t,

LopHoc p WHERE t.MaLH=p.MaLH

Trang 33

LEFT [OUTER] JOIN

 SELECT t.HoTen, p.TenLop FROM SinhVien t LEFT JOIN LopHoc p ON t.MaLH=p.MaLH

Trang 34

RIGHT [OUTER] JOIN

 SELECT t.HoTen, p.TenLop FROM SinhVien t RIGHT JOIN LopHoc p ON t.MaLH=p.MaLH

Trang 35

TRUY VẤN CON

 SELECT * FROM SinhVien WHERE MaLH IN (SELECT MaLH FROM LopHoc WHERE Year(NgayKG)=2000)

 SELECT *, (SELECT COUNT(*) FROM SinhVien sv

WHERE lh.MaLH=sv.MaLH) AS SoHV FROM LopHoc lh

Ngày đăng: 05/07/2014, 04:20

HÌNH ẢNH LIÊN QUAN

Bảng phải và bảng trái - MY SQL DATABASE potx
Bảng ph ải và bảng trái (Trang 31)

TỪ KHÓA LIÊN QUAN