본문 바로가기

SQL6

여러행 문자열 합치기 -- MSSQL a. STRING_AGG(column, '구분자') WITHIN GROUP (ORDER BY column) b. STUFF('대상문자열', 시작위치, 크기, '변경할 문자') SELECT DISTINCT team_name, STUFF(( SELECT ','+player FROM #TEMP_TABLE FOR XML PATH('') ), 1, 1, '') as playerList FROM TEMP_TABLE -- ORACLE LISTAGG(column, '구분자') WITHIN GROUP (ORDER BY column) FROM TABLE GROUP BY column2 -- MYSQL GROUP_CONCAT(column SEPARATOR '구분자') * STUFF() / FOR XML PAT.. 2023. 8. 31.
[Oracle] 다중행 입력 INSERT ALL/FIRST - INSERT ALL : 한꺼번에 여러 개의 테이블에 데이터를 입력하거나, 1개의 테이블(테이블X)로부터 다른 여러 개의 테이블(테이블A, 테이블B,...)로 데이터를 복사하여 입력할 때 사용 - INSERT FIRST : ALL 대신에 FIRST를 사용할 경우 첫번째 조건을 만족하면 그 뒤 조건은 묻지 않고 빠져 나옴. >> INSERT ALL, FIRST는 반드시 서브 쿼리와 함께 사용해야 한다!! 1. 서로 다른 테이블에 각각 다른 데이터 입력 INSERT ALL INTO 테이블A (컬럼A1, 컬럼A2) VALUES ( 컬럼A1 값, 컬럼A2 값 ) INTO 테이블B (컬럼B1, 컬럼B2) VALUES ( 컬럼B1 값, 컬럼B2 값 ) INTO 테이블C (컬럼C1, 컬럼C2) VALUES ( 컬럼.. 2023. 4. 26.
[Oracle] 연습용 테이블 dept, emp create table dept( deptno number, dname varchar2(14), loc varchar2(13), constraint pk_dept primary key (deptno) ); create table emp( empno number, ename varchar2(10), job varchar2(9), mgr number(4,0), hiredate date, sal number(7,2), comm number(7,2), deptno number, constraint pk_emp primary key (empno), constraint fk_deptno foreign key (deptno) references dept (deptno) ); /* create table bonus( .. 2023. 4. 26.
[Oracle] 모든 테이블 한번에 삭제 / 여러 쿼리 한번에 실행 ? 간만에 오라클 들어갔더니 뭔지도 모르는 테이블이 수천개가 존재한다; 뭐지 이거 그래서 삭제하는 법 찾아봄. 알아두면 나름 유용할 것같아서 메모메모 설마 지우면 안되는 테이블은 아니겠지... 1. 존재하는 모든 테이블 DROP 문장 출력 SELECT 'DROP TABLE "' || TABLE_NAME || '" CASCADE CONSTRAINTS;' FROM user_tables; 2. 전체 복사해서 실행 ** 여러 쿼리 한번에 실행하는 법 : F5 2023. 4. 26.
[Oracle] SQL 기본 문법 정리 - DB : 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것 - DBMS : 효율적인 데이터 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 SW ex. 오라클, Sybase, MYSQL 등 = DBMS - SQL : 관계형 DB에서 데이터 정의, 조작, 제어를 위해 사용하는 언어 ** SQL 문장 종류 DML : SELECT, INSERT, UPDATE, DELETE 등 데이터 조작어 DDL : CREATE, ALTER, DROP, RENAME 등 데이터 정의어 DCL : GRANT, REVOKE 등 데이터 제어어 TCL : COMMIT, ROLLBACK 등 트랜잭션 제어어 1. CREATE :.. 2023. 4. 25.