SlideShare a Scribd company logo
PostgreSQL
Akash Pundir
System Programming
School of Computer Science and Engineering
What is a Database?
A database is a structured
collection of data organized for
efficient retrieval, storage, and
manipulation. It serves as a
central repository for storing
and managing information in a
structured manner.
DBMS (Database Management
System)
It is a software system that
facilitates the creation,
organization, manipulation, and
administration of databases. DBMS
serves as an interface between
users or applications and the
database itself, providing a set
of tools and functionalities for
managing data efficiently
PostgresSQL
PostgreSQL (often abbreviated
as Postgres) is a powerful
open-source relational
database management system
(RDBMS).
Relational Database Management
System (RDBMS)
• In the relational model, data is organized into
tables, also known as relations.
• Each table consists of rows (tuples) and
columns (attributes).
• Rows represent individual records or instances,
while columns represent attributes or
properties of those records.
Structured Query Language
• SQL is the standard language for interacting
with RDBMS.
• It provides a set of commands for defining,
querying, manipulating, and managing relational
databases.
• Common SQL commands include SELECT, INSERT,
UPDATE, DELETE, CREATE TABLE, ALTER TABLE, DROP
TABLE, and many others
Navigate to
https://www.postgresql.org/dow
nload/
PostgreSQL, MongoDb, Express, React, Structured
PostgreSQL, MongoDb, Express, React, Structured
Now, run the installer and
complete setup
• After that open sql shell
Listing Databases
• To list all databases, use the l command:
l
Connecting to a Specific
Database
• To connect to a specific database, use the c
command
c database_name
Let’s try creating a table
CREATE TABLE todos (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
completed BOOLEAN NOT NULL
);
Listing Tables
• To list all tables in the current database, use
the dt command
dt
Describing a Table
• To describe the structure of a specific table,
use the d command:
d table_name
Viewing Data
• To view data from a table, use a simple SQL
query
SELECT * FROM table_name;
Now, let’s install POSTMAN
• Postman simplifies the process of testing
APIs by providing a user-friendly
interface for sending HTTP requests and
viewing responses.
• It supports various request types such as
GET, POST, PUT, DELETE, PATCH, etc.,
allowing users to test different API
endpoints and methods.
https://www.postman.com/downloads/
https://www.postman.com/downlo
ads/
Let’s setup a new node project
npm init -y
Install necessary libraries
npm i express pg
Make a new index.js file in
the same folder
const express = require('express');
const { Pool } = require('pg');
const app = express();
const port = 3000;
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'postgres',
password: 'root',
port: 5432,
});
app.use(express.json());
// GET all todos
app.get('/todos', (req, res) => {
pool.query('SELECT * FROM todos', (error, result) =>
{
if (error) {
console.error('Error fetching todos', error);
res.status(500).json({ error: 'Internal server
error' });
} else {
res.json(result.rows);
}
});
});
// POST a new todo
app.post('/todos', (req, res) => {
const { title, completed } = req.body;
pool.query('INSERT INTO todos (title, completed) VALUES ($1, $2)',
[title, completed], (error) => {
if (error) {
console.error('Error creating todo', error);
res.status(500).json({ error: 'Internal server error' });
} else {
res.status(201).json({ message: 'Todo created successfully' });
}
});
});
// PUT update todo
app.put('/todos/:id', (req, res) => {
const { id } = req.params;
const { title, completed } = req.body;
pool.query('UPDATE todos SET title = $1, completed = $2 WHERE id = $3', [title,
completed, id], (error) => {
if (error) {
console.error('Error updating todo', error);
res.status(500).json({ error: 'Internal server error' });
} else {
res.json({ message: 'Todo updated successfully' });
}
});
});
Object Relational
Mapping
ORM is a programming technique
that allows developers to work
with relational databases
using object-oriented
programming languages,
enabling them to interact with
database entities as if they
were ordinary objects in their
PostgreSQL, MongoDb, Express, React, Structured
Sequalize
Sequelize is a popular Object-Relational
Mapping (ORM) library for Node.js, used
with SQL databases such as PostgreSQL,
MySQL, MariaDB, SQLite, and MSSQL
Key Features
• Model Definition: Sequelize allows developers to define
models that map directly to database tables. These
models specify the structure of the data and the
relationships between different tables.
• Querying: Sequelize provides methods for executing SQL
queries against the database, including selecting,
inserting, updating, and deleting records. It supports
various query options and conditions.
• Data Validation: Sequelize includes built-in support
for data validation, allowing developers to define
constraints on the data being saved to the database.
This helps ensure data integrity and consistency.
• Associations: Sequelize enables developers to define
relationships between different models, such as one-to-
one, one-to-many, and many-to-many associations. These
Create a new directory for
your project and navigate into
it via the terminal.
mkdir sequelize-postgres
cd sequelize-postgres
Initialize a new Node.js
project:
npm init -y
Install Express Sequelize,
PostgreSQL, and the pg driver:
npm install express sequelize
pg pg-hstore
• sequelize: This is the main library itself.
Sequelize is an ORM that abstracts away the
intricacies of SQL queries and provides a
simple API for interacting with your database
tables as JavaScript objects.
• pg: This is the PostgreSQL client for Node.js.
Sequelize uses this package to communicate with
PostgreSQL databases.
• pg-hstore: This is a module that Sequelize uses
for managing JSON data in PostgreSQL.
Set up Sequelize:
Create a file named sequelize.js in your
project directory:
const { Sequelize } = require('sequelize');
// Initialize Sequelize with your PostgreSQL database
credentials
const sequelize = new Sequelize('postgres', 'postgres',
'root', {
host: 'localhost',
dialect: 'postgres', // Specify the dialect for PostgreSQL
});
module.exports = sequelize;
Define a model:
Create a folder named models in your project
directory, and within it, create a file named
Todo.js:
const { DataTypes } = require('sequelize');
const sequelize = require('../sequelize');
const Todo = sequelize.define('Todo', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
title: {
type: DataTypes.STRING,
allowNull: false
},
completed: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: false
}
}, {
tableName: 'todos', // Match the table name with your
existing database table
timestamps: false
});
module.exports = Todo;
Create an index.js file in your
project directory to initialize
Sequelize and synchronize the models
with the database:
const express = require('express');
const sequelize = require('./sequelize');
const Todo = require('./models/Todo');
const app = express();
const PORT = 3000;
// Test the database connection
sequelize.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
// Synchronize defined models with the database
return sequelize.sync({ alter: true });
})
.then(() => {
console.log('All models were synchronized successfully.');
})
.catch((error) => {
console.error('Unable to connect to the database:', error);
});
app.use(express.json());
// Define endpoints
app.get('/todos', (req, res) => {
Todo.findAll()
.then((todos) => {
res.json(todos);
})
.catch((error) => {
res.status(500).json({ error: 'Internal server error' });
});
});
app.post('/todos', (req, res) => {
const { title, completed } = req.body;
Todo.create({ title, completed })
.then((todo) => {
res.status(201).json(todo);
})
.catch((error) => {
res.status(400).json({ error: 'Bad request' });
});
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});

