Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

Giải pháp sách giáo khoa được đề xuất

Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

Quản lý dự án công nghệ thông tin: Cung cấp giá trị tổ chức có thể đo lường được

Phiên bản thứ 5 T. MarchewkaJack T. Marchewka

346 Giải pháp

Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

Quản lý dự án công nghệ thông tin: Cung cấp giá trị tổ chức có thể đo lường được

Phiên bản thứ 5 T. MarchewkaJack T. Marchewka

346 Giải pháp

Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

Quản lý dịch vụ: Hoạt động, chiến lược và công nghệ thông tin

Phiên bản thứ 7 Fitzsimmons, Mona FitzsimmonsJames Fitzsimmons, Mona Fitzsimmons

103 Giải pháp

Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

Giới thiệu về thuật toán

Phiên bản thứ 3 E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. CormenCharles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen

720 giải pháp

Truy vấn cơ sở dữ liệu: & nbsp; Truy vấn và quan điểm  QUERIES and VIEWS

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Truy vấn: & nbsp; Tuyên bố cho phép truy xuất dữ liệuQuery:  Statement that allows data retrieval

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Xem: & nbsp; Một bảng ảo; Truy vấn đã lưu (câu lệnh CHỌN, không phải kết quả)View:  A virtual table; a saved query (the SELECT statement, not the result)

Chọn câu lệnh (DML)

- Lấy một bộ dữ liệu giới hạn từ một hoặc nhiều bảng bằng cách sử dụng các tiêu chí được chỉ định trong mệnh đề WHERE

- Thường được sử dụng để thực hiện các tính toán trên dữ liệu được chọnoften used to perform calculations on the data selected

- Bộ kết quả được hiển thị dưới dạng bảng (cột và hàng)the result set is displayed as a table (columns and rows)

Ví dụ đơn bàn (đánh giá): & nbsp; (review): 

Danh sách sản phẩm hiện tại: & NBSP; Tất cả dữ liệu đến từ bảng sản phẩm  all data comes from the Products table


Cú pháp

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn Danh sách cộtSELECT column list

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Từ TableNameFROM tablename

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nơi tiêu chíWHERE criteria

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đặt hàng theo danh sách cộtORDER BY column list

Chọn từ hai bảng: & nbsp; Thí dụ  Example

Chạy truy vấn đơn hàng (đơn đặt hàng QRY trong danh sách truy vấn): & nbsp; Nó liệt kê tất cả các đơn đặt hàng cho tất cả các khách hàng, mà không cần đi vào các mục hàng (chi tiết đơn đặt hàng), bằng cách truy xuất dữ liệu liên quan từ các đơn đặt hàng và bảng khách hàng.  It lists all orders for all customers, without going into line items (order details), by retrieving related data from the Orders and Customers tables.


Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì


Lưu ý số lượng hàng và cột; Một số cột được lặp lại thường xuyên hơn là nghiêm ngặt.

Sử dụng danh sách thả xuống bên cạnh nút Xem (được khoanh tròn ở trên) để chuyển sang chế độ xem SQL. & NBSP; Đây là câu lệnh SQL, được tách thành các phần logic để dễ giải thích:

LỰA CHỌN

Order.orderId, Order.CustomerId, Order.Employeeid, Order.orderDate, Order.RequiredDate, Order.ShippedDate, Order.shipvia, Order.Freight, Order.shipname, Order.shipAddress, Order.shipCity. Shippostalcode, đơn đặt hàng.shipcountry,

Khách hàng.companyname, Khách hàng.Address, Khách hàng.

Từ khách hàng

Nội tâm tham gia các đơn đặt hàng

& nbsp; & nbsp; & nbsp; & nbsp; Trên khách hàng.customerid = đơn đặt hàng.customerid;ON Customers.CustomerID = Orders.CustomerID;

Lưu ý: & nbsp; Các tên bảng không cần được lặp lại trừ khi cùng một tên cột tồn tại trong cả hai bảng. & NBSP; Các tên bảng chỉ được yêu cầu trong từ, tham gia và trên các mệnh đề, và trong phần sau, chỉ vì cột liên quan, customerID, có cùng tên trong cả hai bảng. & nbsp;


