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}`);
});
Ad

Recommended

PPTX
La sql
James Johnson
 
PPTX
Entity Framework Database and Code First
James Johnson
 
PPT
Mongo Bb - NoSQL tutorial
Mohan Rathour
 
PPTX
Chjkkkkkkkkkkkkkkkkkjjjjjjjjjjjjjjjjjjjjjjjjjj01_The Basics.pptx
MhmdMk10
 
PPTX
Node js crash course session 5
Abdul Rahman Masri Attal
 
PDF
Advanced database lab oracle structure query language
afendimohammed288
 
PPTX
Jdbc Java Programming
chhaichivon
 
PPT
Sqlite
Kumar
 
PPTX
Azure cosmos db, Azure no-SQL database,
BRIJESH KUMAR
 
PPTX
MongoDB Knowledge share
Mr Kyaing
 
PPTX
Asp .Net Database Connectivity Presentation.pptx
sridharu1981
 
PPTX
Big data technology unit 3
RojaT4
 
PPTX
Database Programming Techniques
Raji Ghawi
 
PDF
Adv DB - Full Handout.pdf
3BRBoruMedia
 
PDF
SQL or NoSQL, is this the question? - George Grammatikos
George Grammatikos
 
PPTX
Introduction to Node.js
Winston Hsieh
 
PPTX
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Michael Rys
 
PPTX
Contains the SQLite database management classes that an application would use...
GabrielPachasAlvarad
 
PDF
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
Daniel N
 
PDF
[2015/2016] Local data storage for web-based mobile apps
Ivano Malavolta
 
PPTX
Beige_Pastel_Minimalist_Thesis_Defense_Presentation_(3)[1].pptx
21981a05i0
 
PPT
Ado
abhay singh
 
PPT
MYSQL - PHP Database Connectivity
V.V.Vanniaperumal College for Women
 
PPTX
Polyglot Database - Linuxcon North America 2016
Dave Stokes
 
PPTX
Postgresql
NexThoughts Technologies
 
PDF
Software development - the java perspective
Alin Pandichi
 
PDF
Access Data from XPages with the Relational Controls
Teamstudio
 
PPT
SQLITE Android
Sourabh Sahu
 
PDF
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
PDF
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 

More Related Content

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

PPTX
Azure cosmos db, Azure no-SQL database,
BRIJESH KUMAR
 
PPTX
MongoDB Knowledge share
Mr Kyaing
 
PPTX
Asp .Net Database Connectivity Presentation.pptx
sridharu1981
 
PPTX
Big data technology unit 3
RojaT4
 
PPTX
Database Programming Techniques
Raji Ghawi
 
PDF
Adv DB - Full Handout.pdf
3BRBoruMedia
 
PDF
SQL or NoSQL, is this the question? - George Grammatikos
George Grammatikos
 
PPTX
Introduction to Node.js
Winston Hsieh
 
PPTX
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Michael Rys
 
PPTX
Contains the SQLite database management classes that an application would use...
GabrielPachasAlvarad
 
PDF
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
Daniel N
 
PDF
[2015/2016] Local data storage for web-based mobile apps
Ivano Malavolta
 
PPTX
Beige_Pastel_Minimalist_Thesis_Defense_Presentation_(3)[1].pptx
21981a05i0
 
PPT
Ado
abhay singh
 
PPT
MYSQL - PHP Database Connectivity
V.V.Vanniaperumal College for Women
 
PPTX
Polyglot Database - Linuxcon North America 2016
Dave Stokes
 
PPTX
Postgresql
NexThoughts Technologies
 
PDF
Software development - the java perspective
Alin Pandichi
 
PDF
Access Data from XPages with the Relational Controls
Teamstudio
 
PPT
SQLITE Android
Sourabh Sahu
 
Azure cosmos db, Azure no-SQL database,
BRIJESH KUMAR
 
MongoDB Knowledge share
Mr Kyaing
 
Asp .Net Database Connectivity Presentation.pptx
sridharu1981
 
Big data technology unit 3
RojaT4
 
Database Programming Techniques
Raji Ghawi
 
Adv DB - Full Handout.pdf
3BRBoruMedia
 
SQL or NoSQL, is this the question? - George Grammatikos
George Grammatikos
 
Introduction to Node.js
Winston Hsieh
 
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Michael Rys
 
Contains the SQLite database management classes that an application would use...
GabrielPachasAlvarad
 
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
Daniel N
 
[2015/2016] Local data storage for web-based mobile apps
Ivano Malavolta
 
Beige_Pastel_Minimalist_Thesis_Defense_Presentation_(3)[1].pptx
21981a05i0
 
MYSQL - PHP Database Connectivity
V.V.Vanniaperumal College for Women
 
Polyglot Database - Linuxcon North America 2016
Dave Stokes
 
Software development - the java perspective
Alin Pandichi
 
Access Data from XPages with the Relational Controls
Teamstudio
 
SQLITE Android
Sourabh Sahu
 

Recently uploaded (20)

PDF
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
PDF
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
PPTX
Stability of IBR Dominated Grids - IEEE PEDG 2025 - short.pptx
ssuser307730
 
PPTX
Mobile database systems 20254545645.pptx
herosh1968
 
PPTX
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
PDF
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
PPT
20CE404-Soil Mechanics - Slide Share PPT
saravananr808639
 
PPTX
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
PPTX
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
 
PDF
Complete University of Calculus :: 2nd edition
Shabista Imam
 
PPTX
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
PDF
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
PDF
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
PPTX
Deep Learning for Image Processing on 16 June 2025 MITS.pptx
resming1
 
PPTX
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
PPTX
Tesla-Stock-Analysis-and-Forecast.pptx (1).pptx
moonsony54
 
PPTX
How to Un-Obsolete Your Legacy Keypad Design
Epec Engineered Technologies
 
PDF
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego López-de-Ipiña González-de-Artaza
 
PDF
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
PDF
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
May 2025: Top 10 Read Articles in Data Mining & Knowledge Management Process
IJDKP
 
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
Stability of IBR Dominated Grids - IEEE PEDG 2025 - short.pptx
ssuser307730
 
Mobile database systems 20254545645.pptx
herosh1968
 
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
20CE404-Soil Mechanics - Slide Share PPT
saravananr808639
 
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
 
Complete University of Calculus :: 2nd edition
Shabista Imam
 
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
Deep Learning for Image Processing on 16 June 2025 MITS.pptx
resming1
 
Introduction to sensing and Week-1.pptx
KNaveenKumarECE
 
Tesla-Stock-Analysis-and-Forecast.pptx (1).pptx
moonsony54
 
How to Un-Obsolete Your Legacy Keypad Design
Epec Engineered Technologies
 
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego López-de-Ipiña González-de-Artaza
 
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
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}`); });