# Prisma's Data Guide - Articles to make databases more approachable > Part of Prisma's Data Guide. The complete index is at https://www.prisma.io/dataguide/llms.txt. Learn how databases work, how to choose the right one, and how to use databases with your applications to their full potential. Canonical URL: https://www.prisma.io/dataguide Content revision: d63a2962984e4d7c087fa26169ff1009afa41a14fcb2bf7e1baeeeb77cc2fed6 Source revision: 1fe7ef3d9287b7c3aadd4cd0d2fe478dafd71727 ## [Introduction to databases](https://www.prisma.io/dataguide/intro) Learn the basics of what databases are, why they are so important for most software, and which types of databases are best for different use cases. Start from the fundamentals to give yourself a solid foundation. - [What are databases?](https://www.prisma.io/dataguide/intro/what-are-databases) - [Comparing database types: how database types evolved to meet different needs](https://www.prisma.io/dataguide/intro/comparing-database-types) - [Introduction to database schemas](https://www.prisma.io/dataguide/intro/intro-to-schemas) - [Glossary of common database terminology](https://www.prisma.io/dataguide/intro/database-glossary) ## [Data modeling](https://www.prisma.io/dataguide/datamodeling) A crash course in (relational, although not ignoring others) designing data models. Concentrating first on situating databases and data modeling problems in an organization and systems design context before moving on to some of the less-prominent areas of database functionality. Published in partnership with [Dian Fay](https://di.nmfay.com/). - [Intro (don't panic)](https://www.prisma.io/dataguide/datamodeling/intro-dont-panic) - [Know your problem space](https://www.prisma.io/dataguide/datamodeling/know-your-problem-space) - [Tables, tuples, types](https://www.prisma.io/dataguide/datamodeling/tables-tuples-types) - [Correctness and constraints](https://www.prisma.io/dataguide/datamodeling/correctness-constraints) - [Making connections](https://www.prisma.io/dataguide/datamodeling/making-connections) - [Functional units](https://www.prisma.io/dataguide/datamodeling/functional-units) - [In vivo: information ecosystems](https://www.prisma.io/dataguide/datamodeling/in-vivo) ## [Database types](https://www.prisma.io/dataguide/types) Each style of database has its own strengths and weaknesses. Learn more about common database types to help choose which one is best for you. - [Comparing relational and document databases](https://www.prisma.io/dataguide/types/relational-vs-document-databases) ### [Relational databases](https://www.prisma.io/dataguide/types/relational) Relational databases are great at handling highly structured data and making it accessible through flexible querying. Discover why the relational paradigm has stood the test of time. - [What is an ORM?](https://www.prisma.io/dataguide/types/relational/what-is-an-orm) - [Comparing SQL, query builders, and ORMs](https://www.prisma.io/dataguide/types/relational/comparing-sql-query-builders-and-orms) - [What are database migrations?](https://www.prisma.io/dataguide/types/relational/what-are-database-migrations) - [Strategies for deploying database migrations](https://www.prisma.io/dataguide/types/relational/migration-strategies) - [Using the expand and contract pattern for schema changes](https://www.prisma.io/dataguide/types/relational/expand-and-contract-pattern) - [Comparing common database infrastructure patterns](https://www.prisma.io/dataguide/types/relational/infrastructure-architecture) - [What are JOINs in SQL?](https://www.prisma.io/dataguide/types/relational/what-are-joins-in-sql) ### [Document databases](https://www.prisma.io/dataguide/types/document) Document databases are a great way for working flexibly with data with high scalability and agility. Discover why document databases continue to gain in popularity. - [What are document databases?](https://www.prisma.io/dataguide/types/document/what-are-document-dbs) ## [PostgreSQL](https://www.prisma.io/dataguide/postgresql) PostgreSQL is a feature rich object-relational database that offers incredible power and flexibility while maintaining standards compliance. Learn how to configure and use PostgreSQL to take advantage of its best features. - [The benefits of PostgreSQL](https://www.prisma.io/dataguide/postgresql/benefits-of-postgresql) - [Getting to know PostgreSQL](https://www.prisma.io/dataguide/postgresql/getting-to-know-postgresql) - [5 ways to host PostgreSQL databases](https://www.prisma.io/dataguide/postgresql/5-ways-to-host-postgresql) - [Setting up a local PostgreSQL database](https://www.prisma.io/dataguide/postgresql/setting-up-a-local-postgresql-database) - [How to configure PostgreSQL on Amazon RDS for production](https://www.prisma.io/dataguide/postgresql/setting-up-postgresql-on-rds) - [Connecting to PostgreSQL databases](https://www.prisma.io/dataguide/postgresql/connecting-to-postgresql-databases) - [Authentication and authorization](https://www.prisma.io/dataguide/postgresql/authentication-and-authorization) - [An introduction to authorization and authentication in PostgreSQL](https://www.prisma.io/dataguide/postgresql/authentication-and-authorization/intro-to-authn-and-authz) - [Managing roles and role attributes in PostgreSQL](https://www.prisma.io/dataguide/postgresql/authentication-and-authorization/role-management) - [Configuring PostgreSQL user authentication](https://www.prisma.io/dataguide/postgresql/authentication-and-authorization/configuring-user-authentication) - [Managing privileges in PostgreSQL with grant and revoke](https://www.prisma.io/dataguide/postgresql/authentication-and-authorization/managing-privileges) - [How to create and delete databases and tables in PostgreSQL](https://www.prisma.io/dataguide/postgresql/create-and-delete-databases-and-tables) - [An introduction to PostgreSQL data types](https://www.prisma.io/dataguide/postgresql/introduction-to-data-types) - [An introduction to PostgreSQL column and table constraints](https://www.prisma.io/dataguide/postgresql/column-and-table-constraints) - [Inserting and modifying data](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data) - [How to insert and delete data in PostgreSQL](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data/inserting-and-deleting-data) - [How to update existing data in PostgreSQL](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data/updating-existing-data) - [How to use \`INSERT ON CONFLICT\` to upsert data in PostgreSQL](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data/insert-on-conflict) - [Importing and exporting data in PostgreSQL](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data/importing-and-exporting-data-in-postgresql) - [Understanding and using transactions in PostgreSQL](https://www.prisma.io/dataguide/postgresql/inserting-and-modifying-data/using-transactions) - [Reading and querying data](https://www.prisma.io/dataguide/postgresql/reading-and-querying-data) - [How to perform basic queries with \`SELECT\` in PostgreSQL](https://www.prisma.io/dataguide/postgresql/reading-and-querying-data/basic-select) - [How to filter query results in PostgreSQL](https://www.prisma.io/dataguide/postgresql/reading-and-querying-data/filtering-data) - [Using joins to combine data from different tables in PostgreSQL](https://www.prisma.io/dataguide/postgresql/reading-and-querying-data/joining-tables) - [Introduction to optimizing PostgreSQL performance](https://www.prisma.io/dataguide/postgresql/reading-and-querying-data/optimizing-postgresql) - [Short guides](https://www.prisma.io/dataguide/postgresql/short-guides) - [How to use single and double quotes in PostgreSQL](https://www.prisma.io/dataguide/postgresql/short-guides/quoting-rules) - [How to create and delete users in PostgreSQL](https://www.prisma.io/dataguide/postgresql/short-guides/creating-deleting-users) - [Introduction to PostgreSQL connection URIs](https://www.prisma.io/dataguide/postgresql/short-guides/connection-uris) - [How to export database and table schemas in PostgreSQL](https://www.prisma.io/dataguide/postgresql/short-guides/exporting-schemas) - [Working with dates in PostgreSQL](https://www.prisma.io/dataguide/postgresql/date-types) ## [MySQL](https://www.prisma.io/dataguide/mysql) MySQL is one of the most popular relational databases in the world, offering fast performance and production-ready power. Learn how to take advantage of MySQL's features for your project or website. - [5 ways to host MySQL databases](https://www.prisma.io/dataguide/mysql/5-ways-to-host-mysql) - [Setting up a local MySQL database](https://www.prisma.io/dataguide/mysql/setting-up-a-local-mysql-database) - [Connecting to MySQL databases](https://www.prisma.io/dataguide/mysql/connecting-to-mysql-databases) - [Authentication and authorization](https://www.prisma.io/dataguide/mysql/authentication-and-authorization) - [An introduction to authorization and authentication in MySQL](https://www.prisma.io/dataguide/mysql/authentication-and-authorization/intro-to-authn-and-authz) - [How to manage users and authentication in MySQL](https://www.prisma.io/dataguide/mysql/authentication-and-authorization/user-management-and-authentication) - [How to use \`GRANT\` and \`REVOKE\` to manage privileges in MySQL](https://www.prisma.io/dataguide/mysql/authentication-and-authorization/privilege-management) - [How to manage privileges with roles in MySQL](https://www.prisma.io/dataguide/mysql/authentication-and-authorization/role-management) - [How to create and delete databases and tables in MySQL](https://www.prisma.io/dataguide/mysql/create-and-delete-databases-and-tables) - [An introduction to MySQL data types](https://www.prisma.io/dataguide/mysql/introduction-to-data-types) - [An introduction to MySQL column and table constraints](https://www.prisma.io/dataguide/mysql/column-and-table-constraints) - [Inserting and modifying data](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data) - [How to insert and delete data in MySQL](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data/inserting-and-deleting-data) - [How to update existing data in MySQL](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data/updating-existing-data) - [How to use \`ON DUPLICATE KEY UPDATE\` to upsert data in MySQL](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data/insert-on-duplicate-key-update) - [Importing and exporting data in MySQL](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data/importing-and-exporting-data-in-mysql) - [Understanding and using transactions in MySQL](https://www.prisma.io/dataguide/mysql/inserting-and-modifying-data/using-transactions) - [Reading and querying data](https://www.prisma.io/dataguide/mysql/reading-and-querying-data) - [How to perform basic queries with \`SELECT\` in MySQL](https://www.prisma.io/dataguide/mysql/reading-and-querying-data/basic-select) - [How to filter query results in MySQL](https://www.prisma.io/dataguide/mysql/reading-and-querying-data/filtering-data) - [Using joins to combine data from different tables in MySQL](https://www.prisma.io/dataguide/mysql/reading-and-querying-data/joining-tables) - [Identifying slow queries in MySQL](https://www.prisma.io/dataguide/mysql/reading-and-querying-data/identifying-slow-queries) - [Profiling and optimizing slow queries in MySQL](https://www.prisma.io/dataguide/mysql/reading-and-querying-data/optimizing-slow-queries) - [Tools and utilities](https://www.prisma.io/dataguide/mysql/tools) - [Using \`mysql\_config\_editor\` to manage MySQL credentials](https://www.prisma.io/dataguide/mysql/tools/mysql-config-editor) - [Short guides](https://www.prisma.io/dataguide/mysql/short-guides) - [How to create and delete users in MySQL](https://www.prisma.io/dataguide/mysql/short-guides/creating-deleting-users) - [How to check your MySQL configuration for syntax errors](https://www.prisma.io/dataguide/mysql/short-guides/validate-configuration) - [How to export database and table schemas in MySQL](https://www.prisma.io/dataguide/mysql/short-guides/exporting-schemas) ## [SQLite](https://www.prisma.io/dataguide/sqlite) SQLite is a collection of a library, file format, and command line utility that provides self-contained relational database capabilities in local environments. Learn how to care for your application's data using SQLite's versatile, reliable data management capabilities. - [Setting up a local SQLite database](https://www.prisma.io/dataguide/sqlite/setting-up-a-local-sqlite-database) - [Importing and exporting data in SQLite](https://www.prisma.io/dataguide/sqlite/importing-and-exporting-data-in-sqlite) - [Creating and deleting databases and tables with SQLite](https://www.prisma.io/dataguide/sqlite/creating-and-deleting-databases-and-tables) - [Inserting and deleting data with SQLite](https://www.prisma.io/dataguide/sqlite/inserting-and-deleting-data) - [How to perform basic queries with \`SELECT\` with SQLite](https://www.prisma.io/dataguide/sqlite/basic-select) - [How to update existing data with SQLite](https://www.prisma.io/dataguide/sqlite/update-data) - [How to export database and table schemas in SQLite](https://www.prisma.io/dataguide/sqlite/exporting-schemas) ## [Microsoft SQL Server](https://www.prisma.io/dataguide/mssql) Microsoft SQL Server is a powerful and mature relational database system that integrates well with the Microsoft ecosystem and other environments. Learn how to take advantage of the benefits offered by Microsoft SQL Server to power your next application. - [Setting up a local SQL Server database](https://www.prisma.io/dataguide/mssql/setting-up-a-local-sql-server-database) ## [MongoDB](https://www.prisma.io/dataguide/mongodb) MongoDB is a popular document database that is often praised for its practicality and its ability to allow for rapid prototyping and development. Learn how to use MongoDB to its fullest to take advantage of the performance and features that developers have grown to rely on. - [What is MongoDB?](https://www.prisma.io/dataguide/mongodb/what-is-mongodb) - [Setting up a local MongoDB database](https://www.prisma.io/dataguide/mongodb/setting-up-a-local-mongodb-database) - [Connecting to MongoDB databases](https://www.prisma.io/dataguide/mongodb/connecting-to-mongodb) - [Provisioning a MongoDB Atlas cluster](https://www.prisma.io/dataguide/mongodb/mongodb-atlas-setup) - [How to manage users and authentication in MongoDB](https://www.prisma.io/dataguide/mongodb/configuring-mongodb-user-accounts-and-authentication) - [How to manage authorization and privileges in MongoDB](https://www.prisma.io/dataguide/mongodb/authorization-and-privileges) - [How to manage databases and collections in MongoDB](https://www.prisma.io/dataguide/mongodb/creating-dbs-and-collections) - [How to manage documents in MongoDB](https://www.prisma.io/dataguide/mongodb/managing-documents) - [How to query and filter documents in MongoDB](https://www.prisma.io/dataguide/mongodb/querying-documents) - [Introduction to MongoDB data types](https://www.prisma.io/dataguide/mongodb/mongodb-datatypes) - [Introduction to MongoDB indexes](https://www.prisma.io/dataguide/mongodb/mongodb-indexes) - [Introduction to MongoDB transactions](https://www.prisma.io/dataguide/mongodb/mongodb-transactions) - [Introduction to MongoDB connection URIs](https://www.prisma.io/dataguide/mongodb/connection-uris) - [Working with dates and times in MongoDB](https://www.prisma.io/dataguide/mongodb/working-with-dates) - [How MongoDB encrypts data](https://www.prisma.io/dataguide/mongodb/mongodb-encryption) - [Introduction to MongoDB database tools & utilities](https://www.prisma.io/dataguide/mongodb/mongodb-database-tools) - [How to sort query results in MongoDB](https://www.prisma.io/dataguide/mongodb/mongodb-sorting) - [Introduction to MongoDB Aggregation Framework](https://www.prisma.io/dataguide/mongodb/mongodb-aggregation-framework) ## [Database tools](https://www.prisma.io/dataguide/database-tools) Tools dedicated to improving your interactions with databases. - [Node.js ORMs, query builders and database libraries in 2026](https://www.prisma.io/dataguide/database-tools/top-nodejs-orms-query-builders-and-database-libraries) - [Evaluating type safety in TypeScript ORMs and query builders (2026)](https://www.prisma.io/dataguide/database-tools/evaluating-type-safety-in-the-top-8-typescript-orms) - [What is connection pooling and how does it work?](https://www.prisma.io/dataguide/database-tools/connection-pooling) ## [Managing databases](https://www.prisma.io/dataguide/managing-databases) Strategies and techniques for maintaining and managing databases in your environments. - [Troubleshooting database outages and connection issues](https://www.prisma.io/dataguide/managing-databases/database-troubleshooting) - [How to spot bottlenecks in performance](https://www.prisma.io/dataguide/managing-databases/how-to-spot-bottlenecks-in-performance) - [Syncing development databases between team members](https://www.prisma.io/dataguide/managing-databases/syncing-development-databases-between-team-members) - [Database replication](https://www.prisma.io/dataguide/managing-databases/database-replication) - [An introduction to database replication and its benefits](https://www.prisma.io/dataguide/managing-databases/database-replication/database-replication-introduction) - [Introduction to OLAP and OLTP](https://www.prisma.io/dataguide/managing-databases/introduction-to-OLAP-OLTP) - [How microservices and monoliths impact the database](https://www.prisma.io/dataguide/managing-databases/microservices-vs-monoliths) - [Introduction to database caching](https://www.prisma.io/dataguide/managing-databases/introduction-database-caching) - [Introduction to testing in production](https://www.prisma.io/dataguide/managing-databases/testing-in-production) - [Introduction to database backup considerations](https://www.prisma.io/dataguide/managing-databases/backup-considerations) - [Introduction to full-text search](https://www.prisma.io/dataguide/managing-databases/intro-to-full-text-search) ## [Serverless architecture](https://www.prisma.io/dataguide/serverless) The serverless model represents a new way of designing applications by abstracting the infrastructure and focusing only on code execution. Learn more about about serverless concepts, providers, and terms to evaluate serverless for your next project. - [What is serverless?](https://www.prisma.io/dataguide/serverless/what-is-serverless) - [Comparing serverless computing and database providers](https://www.prisma.io/dataguide/serverless/serverless-comparison) - [Introduction to common serverless challenges](https://www.prisma.io/dataguide/serverless/serverless-challenges) - [Traditional databases vs serverless databases](https://www.prisma.io/dataguide/serverless/traditional-vs-serverless-databases) - [Serverless glossary](https://www.prisma.io/dataguide/serverless/serverless-glossary) ## [Just for fun](https://www.prisma.io/dataguide/just-for-fun) A collection of interesting topics and research not pertaining to any specific topic but just for fun :) - [The United States' most popular databases going into 2022](https://www.prisma.io/dataguide/just-for-fun/us-most-popular-databases-by-states)