Project: YugabyteDB (App Definition and Development / Database)
File: sportsdb.md

title: SportsDB sample database headerTitle: SportsDB sample database linkTitle: SportsDB description: Use the SportsDB to query sports statistics while learning YugabyteDB. menu: v2.18: identifier: sportsdb parent: sample-data weight: 400 type: docs If you like sports statistics, you can install the PostgreSQL-compatible version of SportsDB on the YugabyteDB distributed SQL database and explore statistics for your favorite sport. You can install and use the SportsDB sample database using: A local installation of YugabyteDB. To install YugabyteDB, refer to . Using cloud shell or a client shell to connect to a cluster in YugabyteDB Managed. Refer to . To get started with YugabyteDB Managed, refer to . In either case, you use the YugabyteDB SQL shell () CLI to interact with YugabyteDB using . is a sample sports statistics dataset compiled from multiple sources and encompassing a variety of sports, including football, baseball, basketball, ice hockey, and soccer. It also cross-references many different types of content media. It is capable of supporting queries for the most intense of sports data applications, yet is simple enough for use by those with minimal database experience. The database includes over 100 tables and just as many sequences, unique constraints, foreign keys, and indexes. The dataset also includes almost 80,000 rows of data. It has been ported to MySQL, SQL Server, and PostgreSQL. If you like details, check out this detailed entity relationship (ER) diagram. The SportsDB SQL scripts reside in the `share` folder of your YugabyteDB or client shell installation. They can also be found in the . The following files will be used for this exercise: Creates the tables and sequences Loads the sample data into the `sportsdb` database Creates the unique constraints Creates the foreign key constraints Creates the indexes Follow the steps here to install the SportsDB sample database. If you are using a local installation of YugabyteDB, run the `ysqlsh` command from the `yugabyte` root directory. ```sh $ ./bin/ysqlsh ``` If you are connecting to YugabyteDB Managed, open the , or for your cluster from the `yugabyte-client` bin directory. To create the `sportsdb` database, run the following YSQL command. ```plpgsql CREATE DATABASE sportsdb; ``` Confirm that you have the `sportsdb` database by listing out the databases on your cluster. ```plpgsql yugabyte=# \l ``` Connect to the `sportsdb` database. ```plpgsql yugabyte=# \c sportsdb ``` ```output You are now connected to database "sportsdb" as user "yugabyte". sportsdb=# ``` To build the tables and database objects, run the following command. ```plpgsql sportsdb=# \i share/sportsdb_tables.sql ``` You can verify that all 203 tables and sequences have been created by running the `\d` command. ```plpgsql sportsdb=# \d ``` To load the `sportsdb` database with sample data (~80k rows), run the following command to execute commands in the file. ```plpgsql sportsdb=# \i share/sportsdb_inserts.sql ``` To verify that you have some data to work with, you can run the following simple SELECT statement to pull data from the basketballdefensivestats` table. ```plpgsql sportsdb=# SELECT * FROM basketballdefensivestats WHERE steals_total = '5'; ``` To create the unique constraints and foreign keys, run the following commands. ```plpgsql sportsdb=# \i share/sportsdb_constraints.sql sportsdb=# \i share/sportsdb_fks.sql ``` To create the indexes, run the following command. ```plpgsql sportsdb=# \i share/sportsdb_indexes.sql ``` Thats it! Using the command line or your favorite PostgreSQL development or administration tool, you are now ready to start exploring the SportsDB database and YugabyteDB features.