Tạo nhiều bảng MySQL

Đôi khi, quá trình xây dựng và sử dụng truy vấn trong Access chỉ đơn giản là chọn các trường từ bảng, có thể áp dụng một số tiêu chí, rồi xem kết quả. Nhưng điều gì sẽ xảy ra nếu, như thường xảy ra, dữ liệu bạn cần được trải ra trong nhiều bảng? . Chủ đề này khám phá một số tình huống trong đó bạn lấy dữ liệu từ nhiều bảng và trình bày cách bạn thực hiện

Bạn muốn làm gì?

  • Sử dụng dữ liệu từ một bảng có liên quan để nâng cao thông tin trong truy vấn của bạn

  • Kết nối dữ liệu trong hai bảng bằng cách sử dụng mối quan hệ của chúng với bảng thứ ba

  • Xem tất cả các bản ghi từ hai bảng tương tự

Sử dụng dữ liệu từ một bảng có liên quan để nâng cao thông tin trong truy vấn của bạn

Bạn có thể gặp trường hợp truy vấn dựa trên một bảng cung cấp cho bạn thông tin bạn cần, nhưng việc lấy dữ liệu từ một bảng khác sẽ giúp làm cho kết quả truy vấn rõ ràng hơn và hữu ích hơn. Ví dụ: giả sử bạn có danh sách ID nhân viên xuất hiện trong kết quả truy vấn của mình. Bạn nhận ra rằng sẽ hữu ích hơn nếu xem tên nhân viên trong kết quả, nhưng tên nhân viên nằm trong một bảng khác. Để tên nhân viên xuất hiện trong kết quả truy vấn của bạn, bạn cần đưa cả hai bảng vào truy vấn của mình

Sử dụng Trình hướng dẫn truy vấn để tạo truy vấn từ bảng chính và bảng liên quan

  1. Đảm bảo rằng các bảng có mối quan hệ xác định trong cửa sổ Mối quan hệ

    Thế nào?

    1. Trên tab Công cụ Cơ sở dữ liệu, trong nhóm Hiện/Ẩn, hãy bấm vào Mối quan hệ

    2. Trên tab Thiết kế, trong nhóm Mối quan hệ, bấm vào Tất cả Mối quan hệ

    3. Xác định các bảng cần có mối quan hệ xác định

      • Nếu các bảng hiển thị trong cửa sổ Mối quan hệ, hãy kiểm tra xem mối quan hệ đã được xác định chưa

        Một mối quan hệ xuất hiện dưới dạng một đường kết nối hai bảng trên một trường chung. Bạn có thể bấm đúp vào một đường quan hệ để xem những trường nào trong bảng được kết nối bởi mối quan hệ

      • Nếu các bảng không hiển thị trong cửa sổ Mối quan hệ, bạn phải thêm chúng

        Trên tab Thiết kế, trong nhóm Hiện/Ẩn, hãy bấm vào Tên Bảng

        Bấm đúp vào từng bảng bạn muốn hiển thị, rồi bấm Đóng

    4. Nếu bạn không tìm thấy mối quan hệ giữa hai bảng, hãy tạo một mối quan hệ bằng cách kéo trường từ một trong các bảng sang trường trên bảng kia. Các trường mà bạn tạo mối quan hệ giữa các bảng phải có kiểu dữ liệu giống hệt nhau

      Ghi chú. Bạn có thể tạo mối quan hệ giữa một trường thuộc loại dữ liệu Số tự động và một trường thuộc loại dữ liệu Số, nếu trường đó có kích thước trường là số nguyên dài. Điều này thường xảy ra khi bạn đang tạo mối quan hệ một-nhiều

      Hộp thoại Chỉnh sửa Mối quan hệ xuất hiện

    5. Nhấn Create để tạo mối quan hệ

      Để biết thêm thông tin về các tùy chọn bạn có khi tạo mối quan hệ, hãy xem bài viết Tạo, chỉnh sửa hoặc xóa mối quan hệ

    6. Đóng cửa sổ Mối quan hệ

  2. Trên tab Tạo, trong nhóm Truy vấn, bấm vào Trình hướng dẫn Truy vấn.  

  3. Trong hộp thoại Truy vấn mới, bấm Trình hướng dẫn truy vấn đơn giản, rồi bấm OK

  4. Trong hộp tổ hợp Bảng/Truy vấn, bấm vào bảng có chứa thông tin cơ bản mà bạn muốn đưa vào truy vấn của mình

  5. Trong danh sách Trường có sẵn, bấm vào trường đầu tiên bạn muốn đưa vào truy vấn của mình, rồi bấm vào nút mũi tên phải duy nhất để di chuyển trường đó vào danh sách Trường đã chọn. Thực hiện tương tự với từng trường bổ sung từ bảng mà bạn muốn đưa vào truy vấn của mình. Đây có thể là các trường mà bạn muốn trả về trong đầu ra của truy vấn hoặc các trường mà bạn muốn sử dụng để giới hạn các hàng trong đầu ra bằng cách áp dụng tiêu chí

  6. Trong hộp tổ hợp Bảng/Truy vấn, bấm vào bảng có chứa dữ liệu liên quan mà bạn muốn sử dụng để nâng cao kết quả truy vấn của mình

  7. Thêm các trường mà bạn muốn sử dụng để nâng cao kết quả truy vấn của mình vào danh sách Trường đã chọn, rồi bấm vào Tiếp theo

  8. Bên dưới Bạn muốn truy vấn chi tiết hay tóm tắt?, bấm vào Chi tiết hoặc Tóm tắt

    Nếu bạn không muốn truy vấn của mình thực hiện bất kỳ hàm tổng hợp nào (Sum, Avg, Min, Max, Count, StDev hoặc Var), hãy chọn một truy vấn chi tiết. Nếu bạn muốn truy vấn của mình thực hiện chức năng tổng hợp, hãy chọn truy vấn tóm tắt. Sau khi bạn lựa chọn, hãy nhấp vào Tiếp theo

  9. Nhấn Hoàn thành để xem kết quả

