sql(4)
-
[SQL] Join 개념 정리 - mysql 기준
1. INNER JOIN (교집합): SELECT 보고싶은 컬럼명 FROM 조회하고 싶은 메인 테이블 INNER JOIN 비교하고 싶은 테이블 ON 비교 조건# 핸드폰과 PC이 같은 같은 제조사인 기기를 찾을 때SELECT *FROM PHONE AS AINNER JOIN PC AS BON A.CONPANY_NAME = B.CONPANY_NAME;=> 만약, 두개 테이블의 row가 각각 100개 씩 있고 COMPANY_NAME이 곂치는 row가 10개있을때 조회 결과 row는 10개이다. 2. LEFT JOIN ( 부분집합 + 남은 부분 ): SELECT 보고싶은 컬럼명 FROM 조회하고 싶은 메인 테이블 LEFT JOIN 비교하고 싶은 테이블 ON 비교 조건# 핸드폰의 정보를 모두 보고 싶은데 그중..
2025.01.12 -
[PersonaAI - 비공개 프로젝트 d] myBatis useGeneratedKeys 안될때
회사 솔루션에 새로 들어갈 기능 일부를 맡아서 개발을 시작했다. 내가 맡은 부분은 트리구조로 사용자가 사내 on-premise로 운영중인 서버 내의 NAS 서버 디렉토리 안에 디렉토리를 자유롭게 생성하고 파일을 저장하고 그 파일을 RAG에 자동으로 Embedding 시키는 것 까지가 내 역할이었다. 순조롭게 개발되다가 예상치 못한 부분에서 막혀버렸다. 하지만 파일 저장 후 Embedding을 하는데 예외처리를 하면서 실패/성공 사유를 로그로 쌓으려고 DB에 저장된 파일 정보의 Index를 받아오려했지만 실패한것이다. 해당 솔루션은 속도이슈로 JPA 를 걷어내고 myBatis를 쓰고 있었기 때문에 무난하고 쉽게 insert 태그에 useGeneratedKeys를 활용해서 만들었었다. 디버깅 모드로 확인해 ..
2024.07.25 -
[OracleDB] SCOTT 계정 활성화 (19c 버전)
오랜만에 sql 공부나 다시 하려고 오라클 다운 받아서 예전 처럼 scott 계정을 활성화 하려 했더니scott계정이 존재하질 않는다... 알고 봤더니 19버전 부터는 scott 계정을 지원하지 않는 거였다....( 대책없이 그냥 최신버전 다운 받았더니 이런일을 겪는다....) 다시 다운 받자니 OracleDB는 삭제 과정이 귀찮고 다운로드 시간도 오래걸리기에 그냥 19버전에서 방법을 찾기로 결심했다. 많은 시도가 있었지만 찾은 방법은 의외로 간단했다.1. SYS 계정으로 접속CMD 창을 열고 다음을 입력sqlplus sys/설정한비밀번호 as sysdba >> 다음에 접속됨: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production..
2024.07.03 -
[SQL] 기초부터 다시 다지기~! (1) DML
최근 ORM 위주로 개발하거나 그게 아니더라도 복잡한 쿼리를 짤 일이 없었다보니 리마인드할 필요가 생겼다. 그간 공부했던 SQL을 기초부터 다시 다지고 이전보다 효율적인 설계와 쿼리문 작성을 할 수 있도록 스펙UP 하자! ( 기본적인 진행은 Oracle을 기준으로 하고 MySQL을 추가 설명하는 것으로 하겠다.) DML ( Data Manipulation Language, 데이터 조작어 ) 1. 데이터 조회 ( SELECT ) => 기초! 2. 데이터 삽입 ( INSERT ) => 기초! 3. 데이터 수정 ( UPDATE ) => 기초! 4. 데이터 삭제 ( DELETE ) => 기초! 5. 합병 ( MERGE ) 6. 서브 프로그램 호출 ( CALL ) 7. 동시성 제어 ( ..
2024.02.14