我从头开始总结了SQL和数据库【PostreSQL入门】
什么是 PostgreSQL?
PostgreSQL(后续数据库)是一种开源的关系型数据库管理系统(RDBMS)。它支持UNIX系列操作系统(如Linux、macOS)以及Windows系统。其所有源代码都是公开的,并且无论用途如何,都可以免费使用。作为RDBMS,它具备基本的功能,包括使用SQL语言进行数据的创建和编辑等数据管理功能,以及子查询、触发器、备份等故障恢复功能和并发控制等。它具有很高的可扩展性,可以用户定义各种元素,如索引和数据类型。
环境的准备
在终端上创建一个应用程序。
mkdir <プロジェクト名>
cd <プロジェクト名>
③ 安装所需的模块和库。
touch <ファイル名>.js
npm init -y
npm i express nodemon pg
nodemon 是一个工具,用于监视代码,并在保存后自动更新服务器。
请将以下更改为下面所示。
④改为下列内容。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js"
},
⑤ 安装并配置PostgreSQL。
brew install postgresql
//インストールが完了したら、起動して実行する必要がある
brew services start postgresql
//サービスを停止したい場合
brew services stop postgresql
打开 SQL shell
①何も入力せず、Enterを押す
Server [localhost]:
Database [postgres]:
Port [5433]:
Username [postgres]:
②postgresのパスワードを入力する
Password for user postgres:
③Databaseを作成する
postgres=# CREATE DATABASE users;
③Tableを作成する
postgres=# ¥c users
postgres=# CREATE TABLE users(
④フィールドを作成する
postgres(# ID serial primary key,
postgres(# name varchar(255),
postgres(# email varchar(255),
postgres(# age int);
⑤SQL文を書く
users-# insert into users(name, email, age)
users-# values ("shun", "shin@gmail.com", 23),("shin", "shun@gmail.com", 33);
文件结构
├── db.js
├── package-lock.json
├── package.json
└── server.js
const Pool = require('pg').Pool;
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'user',
password: '5w7aybjz',
port: 5432,
});
module.exports = pool;
const express = require('express');
const app = express();
const PORT = 3000;
const pool = require('/db');
//APIを作成
app.use(express.json());
app.get('/', (req, res) => {
res.send('Hello Express');
});
//User情報を全て取得する
app.get('/users', (req, res) => {
pool.query('SELECT * FROM users', (error, results) => {
if (error) throw error;
return res.status(200).json(results.row);
});
});
//特定のUserを取得する
app.get('/users/:id', (req, res) => {
const id = req.params.id;
pool.query('SELECT * FROM users WHERE id = $1', [id], (error, results) => {
if (error) throw error;
return res.status(200).json(results.row);
});
});
//userを追加する
app.post('/users', (req, res) => {
const { name, email, age } = req.body;
//userが既に存在しているかどうか確認
pool.query(
'SELECT s FROM users s WHERE s.email = $1',
[email],
(error, results) => {
if (results.rows.length) {
res.send('既にユーザーが存在しています');
}
pool.query(
'INSERT INTO users(name, email, age) values($1,$2,$3)',
[name, email, age],
(error, results) => {
if (error) throw error;
res.status(201).send('ユーザー作成に成功しました');
}
);
}
);
});
app.listen(PORT, () => {
console.log('server is running on PORT' + PORT);
});
请参考以下网站
【PostgreSQL入门】适合初学者!探索PostgreSQL学习数据库基础【构建API】
什么是PostgreSQL?介绍其特点和最新版本的功能!
【Node.js】使用nodemon自动更新服务器的方法