Cú pháp truy vấn được hiển thị ở trên tuân theo các quy tắc ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ) và nên làm việc trong các phiên bản mới nhất của tất cả các cơ sở dữ liệu quan hệ. & NBSP; Cú pháp cũ hơn bao gồm điều kiện tham gia trong mệnh đề WHERE (kiểu theta). & Nbsp; Lưu ý số lượng hàng và cột trong tập kết quả cho truy vấn đơn hàng và thử cùng một ví dụ (với ít cột hơn), sử dụng các bí danh kiểu và bảng cũ hơn, như sau:

Chọn O.OrderID, O.Employeeid, O.OrderDate, O.RequiredDate, O.ShippedDate, O.Shipvia, O.Freight, c.companyname, C.Address, C.City, C.Region, C.PostalCode, C .Quốc gia


Từ khách hàng C, đơn đặt hàng o


Trong đó c.customerid = o.customerid;


Lưu ý cho người dùng MS Access: & NBSP; So sánh truy vấn này trong chế độ xem thiết kế với truy vấn kiểu ANSI. & NBSP; MS Access chạy truy vấn chính xác nhưng không thể biểu diễn nó theo cách thông thường trong giao diện truy vấn đồ họa.  Compare this query in design view with the ANSI style query.  MS Access runs the query correctly but cannot represent it in the usual way In the graphical query interface.

- Cập nhật các giá trị trong bảng từ xa

- Tìm số chuỗi tiếp theo cho một bảng (Oracle - sử dụng bảng phụ trợ trong cơ sở dữ liệu từ xa)JOIN operator specifies how to relate tables in the query.  The JOIN operator is one of the set operations available in relational databases.

- Chạy truy vấn bằng hàm hoặc tính toán không thể thực hiện trong cơ sở dữ liệu cục bộ

Tham gia toán tửINNER

Toán tử tham gia chỉ định cách liên kết các bảng trong truy vấn. & Nbsp; Toán tử tham gia là một trong những hoạt động đã đặt có sẵn trong cơ sở dữ liệu quan hệ.OUTER (LEFT. RIGHT, FULL)

Các loại tham gia sau đây có sẵn trong hầu hết các cơ sở dữ liệu quan hệ:CROSS

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BÊN TRONG

Hướng dẫn what is the result of running the mysql command explain select customer, balance from customers - kết quả của việc chạy lệnh mysql giải thích khách hàng chọn lọc, số dư từ khách hàng là gì

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Bên ngoài (trái. Phải, đầy đủ)

Tham gia bên trong: & nbsp; Chỉ chọn những hàng có giá trị chung trong các cột được chỉ định trong mệnh đề ON.  Select only those rows that have values in common in the columns specified in the ON clause.

Bên trái, phải, hoặc tham gia bên ngoài đầy đủ: & nbsp; Chọn tất cả các hàng từ bảng ở bên trái (hoặc phải hoặc cả hai) bất kể bảng khác có giá trị chung và (thường) nhập NULL khi thiếu dữ liệu. & NBSP; .  Select all rows from the table on the left (or right, or both) regardless of whether the other table has values in common and (usually) enter NULL where data is missing.  (Note:  FULL OUTER JOIN not implemented in Access.)

Tham gia chéo (không minh họa - không chính xác là một hoạt động đã đặt): & nbsp; Chọn tất cả các kết hợp có thể có của & nbsp; Hàng và cột từ cả hai bảng (sản phẩm Cartesian). Không có sẵn trong quyền truy cập nhưng có thể "xảy ra" bằng cách không chỉ định mối quan hệ giữa các bảng hoặc không thiết lập các kết nối thích hợp trong truy vấn. & NBSP; .  Select all possible combinations of  rows and columns from both tables (Cartesian product). Not available in Access but can "happen" by not specifying relationships between tables or not setting up the appropriate joins in a query.  (Not A Good Thing - the query may run for a very long time  and produce a huge, not very useful result set.)

Truy cập sử dụng phong cách ANSI & NBSP; Access, MySQL và Oracle đều sử dụng cú pháp tương tự, với nhiều loại và tùy chọn tham gia hơn và các hoạt động được đặt khác trong MySQL và Oracle (tham gia chéo, tham gia đầy đủ bên ngoài, giao nhau, trừ).ANSI  (American National Standards Institute) style, with the JOIN and ON keywords.  Access, MySQL, and Oracle all use similar syntax, with more join types and options and other set operations in MySQL and Oracle (CROSS JOIN, FULL OUTER JOIN, INTERSECT, MINUS).

