> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mindsdb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MindsDB Projects

MindsDB enables you to group all objects within [projects](/sql/project).

Projects store [all MindsDB schema objects](/sql/table-structure#the-information-schema-database) except for handlers, connected data sources, and configured AI/ML engines. That is, projects can store models, views, jobs, triggers, agents, skills, knowledge bases, and chatbots.

MindsDB provides the default `mindsdb` project where all objects created without defining a project are stored.

## Working with MindsDB Projects

### Create a Project

Use the below command to create a project.

```sql theme={null}
CREATE PROJECT project_name;
```

<Tip>
  Use lower-case letters for a project name.
</Tip>

### List All Projects

Use the below command to list all projects.

```sql theme={null}
SHOW [FULL] DATABASES
WHERE type = 'project';
```

### Create an Object within a Project

Use the below command template to create an object within a project.

```sql theme={null}
CREATE <OBJECT> project_name.object_name
...;
```

### Drop a Project

Use the below command to remove a project.

```sql theme={null}
DROP PROJECT project_name;
```

<Note>
  Please note that if your project stores at least one object, it cannot be removed. In this case, you should first drop all the objects belonging to this project, and then, you can remove the project.
  Please see the [Example](#example) section for details.
</Note>

## Example

Let's create a project.

```sql theme={null}
CREATE PROJECT my_project;
```

To verify that the project was created successfully, let's run the command below to select all databases, including connected data sources and projects.

```sql theme={null}
SHOW FULL DATABASES;
```

On execution, we get:

```sql theme={null}
+------------------+-------+------+
|Database          |TYPE   |ENGINE|
+------------------+-------+------+
|information_schema|system |[NULL]|
|mindsdb           |project|[NULL]|
|my_project        |project|[NULL]|
|files             |data   |files |
+------------------+-------+------+
```

<Note>
  Please note that `information_schema` is the system database, `mindsdb` is the default project, and `files` is the database to store all uploaded files. For more information, please visit our docs on [MindsDB default structure](/sql/table-structure/).
</Note>

Now we create a model within the project.

```sql theme={null}
CREATE MODEL my_project.my_model
FROM example_db
    (SELECT * FROM demo_data.home_rentals)
PREDICT rental_price;
```

Also, let's create a view.

```sql theme={null}
CREATE VIEW my_project.my_view (
    SELECT * 
    FROM example_db.demo_data.home_rentals
);
```

Here is what we have in the `my_project` project.

```sql theme={null}
SHOW TABLES FROM my_project;
```

On execution, we get:

```sql theme={null}
+--------------------+
|Tables_in_my_project|
+--------------------+
|my_model            |
|my_view             |
+--------------------+
```

Let's try to delete our project.

```sql theme={null}
DROP PROJECT my_project;
```

On execution, we get:

```sql theme={null}
Project 'my_project' can not be deleted, because it contains tables: my_model, my_view
```

Users should remove all project content before dropping a project.

```sql theme={null}
DROP MODEL my_project.my_model;
DROP VIEW my_project.my_view;
```

Now we can proceed to drop a project.

```sql theme={null}
DROP PROJECT my_project;
```

<Info>
  **Next Steps**

  Below are the links to help you explore further.

  * Find out how to [create and use projects](/sql/create/project).
  * Learn more about [MindsDB Schema](/sql/table-structure).
</Info>
