Giải pháp sách giáo khoa được đề xuất
Quản lý dự án công nghệ thông tin: Cung cấp giá trị tổ chức có thể đo lường đượcPhiên bản thứ 5 T. MarchewkaJack T. Marchewka 346 Giải pháp Quản lý dự án công nghệ thông tin: Cung cấp giá trị tổ chức có thể đo lường đượcPhiên bản thứ 5 T. MarchewkaJack T. Marchewka 346 Giải pháp Quản lý dịch vụ: Hoạt động, chiến lược và công nghệ thông tinPhiên bản thứ 7 Fitzsimmons, Mona FitzsimmonsJames Fitzsimmons, Mona Fitzsimmons 103 Giải pháp
Giới thiệu về thuật toánPhiê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
& 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.
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;
> 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
- 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 & 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
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 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 Đặ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.
& 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)
& 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
& 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
& 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
- 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ụ
& 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 - 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.
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. 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: & 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
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;
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ó.
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; - 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
Cú phá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; 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
|