### Database Schema:
CREATE TABLE Employees (
	EmployeeID	INTEGER	NOT NULL	PRIMARY KEY,
	FirstName	TEXT	NOT NULL,
	MiddleInitial	TEXT	NULL,
	LastName	TEXT	NOT NULL
);

CREATE TABLE Sales (
	SalesID	INTEGER	NOT NULL	PRIMARY KEY,
	SalesPersonID	INTEGER	NOT NULL,
	CustomerID	INTEGER	NOT NULL,
	ProductID	INTEGER	NOT NULL,
	Quantity	INTEGER	NOT NULL,
	foreign key (CustomerID) references Customers (CustomerID),
	foreign key (ProductID) references Products (ProductID),
	foreign key (SalesPersonID) references Employees (EmployeeID)
);

CREATE TABLE Customers (
	CustomerID	INTEGER	NOT NULL	PRIMARY KEY,
	FirstName	TEXT	NOT NULL,
	MiddleInitial	TEXT	NULL,
	LastName	TEXT	NOT NULL
);

CREATE TABLE Products (
	ProductID	INTEGER	NOT NULL	PRIMARY KEY,
	Name	TEXT	NOT NULL,
	Price	REAL	NULL
);

### User's Query:
Name the most expensive and the least expensive products available, excluding free gifts.

### Extra Knowledge:
most expensive product refers to MAX(Price); least expensive product refers to MIN(Price); excluding free gifts refers to not including Price = 0;
SELECT Name FROM Products WHERE Price IN (( SELECT MAX(Price) FROM Products ), ( SELECT MIN(Price) FROM Products ))