Một ví dụ sử dụng cơ sở dữ liệu mẫu Northwind

Trong ví dụ sau, bạn sử dụng Trình hướng dẫn truy vấn để tạo truy vấn hiển thị danh sách đơn hàng, phí vận chuyển cho từng đơn hàng và tên của nhân viên xử lý từng đơn hàng

Ghi chú. Ví dụ này liên quan đến việc sửa đổi cơ sở dữ liệu mẫu Northwind. Bạn có thể muốn tạo một bản sao dự phòng của cơ sở dữ liệu mẫu Northwind và sau đó làm theo ví dụ này bằng cách sử dụng bản sao dự phòng đó

Sử dụng Trình hướng dẫn truy vấn để tạo truy vấn

  1. Mở cơ sở dữ liệu mẫu Northwind. Đóng biểu mẫu đăng nhập

  2. Trên tab Tạo, trong nhóm Truy vấn, bấm vào Trình hướng dẫn Truy vấn.  

  3. Trong hộp thoại Truy vấn mới, bấm Trình hướng dẫn truy vấn đơn giản, rồi bấm OK

  4. Trong hộp tổ hợp Bảng/Truy vấn, hãy bấm vào Bảng. đơn đặt hàng

  5. Trong danh sách Trường có sẵn, bấm đúp vào OrderID để di chuyển trường đó sang danh sách Trường đã chọn. Bấm đúp vào Phí vận chuyển để di chuyển trường đó vào danh sách Trường đã chọn

  6. Trong hộp tổ hợp Bảng/Truy vấn, hãy bấm vào Bảng. Người lao động

  7. Trong danh sách Trường có sẵn, bấm đúp vào Tên để di chuyển trường đó sang danh sách Trường đã chọn. Bấm đúp vào Họ để di chuyển trường đó vào danh sách Trường đã chọn. Bấm tiếp

  8. Vì bạn đang tạo danh sách tất cả các đơn đặt hàng nên bạn muốn sử dụng truy vấn chi tiết. Nếu bạn đang tính tổng phí vận chuyển theo nhân viên hoặc thực hiện một số chức năng tổng hợp khác, bạn sử dụng truy vấn tóm tắt. Bấm vào Chi tiết (hiển thị mọi trường của mọi bản ghi), rồi bấm vào Tiếp theo

  9. Nhấn Hoàn thành để xem kết quả

Truy vấn trả về một danh sách các đơn đặt hàng, mỗi đơn hàng có phí vận chuyển và họ và tên của nhân viên đã xử lý đơn hàng đó

Đầu trang

Kết nối dữ liệu trong hai bảng bằng cách sử dụng mối quan hệ của chúng với bảng thứ ba

