데이터베이스 2023. 11. 4.
[DB] 카탈로그와 스키마 차이 (MySQL 에 카탈로그가 없는 이유)
📣 들어가며 최근 JDBC로 (정확히는 node-jdbc) 테이블 목록을 가져올 일이 있었는데, getTables api 를 요청해도 빈 배열만 반환됐다. 분명 테이블들이 있는데도... 한참의 삽질 끝에 getCatalogs 또는 getSchemas api 를 사용 후, 스키마나 카탈로그 정보로 테이블 목록을 가져와야한다는 걸 알 수 있었다. 그런데 카탈로그가 있는 DB가 있고, 없는 DB가 있었다. 때문에 카탈로그가 없다면 스키마를 적절히 조회해서 그 조회 정보로 테이블을 가져왔어야했는데, 도통 감이 잡히지 않아 이번 포스팅을 작성해본다. 사실 이런 의문점은 DBeaver를 쓸 때부터 갖고 있던 생각이었다. (다른 DB 툴도 비슷하리라고 생각된다.) DBeaver를 사용하다보면 어떤 DB는 Databa..
데이터베이스/PostgreSQL 2021. 10. 26.
[PostgreSQL] ANY 연산자란? ANY와 IN의 차이
📢 들어가며 업무 중 콤마를 포함한 스트링으로 DB 데이터를 조회해야하는 일이 생겼다. 간단히 설명하자면, "apple,banana,orange"라는 데이터를 콤마로 구분하여 각 단어를 뽑아내고 fruit 라는 컬럼에서 apple, banana, orange가 존재한다면 select 해오는 일이었다. 자바에서 작업하고 List 로 넘겨 Mybatis에서 IN 작업을 해주려고 했었는데, PostgreSQL ANY 만으로도 간단히 해결하는 방법을 찾아내어 포스팅해보려고 한다. 💬 ANY 란? 서브 쿼리의 반환 값과 비교할 때 사용하는 연산자. 서브 쿼리의 반환 값 중 하나라도 일치하면 조건이 성립된다. JavaScript 유저라면 '하나라도 일치하면' 이라는 문구에서 some() 과 비슷한 느낌을 받았을 것..