More Related Content

PPTX
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
PPTX
Module 5 Web Programing Setting Up Postgres.pptx
PPTX
Sequelize
PPTX
Connect to NoSQL Database (MongoDB) using Node JS & Connect Node.js with NoSQ...
PPTX
Sequelize js
PDF
NoSQL on ACID - Meet Unstructured Postgres
 
PDF
EDB NoSQL German Webinar 2015
 
PDF
Introduction to MongoDB
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Module 5 Web Programing Setting Up Postgres.pptx
Sequelize
Connect to NoSQL Database (MongoDB) using Node JS & Connect Node.js with NoSQ...
Sequelize js
NoSQL on ACID - Meet Unstructured Postgres
 
EDB NoSQL German Webinar 2015
 
Introduction to MongoDB

Similar to PostgreSQL, MongoDb, Express, React, Structured (20)

PDF
NoSQL and CouchDB
PDF
Postgres: The NoSQL Cake You Can Eat
 
PPTX
JS App Architecture
PDF
NoSQL Now: Postgres - The NoSQL Cake You Can Eat
PPTX
PostgreSQL - Object Relational Database
PDF
Your Database Cannot Do this (well)
PPTX
MongoDB
PDF
Learn backend java script
PDF
NoSQL and Spatial Database Capabilities using PostgreSQL
 
PPTX
Python Ireland Conference 2016 - Python and MongoDB Workshop
PPT
Wmware NoSQL
PDF
Introduction to MongoDB Basics from SQL to NoSQL
PDF
PostgreSQL, your NoSQL database
PDF
No sql way_in_pg
PDF
NoSQL Databases Introduction - UTN 2013
ODP
Meet the-other-elephant
PPT
The NoSQL Way in Postgres
 