Chọn từ hai bảng: & nbsp; Nhiều ví dụ hơn

  • & nbsp; Danh sách các sản phẩm theo thứ tự chữ cái: & nbsp; & nbsp; Danh sách các sản phẩm chưa bị ngừng và danh mục sản phẩm, sử dụng tất cả các cột từ sản phẩm (sản phẩm.*) Và một từ các danh mục:   Lists products that have not been discontinued and the product category, using all columns from Products (Products.*) and one from Categories:


Chọn Sản phẩm.*, Danh mục.C CategoryName


Từ các danh mục & nbsp; & nbsp; & nbsp; Các sản phẩm tham gia bên trong & nbsp; & nbsp; & nbsp; Trên danh mục.c CategoryId = sản phẩm.c CategoryId
    INNER JOIN Products
    ON Categories.CategoryID=Products.CategoryID


Trong đó (((sản phẩm.discontinued) = không));

  • Chi tiết đơn hàng mở rộng: & nbsp; Tính toán giá mở rộng, tổng số chiết khấu cho mỗi mục dòng (chi tiết đơn hàng) trong tất cả các đơn đặt hàng, sử dụng dữ liệu từ các chi tiết đơn hàng và bảng sản phẩm:  Calculates the Extended Price, the discounted total for each line item (order detail) in all orders, using data from the Order Details and Products tables :

LỰA CHỌN