Thông thường, dữ liệu trong hai bảng có liên quan với nhau thông qua bảng thứ ba. Đây thường là trường hợp vì dữ liệu giữa hai bảng đầu tiên có liên quan trong mối quan hệ nhiều-nhiều. Thông thường, cách thiết kế cơ sở dữ liệu tốt là chia mối quan hệ nhiều-nhiều giữa hai bảng thành hai mối quan hệ một-nhiều liên quan đến ba bảng. Bạn làm điều này bằng cách tạo một bảng thứ ba, được gọi là bảng nối hoặc bảng mối quan hệ, có khóa chính và khóa ngoại cho từng bảng khác. Sau đó, mối quan hệ một-nhiều được tạo giữa mỗi khóa ngoại trong bảng nối và khóa chính tương ứng của một trong các bảng khác. Trong những trường hợp như vậy, bạn cần bao gồm cả ba bảng trong truy vấn của mình, ngay cả khi bạn chỉ muốn truy xuất dữ liệu từ hai trong số chúng

Tạo truy vấn chọn bằng cách sử dụng các bảng có mối quan hệ nhiều-nhiều

  1. Trên tab Tạo, trong nhóm Truy vấn, bấm vào Thiết kế Truy vấn.  

  2. Bấm đúp vào hai bảng có chứa dữ liệu bạn muốn đưa vào truy vấn của mình và cả bảng nối liên kết chúng, rồi bấm Đóng

    Cả ba bảng đều xuất hiện trong không gian làm việc thiết kế truy vấn, được nối trên các trường thích hợp

  3. Bấm đúp vào từng trường mà bạn muốn sử dụng trong kết quả truy vấn của mình. Sau đó, mỗi trường sẽ xuất hiện trong lưới thiết kế truy vấn

  4. Trong lưới thiết kế truy vấn, hãy sử dụng hàng Tiêu chí để nhập tiêu chí trường. Để sử dụng tiêu chí trường mà không hiển thị trường trong kết quả truy vấn, hãy bỏ chọn hộp kiểm trong hàng Hiển thị cho trường đó

  5. Để sắp xếp kết quả dựa trên các giá trị trong một trường, trong lưới thiết kế truy vấn, hãy bấm vào Tăng dần hoặc Giảm dần (tùy thuộc vào cách bạn muốn sắp xếp bản ghi) trong hàng Sắp xếp cho trường đó

  6. Trên tab Thiết kế, trong nhóm Kết quả, bấm vào Chạy

    Access hiển thị kết quả truy vấn trong dạng xem Biểu dữ liệu

Một ví dụ sử dụng cơ sở dữ liệu mẫu Northwind

Ghi chú. Ví dụ này liên quan đến việc sửa đổi cơ sở dữ liệu mẫu Northwind. Bạn có thể muốn tạo một bản sao dự phòng của cơ sở dữ liệu mẫu Northwind, rồi làm theo ví dụ này bằng cách sử dụng bản sao dự phòng

Giả sử bạn có một cơ hội mới. một nhà cung cấp ở Rio de Janeiro đã tìm thấy trang Web của bạn và có thể muốn hợp tác kinh doanh với bạn. Tuy nhiên, họ chỉ hoạt động ở Rio và São Paulo lân cận. Họ cung cấp mọi loại sản phẩm thực phẩm mà bạn môi giới. Họ là một doanh nghiệp khá lớn và muốn bạn đảm bảo rằng bạn có thể cung cấp cho họ quyền tiếp cận đủ doanh số tiềm năng để làm cho nó đáng giá. ít nhất 20.000 đô la R. 00 mỗi năm doanh thu (khoảng $9.300. 00). Bạn có thể cung cấp cho họ thị trường mà họ yêu cầu?

Dữ liệu bạn cần để trả lời câu hỏi này được tìm thấy ở hai nơi. bảng Khách hàng và bảng Chi tiết Đơn hàng. Các bảng này được liên kết với nhau bằng bảng Đơn hàng. Mối quan hệ giữa các bảng đã được xác định. Trong bảng Đơn hàng, mỗi đơn hàng chỉ có thể có một khách hàng, liên quan đến bảng Khách hàng trên trường ID khách hàng. Mỗi bản ghi trong bảng Chi tiết đơn hàng chỉ liên quan đến một đơn hàng trong bảng Đơn hàng, trên trường OrderID. Như vậy, một khách hàng nhất định có thể có nhiều đơn hàng, mỗi đơn hàng có nhiều chi tiết đơn hàng

Trong ví dụ này, bạn sẽ tạo một truy vấn chéo bảng hiển thị tổng doanh thu mỗi năm, ở các thành phố Rio de Janeiro và São Paulo

