查询所有来自美国的供货商供应的产品的编号、名称及其供货商的公司名称。 写出正确的T-SQL查询语句。 请下载附件northwind数据库文件后,附加到本地数据上,完成此题
时间: 2024-02-17 17:04:06 浏览: 170
您好,以下是查询所有来自美国的供货商供应的产品的编号、名称及其供货商的公司名称的 T-SQL 查询语句:
```sql
USE northwind;
SELECT Products.ProductID, Products.ProductName, Suppliers.CompanyName
FROM Products
JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID
WHERE Suppliers.Country = 'USA';
```
以上查询语句使用 `JOIN` 语句连接 `Products` 和 `Suppliers` 表,通过 `SupplierID` 列进行关联。然后使用 `WHERE` 子句过滤出来自美国的供货商。最终选择 `Products` 表中的产品编号和名称,以及 `Suppliers` 表中的公司名称进行显示。
请注意,这个查询语句只会列出来自美国的供货商供应的产品。如果您想要查询其他国家的供货商,只需要将 `WHERE` 子句中的条件更改为其他国家即可。
相关问题
计一个采购、销售和客户管理应用数据库。其中,一个供应商可以供应多种零件,一种零件也可以有多个供应商。一个客户订单可以订购多种供应商供应的零件。客户和供应商都分属不同的国家,而国家按世界五大洲、八大洋划分地区。 请实现该数据库的设计,并通过 SQL 语句完成数据库模式、基本表的创建,以及数据的插入、更新、查询等操作。
好的,根据您的需求,我为您设计了一个包含以下表的数据库:
1. 供应商表(supplier):记录供应商的信息,包括供应商编号、供应商名称、所在国家、联系人、联系电话等字段。
2. 零件表(part):记录零件的信息,包括零件编号、零件名称、描述、单价等字段。
3. 供应表(supply):记录供应商和零件之间的供应关系,包括供应商编号、零件编号、供应价、供应能力等字段。
4. 客户表(customer):记录客户的信息,包括客户编号、客户名称、所在国家、联系人、联系电话等字段。
5. 订单表(order):记录客户订单的信息,包括订单编号、客户编号、订单日期等字段。
6. 订单明细表(order_detail):记录订单中每个零件的信息,包括订单编号、零件编号、订购数量等字段。
7. 国家表(country):记录国家的信息,包括国家编号、国家名称、所属洲、所属洋等字段。
根据以上表的设计,以下是 SQL 语句实现数据库模式、基本表的创建:
```
-- 创建国家表
CREATE TABLE country (
country_id INT PRIMARY KEY,
country_name VARCHAR(50),
continent VARCHAR(50),
ocean VARCHAR(50)
);
-- 创建供应商表
CREATE TABLE supplier (
supplier_id INT PRIMARY KEY,
supplier_name VARCHAR(50),
country_id INT,
contact_name VARCHAR(50),
contact_phone VARCHAR(50),
FOREIGN KEY (country_id) REFERENCES country(country_id)
);
-- 创建零件表
CREATE TABLE part (
part_id INT PRIMARY KEY,
part_name VARCHAR(50),
description VARCHAR(100),
price DECIMAL(10, 2)
);
-- 创建供应表
CREATE TABLE supply (
supplier_id INT,
part_id INT,
supply_price DECIMAL(10, 2),
supply_capacity INT,
PRIMARY KEY (supplier_id, part_id),
FOREIGN KEY (supplier_id) REFERENCES supplier(supplier_id),
FOREIGN KEY (part_id) REFERENCES part(part_id)
);
-- 创建客户表
CREATE TABLE customer (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(50),
country_id INT,
contact_name VARCHAR(50),
contact_phone VARCHAR(50),
FOREIGN KEY (country_id) REFERENCES country(country_id)
);
-- 创建订单表
CREATE TABLE order (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);
-- 创建订单明细表
CREATE TABLE order_detail (
order_id INT,
part_id INT,
quantity INT,
PRIMARY KEY (order_id, part_id),
FOREIGN KEY (order_id) REFERENCES order(order_id),
FOREIGN KEY (part_id) REFERENCES part(part_id)
);
```
接下来,我为您提供一些 SQL 语句示例,以便进行数据的插入、更新、查询等操作:
1. 插入数据:
```
-- 插入国家数据
INSERT INTO country (country_id, country_name, continent, ocean) VALUES
(1, '中国', '亚洲', '太平洋'),
(2, '美国', '北美洲', '大西洋');
-- 插入供应商数据
INSERT INTO supplier (supplier_id, supplier_name, country_id, contact_name, contact_phone) VALUES
(1, '供应商A', 1, '张三', '13812345678'),
(2, '供应商B', 2, 'John Doe', '1-800-555-5555');
-- 插入零件数据
INSERT INTO part (part_id, part_name, description, price) VALUES
(1, '零件A', '描述A', 10.99),
(2, '零件B', '描述B', 20.99);
-- 插入供应数据
INSERT INTO supply (supplier_id, part_id, supply_price, supply_capacity) VALUES
(1, 1, 9.99, 100),
(1, 2, 19.99, 50),
(2, 2, 18.99, 200);
-- 插入客户数据
INSERT INTO customer (customer_id, customer_name, country_id, contact_name, contact_phone) VALUES
(1, '客户A', 1, '李四', '13912345678'),
(2, '客户B', 2, 'Jane Doe', '1-800-555-5556');
-- 插入订单数据
INSERT INTO order (order_id, customer_id, order_date) VALUES
(1, 1, '2022-01-01'),
(2, 2, '2022-01-02');
-- 插入订单明细数据
INSERT INTO order_detail (order_id, part_id, quantity) VALUES
(1, 1, 5),
(1, 2, 10),
(2, 2, 20);
```
2. 更新数据:
```
-- 更新零件B的价格为25.99
UPDATE part SET price = 25.99 WHERE part_name = '零件B';
-- 更新供应商A的联系人为王五
UPDATE supplier SET contact_name = '王五' WHERE supplier_name = '供应商A';
```
3. 查询数据:
```
-- 查询所有供应商的名称、所在国家、联系人和电话
SELECT supplier_name, country_name, contact_name, contact_phone FROM supplier
JOIN country ON supplier.country_id = country.country_id;
-- 查询客户A的所有订单及其明细
SELECT * FROM order
JOIN order_detail ON order.order_id = order_detail.order_id
WHERE order.customer_id = 1;
-- 查询所有供应商提供的零件及其价格
SELECT supplier_name, part_name, supply_price FROM supply
JOIN supplier ON supply.supplier_id = supplier.supplier_id
JOIN part ON supply.part_id = part.part_id;
```
以上仅为示例 SQL 语句,具体的数据操作需要根据您的实际需求进行调整。
阅读全文