& nbsp; [Chi tiết đặt hàng] .OrderId, [Chi tiết đơn hàng] .ProductId, Sản phẩm [Số lượng]*(1- [Giảm giá])/100)*100 dưới dạng ExtendedPrice
CCur([Order Details].UnitPrice*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice

Từ sản phẩm & nbsp; & nbsp; & nbsp; Tham gia bên trong [Chi tiết đơn hàng] & nbsp; & nbsp; & nbsp; Trên sản phẩm.productid = [chi tiết đơn hàng]. ProductID
    INNER JOIN [Order Details]
    ON Products.ProductID=[Order Details].ProductID

Đặt hàng theo [chi tiết đơn hàng] .orderId;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Lưu ý: & nbsp; Tính toán không phức tạp như nó có vẻ. & NBSP; Nó chỉ đơn giản là đơn giá * số lượng * giảm giá, được định dạng là tiền tệ.Note:  The calculation is not as complex as it may seem.  It is simply unit price * quantity * discount, formatted as currency.


Chọn từ hai bảng: & nbsp; Bài tập  Exercises

  • & nbsp; sửa đổi truy vấn đơn hàng & nbsp; chỉ hiển thị khách hàng từ Oregon và liệt kê tên của mỗi khách hàng & nbsp; và địa chỉ chỉ một lần (tức là, loại bỏ các cột dự phòng). & nbsp; & nbsp; Sử dụng tên công ty từ bảng khách hàng, không phải từ bảng đơn đặt hàng (để tránh tra cứu cụ thể truy cập). & Nbsp; & nbsp; Sắp xếp theo tên của khách hàng (công ty). & Nbsp; (Kết quả: 28 hàng)
  • Thao tác văn bản: & NBSP; Sửa đổi truy vấn trước đây để liệt kê khách hàng từ Mexico và Canada, hiển thị thành phố và quốc gia ở định dạng này:  Modify the previous query to list customers from Mexico and Canada, showing city and country in this format:

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thành phố, Quốc gia & NBSP; & NBSP; & nbsp; & nbsp; (ví dụ: & nbsp; Montreal, Canada) & nbsp;City, Country      (e.g.,  Montreal, Canada) 

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; với một tiêu đề cột như ShippedTo hoặc được vận chuyển đến. & NBSP; Để làm điều này, hãy thay thế các cột thành phố và quốc gia bằng một cột được tính toán (dấu phẩy ở cuối để tách khỏi cột tiếp theo nếu cần thiết):        with a column header such as ShippedTo or Shipped To.  To do this, replace the City and Country columns with one calculated column (comma at the end to separate from the next column if necessary):

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thành phố & "," & đất nước như ShippedTo,         City & ", " & Country AS ShippedTo,

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoặc & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thành phố & "," & Countryas [được vận chuyển],or      City & ", " & CountryAS [Shipped To],

Lưu ý: & nbsp; Hãy chắc chắn tìm thấy các tên chính xác cho các cột thành phố và quốc gia - chúng khác nhau trong hai bảng. & NBSP; (Kết quả: 58 hàng)

  • Tương tự: & nbsp; Danh sách & NBSP; Các địa chỉ khách hàng của Hoa Kỳ và Canada cùng với các đơn đặt hàng của họ (số và ngày đặt hàng), với mã thành phố, tiểu bang và bưu điện trong một cột, với tiêu đề citystatezip:  List  US and Canadian customer addresses along with their orders (number and order date), with city, state, and postal code in one column, with the header CityStateZip:

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thành phố, & nbsp; Vùng Postalcode & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; (ví dụ :  Newark, DE19716)City,  Region PostalCode                         (e.g.:  Newark, DE19716)

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Bạn có thể sắp xếp trên cột được tính toán trong câu lệnh SQL không? & NBSP; (Kết quả: & nbsp; 152 hàng)

Chọn từ hai bảng: & nbsp; Cú pháp & nbsp;  SYNTAX 


(Khuyến nghị, theo phong cách ANSI)

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn Danh sách cộtSELECT column list

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Từ Bảng 1FROM table1

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tham gia bên trong TABLE2INNER JOIN table2

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Trên bảng1.col1 = Bảng2.col2ON table1.col1=table2.col2

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nơi tiêu chíWHERE criteria

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đặt hàng theo danh sách cộtORDER BY column list


(Cũ hơn, phong cách theta)

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn Danh sách cộtSELECT column list

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Từ Bảng 1FROM table1, table2

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tham gia bên trong TABLE2        WHERE table1.col1=table2.col2

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Trên bảng1.col1 = Bảng2.col2        AND other criteria

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đặt hàng theo danh sách cộtORDER BY column list


Lưu ý: & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

- col1 trong bảng1 thường là khóa chính của bảngcol1 in table1 is usually that table's primary key

- col2 trong bảng2 là chìa khóa nước ngoài trong bảng đócol2 in table2 is a foreign key in that table

- Col1 và Col2 phải có cùng loại dữ liệu và đối với một số loại dữ liệu nhất định, cùng kích thướccol1 and col2 must have the same data type and for certain data types, the same size

Chọn nhiều bàn chọn

Ví dụ

  • Bán hàng theo truy vấn danh mục tóm tắt dữ liệu bán hàng ($ số liệu) cho tất cả các sản phẩm, được sắp xếp theo danh mục, sử dụng dữ liệu từ ba bảng (sản phẩm, đơn đặt hàng và chi tiết đặt hàng) và chi tiết đơn hàng truy vấn mở rộng (tương đương với chế độ xem). & NBSP; three tables (Products, Orders, and Order Details) and the Order Details Extended query (equivalent to a view). 

& nbsp; & nbsp; Chạy truy vấn - Lưu ý rằng có một hàng trên mỗi sản phẩm. & Nbsp; & nbsp; Sau đó chuyển sang chế độ xem SQL:


- Cập nhật các giá trị trong bảng từ xa

- Cập nhật các giá trị trong bảng từ xa
     INNER JOIN (Products
          INNER JOIN (Orders
               INNER JOIN [Order Details Extended]
               ON Orders.OrderID=[Order Details Extended].OrderID)
          ON Products.ProductID=[Order Details Extended].ProductID)
     ON Categories.CategoryID=Products.CategoryID

- Tìm số chuỗi tiếp theo cho một bảng (Oracle - sử dụng bảng phụ trợ trong cơ sở dữ liệu từ xa)

Nhóm theo danh mục.c CategoryId, Categories.C CategoryName, Sản phẩm.ProductName

- Cập nhật các giá trị trong bảng từ xa


- Cập nhật các giá trị trong bảng từ xa
The number of joins is equal to the total number of tables (or views) minus one.
A join condition (ON table1.col1 = table2.col2) must be specified for each join.

- Tìm số chuỗi tiếp theo cho một bảng (Oracle - sử dụng bảng phụ trợ trong cơ sở dữ liệu từ xa)

- Chạy truy vấn bằng hàm hoặc tính toán không thể thực hiện trong cơ sở dữ liệu cục bộ

Ghi chú: Số lượng tham gia bằng tổng số bảng (hoặc chế độ xem) trừ đi một. Một điều kiện tham gia (trên Bảng1.col1 = Bảng2.col2) phải được chỉ định cho mỗi lần tham gia.

  • Nếu sự tham gia nằm trong mệnh đề WHERE, các quy tắc là như nhau - số lượng tiêu chí tham gia tối thiểu bằng với số lượng bảng (hoặc chế độ xem) trừ một.

  • Nhóm theo mệnh đề tóm tắt dữ liệu trong các tập hợp con, trong trường hợp này cho một hàng trên mỗi sản phẩm. & NBSP; (Chủ đề được đề cập chi tiết trong lớp thứ ba)

    Thứ tự của các điều khoản trong câu lệnh SQL rất quan trọng: & nbsp; Nhóm theo sau khi (nếu có), đặt hàng theo cuối cùng.
    Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, [FirstName] & " " & [LastName] AS Salesperson,
    Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate,
    Shippers.CompanyName,
    [Order Details].ProductID,
    Products.ProductName,
    [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount,
    CCur([Order Details].UnitPrice*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice,

    Orders.Freight

    Các truy vấn hóa đơn kết hợp dữ liệu từ tất cả các bảng ngoại trừ các danh mục và nhà cung cấp. & NBSP; Chạy truy vấn, sau đó chuyển đến chế độ xem SQL:
         INNER JOIN  (Products
                   INNER JOIN ((Employees
                     & nbsp;       INNER JOIN (Customers
                     & nbsp;            INNER JOIN Orders
                     & nbsp;            ON Customers.CustomerID=Orders.CustomerID)
                     & nbsp;            ON Employees.EmployeeID=Orders.EmployeeID)
                     & nbsp;                  INNER JOIN [Order Details]
                     & nbsp;                  ON Orders.OrderID=[Order Details].OrderID)
         ON Products.ProductID=[Order Details].ProductID)
         ON Shippers.ShipperID=Orders.ShipVia;

& nbsp; lưu ý: & nbsp; Mối quan hệ giữa sáu bảng không phải là tuyến tính nên việc "nhìn thấy" chúng trong câu lệnh SQL khó khăn hơn.

Bài tập

  • Tạo một danh sách các sản phẩm hiển thị tên danh mục cho mỗi và tên liên hệ của Nhà cung cấp & NBSP; (77 hàng)  (77 rows)
  • Sao chép và lưu một trong hai truy vấn mẫu ở trên với một tên khác và viết lại với các tiêu chí tham gia trong mệnh đề WHERE (kiểu theta).

Mẹo: & nbsp; Để phân tích hoặc khắc phục sự cố truy vấn trong cửa sổ truy vấn truy cập hoặc trong tiện ích dòng lệnh trong Oracle hoặc MySQL, hãy thử phá vỡ câu lệnh như trong sơ đồ cú pháp, với các từ khóa ở đầu dòng; hoặc sao chép và dán vào trình chỉnh sửa văn bản (ví dụ: Notepad) và sắp xếp lại ở đó.  To analyze or troubleshoot a query in the Access query window or in the command line utility in Oracle or MySQL, try breaking the statement as shown in the syntax diagram, with the keywords at the beginning of the lines; or copy and paste to a text editor (e.g., Notepad) and rearrange there.

Tham gia bên ngoài: & nbsp;: 

Được sử dụng để tìm dữ liệu trong một bảng bị thiếu dữ liệu liên quan từ một bảng khác, ví dụ như nhà cung cấp mà chúng tôi không có sản phẩm hoặc sản phẩm chưa được phân loại hoặc khách hàng chưa đặt hàng. & NBSP; & NBSP;related data from another, for example a supplier from whom we have no products, or a product that hasn't been categorized, or a customer who has not placed an order.  

Nguyên tắc: & nbsp; Tham gia các bảng và tìm tất cả các hàng từ một bảng có các hàng tương ứng trong bảng khác có giá trị null (thiếu dữ liệu hoặc không xác định giá trị).  Join the tables and find all the rows from one table whose corresponding rows in the other table have a null value (data missing or value unknown).

Ví dụ/Bài tập & NBSP; 

Liệt kê tên công ty, người liên hệ và số điện thoại của khách hàng chưa đặt hàng. & NBSP; Nhập câu lệnh sau vào cửa sổ SQL:  Type the following statement in the SQL window:

Chọn CompanyName, ContactName, Điện thoại

Từ khách hàng

& nbsp; & nbsp; & nbsp; & nbsp; Để lại các đơn đặt hàng tham gia

& nbsp; & nbsp; & nbsp; & nbsp; Trên khách hàng.customerid = đơn đặt hàng.customerid

Trong đó đơn đặt hàng.customerid là null;


Kết quả phải là 2 hàng.

Trong MS Access, câu lệnh này tương tự như SQL được tạo bởi Trình hướng dẫn truy vấn chưa từng có.


Lưu ý nhấn mạnh vào "dữ liệu liên quan" ở trên. & Nbsp; & nbsp; Xem liệu một sự tham gia bên ngoài có cần thiết để tạo một danh sách giống như trong ví dụ trước của khách hàng có đơn đặt hàng chưa được vận chuyển hay không. & NBSP; Tại sao hoặc tại sao không?

Truy vấn sử dụng các hoạt động đã đặt

LIÊN HIỆP

Một truy vấn liên minh kết hợp với nhau trong một kết quả tập dữ liệu từ hai hoặc nhiều bảng hoặc truy vấn không liên quan có cấu trúc giống hệt nhau (cùng số lượng cột có cùng loại dữ liệu xảy ra theo cùng một thứ tự; không nhất thiết là cùng một tiêu đề cột).unrelated tables or queries that have identical structure (same number of columns with same data types occurring in the same order; not necessarily same column headers).

Một truy vấn liên minh không thể được xây dựng trong giao diện truy vấn đồ họa trong Access.

Thí dụ

Khách hàng và nhà cung cấp theo thành phố:

Chọn City, CompanyName, ContactName, "Khách hàng" là [Mối quan hệ] từ khách hàng chọn City, CompanyName, ContactName, "Nhà cung cấp" từ Nhà cung cấp của City, CompanyName;
FROM Customers
UNION SELECT City, CompanyName, ContactName, "Suppliers"
FROM Suppliers
ORDER BY City, CompanyName;

- Biến số của các câu lệnh chọn được liên kết bởi liên kết từ khóaUNION

- Các cột phải được đặt tên (quan trọng nếu chúng được tính toán)

- Cột hoặc cột bổ sung tùy chọn để thêm thông tin hoặc để làm cho các cấu trúc bảng khớp

- Không sao chép trừ khi tất cả các liên minh được chỉ định (không rõ ràng từ ví dụ này)

- Nếu tập kết quả được sắp xếp, chỉ có một thứ tự theo mệnh đề ở cuối

Liên minh: & NBSP; Bài tập:  Exercises

  • Tạo một danh sách địa chỉ cho tất cả nhân viên, liên hệ của khách hàng và liên hệ với nhà cung cấp, được sắp xếp theo tên. & NBSP; Đối với bài tập này, chỉ sử dụng họ của nhân viên.  For this exercise, use employee's last name only.
  • Thay đổi truy vấn trước đó để sử dụng họ và họ của nhân viên. & NBSP; (Nhiều hơn một cách để làm điều này.)  (More than one way to do this.)
  • Thay đổi một trong các truy vấn trước đó để bao gồm một cột bổ sung (gọi nó là vai trò) trong đó mỗi người được chỉ định là nhân viên, khách hàng hoặc nhà cung cấp.

Cú pháp

  • Không sao chép:

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh1SELECT statement1

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; LIÊN HIỆPUNION

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh2SELECT statement2

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; LIÊN HIỆPUNION

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh2[...]

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [...]SELECT statement-last

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh-lastORDER BY column list

  • & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đặt hàng theo danh sách cột

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh1SELECT statement1

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; LIÊN HIỆPUNION ALL

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh2[...]

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [...]SELECT statement-last

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chọn câu lệnh-lastORDER BY column list

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đặt hàng theo danh sách cột  INTERSECT and MINUS

Để bao gồm tất cả các hàng, bất kể sao chép: 

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Liên minh tất cả  The query written in the local database is "passed through" as is to the database on the server and processed by the remote database.

Ví dụ

- Cập nhật các giá trị trong bảng từ xa


- Tìm số chuỗi tiếp theo cho một bảng (Oracle - sử dụng bảng phụ trợ trong cơ sở dữ liệu từ xa)


- Chạy truy vấn bằng hàm hoặc tính toán không thể thực hiện trong cơ sở dữ liệu cục bộ