docs/content/v2025.1/sample-data/northwind.md
Install the PostgreSQL-compatible version of the Northwind dataset on the YugabyteDB distributed SQL database.
You can install and use the Northwind sample database using:
In either case, you use the YugabyteDB SQL shell (ysqlsh) CLI to interact with YugabyteDB using YSQL.
The Northwind database is a sample database that was originally created by Microsoft and used as the basis for their tutorials in a variety of database products for decades. The Northwind database contains the sales data for a fictitious company called “Northwind Traders,” which imports and exports specialty foods from around the world. The Northwind database is an excellent tutorial schema for a small-business ERP, with customers, orders, inventory, purchasing, suppliers, shipping, employees, and single-entry accounting. The Northwind database has since been ported to a variety of non-Microsoft databases, including PostgreSQL.
The Northwind dataset includes sample data for the following.
The Northwind sample database includes 14 tables and the table relationships are showcased in the following entity relationship diagram.
The Northwind SQL scripts reside in the share folder of your YugabyteDB or client shell installation. They can also be found in the sample directory of the YugabyteDB GitHub repository. The following files will be used for this exercise:
Follow the steps here to install the Northwind sample database.
If you are using a local installation of YugabyteDB, run the ysqlsh command from the yugabyte root directory.
$ ./bin/ysqlsh
If you are connecting to YugabyteDB Aeon, open the ysqlsh cloud shell, or run the YSQL connection string for your cluster.
To create the Northwind database, run the following CREATE DATABASE statement.
CREATE DATABASE northwind;
Confirm that you have the Northwind database by listing the databases on your cluster.
yugabyte=# \l
Connect to the Northwind database.
yugabyte=# \c northwind
To build the tables and database objects, execute the northwind_ddl.sql SQL script.
northwind=# \i share/northwind_ddl.sql
You can verify that all 14 tables have been created by running the \d command.
northwind=# \d
List of relations
Schema | Name | Type | Owner
--------+------------------------+-------+-------
public | categories | table | admin
public | customer_customer_demo | table | admin
public | customer_demographics | table | admin
public | customers | table | admin
public | employee_territories | table | admin
public | employees | table | admin
public | order_details | table | admin
public | orders | table | admin
public | products | table | admin
public | region | table | admin
public | shippers | table | admin
public | suppliers | table | admin
public | territories | table | admin
public | us_states | table | admin
(14 rows)
To load the northwind database with sample data, run the \i command to execute commands in the northwind_data.sql file.
northwind=# \i share/northwind_data.sql
To verify that you have some data to work with, you can run a simple SELECT statement to pull data from the customers table.
northwind=# SELECT * FROM customers LIMIT 2;
customer_id | company_name | contact_name | contact_title | address | city | region | postal_code | country | phone | fax
-------------+---------------------------+--------------+---------------------+--------------------+-----------+--------+-------------+---------+---------------+-------------
FAMIA | Familia Arquibaldo | Aria Cruz | Marketing Assistant | Rua Orós, 92 | Sao Paulo | SP | 05442-030 | Brazil | (11) 555-9857 |
VINET | Vins et alcools Chevalier | Paul Henriot | Accounting Manager | 59 rue de l'Abbaye | Reims | | 51100 | France | 26.47.15.10 | 26.47.15.11
(2 rows)
That’s it! You are now ready to start exploring the Northwind database and YugabyteDB features using the command line or your favorite PostgreSQL tool.