To create a table for Products with the specifications outlined in the challenge, enter the following code in a SQL query:
CREATE TABLE Products (
ProductID int PRIMARY KEY NOT NULL,
ProductName varchar(25) NOT NULL,
Price money NULL, -- you can add notes to your queries
ProductDescription text NULL
);
This is what the resulting view will look like in pgAdmin after you've run the query:
2.4 Insert Solution
--Using standard syntax
INSERT INTO Products (ProductID, ProductName, Price, ProductDescription)
VALUES (1, 'Clamp', 12.48, 'Workbench clamp');
--Changing the order of the columns
INSERT INTO Products (ProductName, ProductID, ProductDescription, Price)
VALUES ('Clamp', 2, 'Workbench clamp', 12.48);
--Skipping the column list, but keeping the values in order
INSERT INTO Products
VALUES (50, 'Flat Head Screwdriver', 3.25, 'Flat head');
--Adding multiple items in the same statement
INSERT INTO Products
VALUES (51, 'Screwdriver', 3.25, 'Flat head'),
(52, 'Screwdriver', 3.17, 'Flat head');
--Dropping the ProductDescription column
INSERT INTO Products (ProductID, ProductName, ProductDescription)
VALUES (75, 'Tire Bar', 'Tool for changing tires');
2.5 Update Solution
--Change the ProductName by targeting the ProductID
UPDATE Products
SET ProductName = 'The Flattest Flat Head'
WHERE ProductID = 50;
--Change the price of a specific ProductID
UPDATE Products
SET Price = '12.75'
WHERE ProductID = 1;
--Change anything with a specific price to a new price
UPDATE Products
SET Price = '3.50'
WHERE Price = '3.25';
2.6 Read Solution
--Print all products using standard syntax
SELECT ProductID, ProductName, Price, ProductDescription
FROM Products;
--Print all products using *
SELECT * FROM PRODUCTS
--Print ProductName and Price columns
SELECT ProductName, Price
FROM PRODUCTS;
--Print all Products with a ProductID less than 60
SELECT * FROM PRODUCTS
WHERE ProductID < 60;
--Print all Products with a ProductID between 50 and 55 using BETWEEN and AND
SELECT * FROM PRODUCTS
WHERE ProductID BETWEEN 50 AND 55;
--Print all Products with a ProductDescription that starts with Tool using % and LIKE
SELECT * FROM PRODUCTS
WHERE ProductDescription LIKE 'Tool%';
--Print all ProductNames and Prices including a 7% tax in CustomerPays column
SELECT ProductName, ((.07 * Price) + Price) AS CustomerPays
FROM PRODUCTS;
2.7 Alter Solution
Add a column called "Manufacturer":
ALTER TABLE Products
ADD Manufacturer VARCHAR(25) NULL;
Drop the "Manufacturer" column:
ALTER TABLE Products
DROP COLUMN Manufacturer;
Add a column called "UPC" with data type VARCHAR(25):
ALTER TABLE Products
ADD Manufacturer VARCHAR(25) NULL;
Change the "UPC" column to a TEXT data type:
ALTER TABLE Products
ALTER COLUMN UPC TYPE TEXT;
Drop the "UPC" column:
ALTER TABLE Products
DROP COLUMN UPC;
2.8 Customer Table Solution
Create a "Customers" table with the specified criteria:
CREATE TABLE Customers (
CustomerID int PRIMARY KEY NOT NULL,
LastName varchar(25) NOT NULL,
FirstName varchar(25) NOT NULL,
LastPurchase timestamp NOT NULL
);