PDF
Which Questions We Should Have
PPTX
Local SQLite Database with Node for beginners
PDF
Postgres NoSQL - Delivering Apps Faster
 
NoSQL and CouchDB
Postgres: The NoSQL Cake You Can Eat
 
JS App Architecture
NoSQL Now: Postgres - The NoSQL Cake You Can Eat
PostgreSQL - Object Relational Database
Your Database Cannot Do this (well)
MongoDB
Learn backend java script
NoSQL and Spatial Database Capabilities using PostgreSQL
 
Python Ireland Conference 2016 - Python and MongoDB Workshop
Wmware NoSQL
Introduction to MongoDB Basics from SQL to NoSQL
PostgreSQL, your NoSQL database
No sql way_in_pg
NoSQL Databases Introduction - UTN 2013
Meet the-other-elephant
The NoSQL Way in Postgres
 
Which Questions We Should Have
Local SQLite Database with Node for beginners
Postgres NoSQL - Delivering Apps Faster
 
Ad

Recently uploaded (20)

PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
Well-logging-methods_new................
PDF
PPT on Performance Review to get promotions
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
Internet of Things (IOT) - A guide to understanding
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
OOP with Java - Java Introduction (Basics)
PPT
Project quality management in manufacturing
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
UNIT-1 - COAL BASED THERMAL POWER PLANTS
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Foundation to blockchain - A guide to Blockchain Tech
Well-logging-methods_new................
PPT on Performance Review to get promotions
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Internet of Things (IOT) - A guide to understanding
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
OOP with Java - Java Introduction (Basics)
Project quality management in manufacturing
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
CH1 Production IntroductoryConcepts.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
R24 SURVEYING LAB MANUAL for civil enggi
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Ad