Xây dựng truy vấn trong dạng xem Thiết kế

  1. Mở cơ sở dữ liệu Northwind. Đóng biểu mẫu đăng nhập

  2. Trên tab Tạo, trong nhóm Truy vấn, bấm vào Thiết kế Truy vấn.  

  3. Bấm đúp vào Khách hàng, Đơn hàng, rồi Bấm vào Chi tiết Đơn hàng

    Cả ba bảng đều xuất hiện trong không gian làm việc thiết kế truy vấn

  4. Trong bảng Khách hàng, bấm đúp vào trường Thành phố để thêm vào lưới thiết kế truy vấn

  5. Trong lưới thiết kế truy vấn, trong cột Thành phố, trong hàng Tiêu chí, nhập In ("Rio de Janeiro","São Paulo"). Điều này khiến chỉ những bản ghi mà khách hàng ở một trong hai thành phố này mới được đưa vào truy vấn

  6. Trong bảng Chi tiết đơn hàng, bấm đúp vào các trường Ngày giao hàng và Đơn giá

    Các trường được thêm vào lưới thiết kế truy vấn

  7. Trong cột Ngày vận chuyển trong lưới thiết kế truy vấn, hãy chọn hàng Trường. Thay [ShippedDate] bằng Năm. Định dạng([Ngày vận chuyển],"yyyy"). Thao tác này tạo ra một bí danh trường, Năm, cho phép bạn chỉ sử dụng phần năm của giá trị trong trường Ngày vận chuyển

  8. Trong cột Đơn giá trong lưới thiết kế truy vấn, hãy chọn hàng Trường. Thay thế [Đơn giá] bằng Bán hàng. [Chi tiết đơn hàng]. [Đơn giá]*[Số lượng]-[Chi tiết đơn hàng]. [Đơn giá]*[Số lượng]*[Giảm giá]. Điều này tạo ra một bí danh trường, Bán hàng, tính toán doanh số bán hàng cho từng bản ghi

  9. Trên tab Thiết kế, trong nhóm Loại truy vấn, bấm vào Chéo bảng

    Hai hàng mới, Tổng cộng và Chéo bảng, xuất hiện trong lưới thiết kế truy vấn

  10. Trong cột Thành phố trong lưới thiết kế truy vấn, hãy bấm vào hàng Chéo bảng, sau đó bấm vào Tiêu đề Hàng

    Điều này làm cho các giá trị thành phố xuất hiện dưới dạng tiêu đề hàng (nghĩa là truy vấn trả về một hàng cho mỗi thành phố)

  11. Trong cột Năm, bấm vào hàng Chéo bảng, rồi bấm vào Tiêu đề Cột

    Điều này làm cho các giá trị năm xuất hiện dưới dạng tiêu đề cột (nghĩa là truy vấn trả về một cột cho mỗi năm)

  12. Trong cột Bán hàng, bấm vào hàng Chéo bảng, rồi bấm vào Giá trị

    Điều này làm cho giá trị doanh số xuất hiện ở giao điểm của hàng và cột (nghĩa là truy vấn trả về một giá trị doanh số cho mỗi tổ hợp thành phố và năm)

  13. Trong cột Bán hàng, hãy bấm vào hàng Tổng, rồi bấm vào Tổng

    Điều này khiến truy vấn tính tổng các giá trị trong cột này

    Bạn có thể để hàng Tổng cho hai cột còn lại ở giá trị mặc định của Nhóm Theo, vì bạn muốn xem từng giá trị cho các cột này chứ không phải giá trị tổng hợp

  14. Trên tab Thiết kế, trong nhóm Kết quả, bấm vào Chạy

Bây giờ bạn có một truy vấn trả về tổng doanh số bán hàng theo năm ở Rio de Janeiro và São Paulo

Đầu trang

Xem tất cả các bản ghi từ hai bảng tương tự

Đôi khi, bạn sẽ muốn kết hợp dữ liệu từ hai bảng có cấu trúc giống hệt nhau, nhưng một trong số chúng nằm trong cơ sở dữ liệu khác. Xem xét tình huống sau

Giả sử bạn là nhà phân tích làm việc với dữ liệu sinh viên. Bạn đang bắt tay vào một sáng kiến ​​chia sẻ dữ liệu giữa trường của bạn và trường khác, để cả hai trường có thể cải thiện chương trình giảng dạy của họ. Đối với một số câu hỏi mà bạn muốn khám phá, sẽ tốt hơn nếu xem xét tất cả hồ sơ của cả hai trường cùng nhau, thay vì hồ sơ của từng trường riêng biệt

