Sử dụng nhiều hơn một bảng

Một phần của tài liệu Tài liệu Tài liệu tham khảo: Ngôn ngữ lập trình PHP doc (Trang 99 - 100)

• Bảng về con vẹt chỉ giữ thống kê là bạn có những con vẹt nào .Nếu bạn muốn ghi các thông tin khác về chúng ,nh− là các sự kiện trong cuộc sống của chúng nh− việc đến gặp bác sĩ thú y ,hoặc các lứa đẻ đ−ợc sinh khi nào ,bạn cần một bảng khác ,vậy bảng này nên cần gì nó cần chứa tên con vẹt ,vì vậy bạn có thể biết mỗi sự kiện nói đến con vật nào

Cần ngày sinh để bạn biết đ−ợc sự kiện đẵ xảy ra khi nào Cần một tr−ờng để mô tả sự kiện

Nếu bạn muốn có thể phân loại đ−ợc các sự kiện thì việc có một tr−ờng kiểu sự kiện rất hữu ích

• Khi những yêu cầu đó đ−ợc đ−a ra việc trình bày CREATE TABLE cho bảng co thể nh− sau:

mysql> CREATE TABLE event (name VARCHAR(20), date DATE,

->type VARCHAR(15), remark VARCHAR(255));

• Với bảng về con vẹt ,việc chèn các bản ghi cần tiến hành bằng việc thiết lập các vùng để l−u trữ thông tin.

Fluffy 1995-05-15 litter 4 kittens, 3 female, 1 male Buffy 1993-06-23 litter 5 puppies, 2 female, 3 male

Buffy 1991-10-12 litter 3 puppies, 3 female

Chirpy 1995-05-15 vet needed beak straightened

Slim 1998-08-28 vet broken rib

Bowser 1998-12-09 kennel

Fang 1993-06-23 kennel

Fang 1998-12-09 birthday Gave him a new chew toy

Claws 1998-08-28 birthday Gave him a new flea collar

• Chèn các bản ghi nh− sau:

mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;

• Dựa trên những gì mà bạn học đ−ợc từ các câu lệnh chạy bảng “pet” bạn có thể thực hiện việc gọi tên trên các bản ghi trong bảng event,nguyên tắc vẫn không thay đổi .Nh−ng khi bản thân bảng event không đủ để trả lời các câu hỏi mà bạn có thể hỏi ?

• Giả sử bạn muốn tìm tuổi của mỗi con vật khi nó có lứa đẻ .Bảng evevt chỉ ra điều đó xuất hiện khi nào ,nh−ng để tính toán tuổi của con mẹ bạn cần ngày sinh của nó .Nó đ−ợc l−a trữ trong bảng pet,nên bạn cần cả hai bảng cho câu lệnh này:

mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark

-> FROM pet, event

->WHERE pet.name = event.name AND type = "litter";

• Có rất nhiều điều đáng l−u ý về câu lệnh này

Mệnh đề FROM ghi vào danh sách cả hai bảng khi câu lệnh cần lấy thông tin từ cả hai

Khi kết hợp thông tin từ các bảng khác nhau ,bạn cần định rõ có bao nhiêu bản ghi và mỗi bản ghi có thể đ−ợc nối với các bản ghi của bản kia.Điều đó rất dễ khi cả hai bản ghi đều có cùng số cột.Câu lệnh sử dụngWHERE dùng để nói các bản ghi ở hai bảng dựa trên giá trị tên

Khi tên cột xuất hiện cả ở hai bảng ,bạn phải xác định về bản nào bạn tìm đến kiểu ám chỉ cột .Điều này đ−ợc thực hiện bằng việc quy chiếu tên của bảng với tên của cột

• Bạn không nhất thiết phải có hai bảng khác nhau để tiến hành liên kết .Đôi khi việc tự liên kết lại rấ hữu ích ,nếu bạn muốn

Một phần của tài liệu Tài liệu Tài liệu tham khảo: Ngôn ngữ lập trình PHP doc (Trang 99 - 100)