본문 바로가기

개발/DB&SQL

(9) GITHUB 방명록
[SQL] 여러 개 데이터를 1개의 행(Row)으로 출력하기 (Oracle, Mysql, PostgreSQL) 개발/DB&SQL / 2024. 6. 29. 오늘은 여러 개의 데이터를 1개 행(Row)으로 출력하는 방법을 알아보겠습니다.최근 데이터를 집계 결과를 화면으로 뿌려주는 작업을 진행했는데요. 해당 화면에는 집계 대상 데이터의 시퀀스도 함께 노출해야 하는 요구사항이 있었습니다.따라서 요구사항은 위 예시처럼 A라는 컬럼을 기준으로 Group 하고, SEQ를 List 형태로 출력해야 하는 것이죠. 하지만 GROUP BY 절은 집계(합계, 평균, 연산 등) 외에는 공통된 기준이 아니면 값을 출력할 수 없습니다. 다시 말하면, 서로 다른 여러 개의 값을 한 행으로 나타낼 수 없습니다.하지만 다수의 데이터가 하나의 값이면 어떨까요? 위 예시에서 seq_a와 seq_b가 문자열로 묶인 "seq_a, seq_b" 형태로 나오는 것입니다. 이와 같은 기능을 수행하는..
[DB] 트랜잭션(Transaction)에 대해서 알아보기 개발/DB&SQL / 2023. 1. 23. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 모두 새해 복 많이 받고, 하는 일 모두 잘되세요! 오늘은 트랜잭션에 대해서 정리하겠습니다. 트랜잭션은 데이터베이스를 다루기 위해 필수로 알아야 할 개념입니다. 기술면접에서도 이와 관련된 질문이 자주 나옵니다. 그만큼 기본적이면서 중요하죠. 이제 자세하게 알아보겠습니다. 트랜잭션(Transaction)이란? 간략한 표현 : Tx 1초당 처리할 수 있는 트랜잭션의 개수 : TPS 트랜잭션은 데이터베이스의 상태를 변경시키기 위해 수행하는 작업의 단위입니다. 또는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위입니다. 여기서 상태를 변경시킨다는 의미는 DML(Data Manipulation Language)에 해당하는 SELECT, INSERT, UPDATE, DEL..
[MySQL] MySQL CLI로 쉽게 다루기(+ MySQL Shell 명령어 정리) 개발/DB&SQL / 2022. 8. 13. 안녕하세요😎 백엔드 개발자 제임스입니다 :) SQL 기반의 관계형 데이터베이스 중 대표적으로 MySQL이 있습니다. 이러한 MySQL 데이터베이스를 다루기 위해선 다양한 방법이 있는데요. 그 중 CLI 환경과 GUI 환경을 기준으로 나눌 수 있습니다. 오늘 포스팅은 CLI 환경에서 MySQL을 다루는 방법에 대해서 정리할 것입니다. CLI는 Command-line interface의 약자입니다. 즉, 명령어 기반 환경인데요. 주로 터미널, shell 을 통해서 다룰 수 있습니다. 오늘 포스팅에서는 MySQL Shell에서 사용되는 명령어를 정리하려고 합니다. 추가로 GUI로는 보통 MySQL Workbench를 사용합니다. MySQL Shell 설치는 아래 링크에서 할 수 있습니다. https://www..
[데이터베이스] ORM(Object Relational Mapping)에 대해서 알아보기 개발/DB&SQL / 2022. 7. 20. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 이번에 포스팅할 내용은 ORM입니다. 우리가 웹을 개발한다면 데이터베이스를 다루게 되는데, 이때 대부분 ORM이라는 용어를 접하게 됩니다. 그래서 이번 포스팅을 통해 이러한 ORM이 무엇이며, 어떠한 장단점이 있는지 알아보도록 하겠습니다. ORM (Object Relational Mapping) ORM은 Object Relational Mapping의 약자로, [객체-관계 매핑]을 의미합니다. 다시 말하면, OOP(Object Oriented Programming)에서 사용되는 객체라는 개념을 구현한 클래스와 관계형 데이터 베이스(RDBMS)에서 사용되는 테이블을 자동으로 연결하는 것을 말합니다. 위 그림에서 왼쪽은 Member 객체를 표현한 방식, 오른쪽은 ..
executeQuery 와 executeUpdate 개발/DB&SQL / 2021. 8. 24. Statement Statement 객체는 SQL문을 데이터베이스로 전송하는데 사용 세 종류의 Statement 객체 SQL문을 실행하기 위한 컨테이너들로써 동작 Statement PreparedStatement (Statement로부터 상속) CallableStatement (PreparedStatement로부터 상속) Statement 객체 수행 ⓐ execute 수행결과로 Boolean 타입의 값을 반환 모든 구문을 수행 리턴값이 ResultSet이라고 하여 결과값을 담을 수 없음. 만약 리턴값이 ResultSet 일 경우에는 true, 이외의 경우에는 false 출력 * 반환 타입으로 boolean 타입을 사용하지 않는 경우 다음과 같은 메세지가 출력 error: incompatible types..
DAO와 VO 개발/DB&SQL / 2021. 5. 24. DAO(Data Access Object)의 정의 자바 프로그램에서 데이터베이스 작업만 수행하는 클래스 자바 프로그램의 다른 기능을 하는 클래스와 구분하여 작업 화면 기능, 데이터베이스 연동 기능 등을 각각 담당하는 클래스로 나누어 프로그램을 구현 유지 관리가 편리하며, 재사용성이 높음 ▣ DAO 클래스 예제 코드 import java util.*; public class MemberDAO { private static final String driver = "oracle.jdbc.driver.OracleDriver"; private static final String url = "jdbc:oracle:this:@127.0.0.1:1521:XE"; private static final String use..

반응형