Bạn có thể nhập dữ liệu của trường khác vào các bảng mới trong cơ sở dữ liệu của mình, nhưng khi đó mọi thay đổi đối với dữ liệu của trường kia sẽ không được phản ánh trong cơ sở dữ liệu của bạn. Giải pháp tốt hơn là liên kết đến các bảng của trường khác, rồi tạo truy vấn kết hợp dữ liệu khi bạn chạy chúng. Bạn sẽ có thể phân tích dữ liệu dưới dạng một tập hợp duy nhất, thay vì thực hiện hai phân tích và cố gắng diễn giải chúng như thể chúng là một

Để xem tất cả các bản ghi từ hai bảng có cấu trúc giống hệt nhau, bạn sử dụng truy vấn hợp

Truy vấn hợp nhất không thể hiển thị trong dạng xem Thiết kế. Bạn xây dựng chúng bằng cách sử dụng các lệnh SQL mà bạn nhập vào tab đối tượng dạng xem SQL

Tạo truy vấn hợp bằng cách sử dụng hai bảng

  1. Trên tab Tạo, trong nhóm Truy vấn, bấm vào Thiết kế Truy vấn.  

  2. Trên tab Thiết kế, trong nhóm Loại Truy vấn, bấm vào Liên kết

    Truy vấn chuyển từ dạng xem Thiết kế sang dạng xem SQL. Tại thời điểm này, tab đối tượng dạng xem SQL trống

  3. Trong dạng xem SQL, hãy nhập CHỌN, theo sau là danh sách các trường từ bảng đầu tiên bạn muốn trong truy vấn. Tên trường phải được đặt trong dấu ngoặc vuông và được phân tách bằng dấu phẩy. Khi bạn nhập xong tên trường, hãy nhấn ENTER. Con trỏ di chuyển xuống một dòng trong dạng xem SQL

  4. Nhập TỪ, theo sau là tên của bảng đầu tiên bạn muốn trong truy vấn. Nhấn nút Enter

  5. Nếu bạn muốn chỉ định tiêu chí cho một trường từ bảng đầu tiên, hãy nhập WHERE, theo sau là tên trường, toán tử so sánh (thường là dấu bằng (=)) và tiêu chí. Bạn có thể thêm tiêu chí bổ sung vào cuối mệnh đề WHERE bằng cách sử dụng từ khóa AND và cú pháp tương tự được sử dụng cho tiêu chí đầu tiên; . Khi bạn hoàn tất việc chỉ định tiêu chí, hãy nhấn ENTER

  6. Nhập UNION, rồi nhấn ENTER

  7. Nhập CHỌN, theo sau là danh sách các trường từ bảng thứ hai mà bạn muốn trong truy vấn. Bạn nên bao gồm các trường giống nhau từ bảng này mà bạn đã bao gồm từ bảng đầu tiên và theo cùng một thứ tự. Tên trường phải được đặt trong dấu ngoặc vuông và được phân tách bằng dấu phẩy. Khi bạn nhập xong tên trường, hãy nhấn ENTER

    Làm cách nào để chèn nhiều bảng trong MySQL?

    Để chèn bản ghi từ nhiều bảng, sử dụng câu lệnh INSERT INTO SELECT . Ở đây, chúng ta sẽ chèn các bản ghi từ 2 bảng.

    Làm cách nào để tạo bảng thứ hai trong MySQL?

    Bạn có thể tạo một bảng từ một bảng khác bằng cách thêm câu lệnh CHỌN vào cuối câu lệnh CREATE TABLE. TẠO BẢNG new_tbl [AS] CHỌN * TỪ orig_tbl; MySQL tạo các cột mới cho tất cả các thành phần trong CHỌN.

    Tôi có thể tạo 2 bảng trong SQL không?

    SQL Server – Tạo hai bảng có khóa chính và khóa ngoại bằng mã SQL. Có một cách đơn giản trong VBA và Python để tạo các bảng trong cơ sở dữ liệu bạn cần, đặt cho các bảng tên của một biến và loại biến. Trong SQL Server, chúng ta cũng có cách tạo bảng từ văn bản SQL thuần túy .

    Chúng ta có thể tạo nhiều bảng trong một cơ sở dữ liệu không?

    Bạn có thể tạo một số bảng và dạng xem cũng như cấp đặc quyền trong một thao tác bằng cách sử dụng câu lệnh CREATE SCHEMA . Nếu một bảng riêng lẻ, dạng xem hoặc cấp không thành công, toàn bộ câu lệnh sẽ được khôi phục. Không có đối tượng nào được tạo, cũng như không được cấp đặc quyền.