PostgreSQL, MongoDb, Express, React, Structured

  • 1. PostgreSQL Akash Pundir System Programming School of Computer Science and Engineering
  • 2. What is a Database? A database is a structured collection of data organized for efficient retrieval, storage, and manipulation. It serves as a central repository for storing and managing information in a structured manner.
  • 3. DBMS (Database Management System) It is a software system that facilitates the creation, organization, manipulation, and administration of databases. DBMS serves as an interface between users or applications and the database itself, providing a set of tools and functionalities for managing data efficiently
  • 4. PostgresSQL PostgreSQL (often abbreviated as Postgres) is a powerful open-source relational database management system (RDBMS).
  • 5. Relational Database Management System (RDBMS) • In the relational model, data is organized into tables, also known as relations. • Each table consists of rows (tuples) and columns (attributes). • Rows represent individual records or instances, while columns represent attributes or properties of those records.
  • 6. Structured Query Language • SQL is the standard language for interacting with RDBMS. • It provides a set of commands for defining, querying, manipulating, and managing relational databases. • Common SQL commands include SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, DROP TABLE, and many others
  • 10. Now, run the installer and complete setup • After that open sql shell
  • 11. Listing Databases • To list all databases, use the l command: l
  • 12. Connecting to a Specific Database • To connect to a specific database, use the c command c database_name
  • 13. Let’s try creating a table CREATE TABLE todos ( id SERIAL PRIMARY KEY, title TEXT NOT NULL, completed BOOLEAN NOT NULL );
  • 14. Listing Tables • To list all tables in the current database, use the dt command dt
  • 15. Describing a Table • To describe the structure of a specific table, use the d command: d table_name
  • 16. Viewing Data • To view data from a table, use a simple SQL query SELECT * FROM table_name;
  • 17. Now, let’s install POSTMAN • Postman simplifies the process of testing APIs by providing a user-friendly interface for sending HTTP requests and viewing responses. • It supports various request types such as GET, POST, PUT, DELETE, PATCH, etc., allowing users to test different API endpoints and methods. https://www.postman.com/downloads/
  • 19. Let’s setup a new node project npm init -y
  • 21. Make a new index.js file in the same folder const express = require('express'); const { Pool } = require('pg'); const app = express(); const port = 3000; const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'postgres', password: 'root', port: 5432, }); app.use(express.json());
  • 22. // GET all todos app.get('/todos', (req, res) => { pool.query('SELECT * FROM todos', (error, result) => { if (error) { console.error('Error fetching todos', error); res.status(500).json({ error: 'Internal server error' }); } else { res.json(result.rows); } }); });
  • 23. // POST a new todo app.post('/todos', (req, res) => { const { title, completed } = req.body; pool.query('INSERT INTO todos (title, completed) VALUES ($1, $2)', [title, completed], (error) => { if (error) { console.error('Error creating todo', error); res.status(500).json({ error: 'Internal server error' }); } else { res.status(201).json({ message: 'Todo created successfully' }); } }); });
  • 24. // PUT update todo app.put('/todos/:id', (req, res) => { const { id } = req.params; const { title, completed } = req.body; pool.query('UPDATE todos SET title = $1, completed = $2 WHERE id = $3', [title, completed, id], (error) => { if (error) { console.error('Error updating todo', error); res.status(500).json({ error: 'Internal server error' }); } else { res.json({ message: 'Todo updated successfully' }); } }); });
  • 25. Object Relational Mapping ORM is a programming technique that allows developers to work with relational databases using object-oriented programming languages, enabling them to interact with database entities as if they were ordinary objects in their
  • 27. Sequalize Sequelize is a popular Object-Relational Mapping (ORM) library for Node.js, used with SQL databases such as PostgreSQL, MySQL, MariaDB, SQLite, and MSSQL
  • 28. Key Features • Model Definition: Sequelize allows developers to define models that map directly to database tables. These models specify the structure of the data and the relationships between different tables. • Querying: Sequelize provides methods for executing SQL queries against the database, including selecting, inserting, updating, and deleting records. It supports various query options and conditions. • Data Validation: Sequelize includes built-in support for data validation, allowing developers to define constraints on the data being saved to the database. This helps ensure data integrity and consistency. • Associations: Sequelize enables developers to define relationships between different models, such as one-to- one, one-to-many, and many-to-many associations. These
  • 29. Create a new directory for your project and navigate into it via the terminal. mkdir sequelize-postgres cd sequelize-postgres
  • 30. Initialize a new Node.js project: npm init -y
  • 31. Install Express Sequelize, PostgreSQL, and the pg driver: npm install express sequelize pg pg-hstore
  • 32. • sequelize: This is the main library itself. Sequelize is an ORM that abstracts away the intricacies of SQL queries and provides a simple API for interacting with your database tables as JavaScript objects. • pg: This is the PostgreSQL client for Node.js. Sequelize uses this package to communicate with PostgreSQL databases. • pg-hstore: This is a module that Sequelize uses for managing JSON data in PostgreSQL.
  • 33. Set up Sequelize: Create a file named sequelize.js in your project directory: const { Sequelize } = require('sequelize'); // Initialize Sequelize with your PostgreSQL database credentials const sequelize = new Sequelize('postgres', 'postgres', 'root', { host: 'localhost', dialect: 'postgres', // Specify the dialect for PostgreSQL }); module.exports = sequelize;
  • 34. Define a model: Create a folder named models in your project directory, and within it, create a file named Todo.js: const { DataTypes } = require('sequelize'); const sequelize = require('../sequelize'); const Todo = sequelize.define('Todo', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, title: { type: DataTypes.STRING, allowNull: false },
  • 35. completed: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false } }, { tableName: 'todos', // Match the table name with your existing database table timestamps: false }); module.exports = Todo;
  • 36. Create an index.js file in your project directory to initialize Sequelize and synchronize the models with the database: const express = require('express'); const sequelize = require('./sequelize'); const Todo = require('./models/Todo'); const app = express(); const PORT = 3000;
  • 37. // Test the database connection sequelize.authenticate() .then(() => { console.log('Connection has been established successfully.'); // Synchronize defined models with the database return sequelize.sync({ alter: true }); }) .then(() => { console.log('All models were synchronized successfully.'); }) .catch((error) => { console.error('Unable to connect to the database:', error); }); app.use(express.json());
  • 38. // Define endpoints app.get('/todos', (req, res) => { Todo.findAll() .then((todos) => { res.json(todos); }) .catch((error) => { res.status(500).json({ error: 'Internal server error' }); }); }); app.post('/todos', (req, res) => { const { title, completed } = req.body; Todo.create({ title, completed }) .then((todo) => { res.status(201).json(todo); }) .catch((error) => { res.status(400).json({ error: 'Bad request' }); }); }); app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });