# Introduction to Prisma Client (/docs/orm/v6/prisma-client/setup-and-configuration/introduction)

Location: ORM > v6 > Prisma Client > Setup and Configuration > Introduction to Prisma Client

Prisma Client is an auto-generated and type-safe query builder that's *tailored* to your data. The easiest way to get started with Prisma Client is by following the **[Quickstart](/prisma-orm/quickstart/sqlite)**.

[⭐ Quickstart (5 min)](/prisma-orm/quickstart/sqlite)

The setup instructions [below](#set-up) provide a high-level overview of the steps needed to set up Prisma Client. If you want to get started using Prisma Client with your own database, follow one of these guides:

[🚀 Set up a new project from scratch](/prisma-orm/quickstart/postgresql)

[➕ Add Prisma to an existing project](/prisma-orm/add-to-existing-project/postgresql)

Set up [#set-up]

1. Prerequisites [#1-prerequisites]

In order to set up Prisma Client, you need a [Prisma schema file](/orm/v6/prisma-schema/overview) with your database connection, the Prisma Client generator, and at least one model:

```prisma title="schema.prisma"
datasource db {
  provider = "postgresql"
}

generator client {
  provider = "prisma-client"
  output   = "../src/generated/prisma"
}

model User {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  email     String   @unique
  name      String?
}
```

Also make sure to [install the Prisma CLI](/orm/v6/tools/prisma-cli#installation):

  

#### npm

```bash
npm install prisma --save-dev
```

#### pnpm

```bash
pnpm add prisma --save-dev
```

#### yarn

```bash
yarn add prisma --dev
```

#### bun

```bash
bun add prisma --dev
```

  

#### npm

```bash
npx prisma
```

#### pnpm

```bash
pnpm dlx prisma
```

#### yarn

```bash
yarn dlx prisma
```

#### bun

```bash
bunx --bun prisma
```

2. Installation [#2-installation]

Install Prisma Client in your project with the following command:

  

#### npm

```bash
npm install @prisma/client
```

#### pnpm

```bash
pnpm add @prisma/client
```

#### yarn

```bash
yarn add @prisma/client
```

#### bun

```bash
bun add @prisma/client
```

3. Importing Prisma Client [#3-importing-prisma-client]

There are multiple ways to import Prisma Client in your project depending on your use case:

  

#### TypeScript

```ts
import { PrismaClient } from "./generated/prisma";

const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
```

#### JavaScript

```js
const { PrismaClient } = require("./generated/prisma");

const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
```

For edge environments, you can import Prisma Client as follows:

  

#### TypeScript

```ts
import { PrismaClient } from "./generated/prisma/edge";

const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
```

#### JavaScript

```js
const { PrismaClient } = require("./generated/prisma/edge");

const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
```

> **Note**: If you're using [driver adapters](/orm/v6/overview/databases/database-drivers#driver-adapters), you can import from the location specified in your generator's `output` path directly, e.g. `./src/generated/prisma`. No need to import from `./src/generated/prisma/edge`.

4. Use Prisma Client to send queries to your database [#4-use-prisma-client-to-send-queries-to-your-database]

Once you have instantiated `PrismaClient`, you can start sending queries in your code:

```ts
// run inside `async` function
const newUser = await prisma.user.create({
  data: {
    name: "Alice",
    email: "alice@prisma.io",
  },
});

const users = await prisma.user.findMany();
```

> [!NOTE]
> All Prisma Client methods return an instance of [`PrismaPromise`](/orm/v6/reference/prisma-client-reference#prismapromise-behavior) which only executes when you call `await` or `.then()` or `.catch()`.

5. Evolving your application [#5-evolving-your-application]

Whenever you make changes to your database that are reflected in the Prisma schema, you need to manually re-generate Prisma Client to update the generated code in your output directory:

```
prisma generate
```

## Related pages

- [`Configuring error formatting`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/error-formatting): This page explains how to configure the formatting of errors when using Prisma Client.
- [`Custom model and field names`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/custom-model-and-field-names): Learn how you can decouple the naming of Prisma models from database tables to improve the ergonomics of the generated Prisma Client API.
- [`Database connections`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/databases-connections): Databases connections
- [`Database polyfills`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/database-polyfills): Prisma Client provides features that are not achievable with relational databases. These features are referred to as "polyfills" and explained on this page.
- [`Generating Prisma Client`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/generating-prisma-client): This page explains how to generate Prisma Client. It also provides additional context on the generated client, typical workflows and Node.js configuration.