我从头开始总结了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自动更新服务器的方法

bannerAds