반응형
1. DB별 바인딩 문법
DBMS자리표시자 문법예시
| PostgreSQL | $1, $2, ... | WHERE id = $1 |
| Oracle | :1, :2 또는 :name | WHERE id = :id |
| MySQL | ? | WHERE id = ? |
| MSSQL | @name 또는 ? | WHERE id = @id |
| SQLite | ?, :name | WHERE id = ? |
2. 어떻게 컬럼이 같은지 알까?
컬럼명과 바인딩 순서는 별개
DB는 $1, $2 자리에 배열로 전달된 값을 그대로 순서대로 꽂아 넣는다
예시:
INSERT INTO users (id, name, age) VALUES ($1, $2, $3)
js
client.query(sql, [123, '홍길동', 25]);
- $1 → 123 → id 컬럼
- $2 → '홍길동' → name 컬럼
- $3 → 25 → age 컬럼
여기서 컬럼 순서는 INSERT문에 직접 써준 순서가 기준이 됨
즉, DB가 알아서 매칭하는 게 아니라, 우리가 작성한 SQL에서 순서를 정한것임
반응형
'백엔드' 카테고리의 다른 글
| [RESTFUL API] URI 설계 개념 (0) | 2025.09.09 |
|---|---|
| [Java] static 메서드에서 인스턴스 변수,인스턴스 메서드접근하기, static import (1) | 2025.08.24 |
| [java] 상속 (상위 클래스, 하위 클래스) (0) | 2025.03.18 |
| [java] for문 안에서 한번에 출력하기,이어붙이기 [StringBuilder, StringJoiner, String.join, stream API] (6) | 2025.03.13 |
| [java] 배열복사, 얕은복사, 깊은복사 (0) | 2025.03.03 |