본문 바로가기

언어/SQL12

[MySQL] 조건에 맞는 사원 정보 조회하기 문제 :https://school.programmers.co.kr/learn/courses/30/lessons/284527?language=mysql 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결 :SELECT B.SCORE, EM.EMP_NO, EM.EMP_NAME, EM.POSITION, EM.EMAIL FROM HR_EMPLOYEES EM INNER JOIN (SELECT EMP_NO, SUM(SCORE) AS SCORE FROM HR_GRADE GR WHERE YEAR =.. 2024. 6. 3.
[Oracle] 테이블 create, 속성 보기와 comment하기 1. Create 문create table [schema].[table]( [col_nm] [type] [default ~] [not null] work_dt char(8) default to_char(sysdate, 'yyyyMMdd') not null, finish_yn char(1) not null, err_desc varchar(4000), create_dtm timestamp default sysdate not null) 2. 테이블 속성 보기desc [schema].[table]; 3. 테이블 Commentcomment on table [schema].[table] is 'table_nm'; -- table's commentcomment on column [schema].[table].[col.. 2024. 5. 22.
[postgreSQL] 사용자, DB, schema, table 생성 및 문법 1. 사용자 생성create user {user_id} password {pw} {superuser/nosuperuser}; 2. DB 생성create database {local_db} owner {user_id};User_id 계정으로 DB 오너 만들기. 3. Schema 생성create schema {local_schema}; 4. Table 생성create table {local_schema}.{table_name}( id Integer primary key, type Varchar(50) not null, reg_date Timestamp not null, start_time Timestamp, end_time Timestamp constraint start_end c.. 2024. 5. 20.
[MariaDB] 중복, NULL, 유효하지 않은 고객 제거하는 쿼리 1. 중복 제거 쿼리 SELECT CUST_ID, COUNT(CUST_ID) AS CNT, '중복' AS REASON FROM C_CUST_ADD_ITEMP WHERE CUSTG_ID = {CUSTG_ID} GROUP BY CUST_ID HAVING COUNT(CUST_ID)>1 2. NULL 제거 쿼리 SELECT CUST_ID, COUNT(CUST_ID) AS CNT, 'NULL' FROM C_CUST_ADD_ITEMP WHERE CUSTG_ID = {CUSTG_ID} AND (CUST_ID = '' OR CUSTG_ID IS NULL) 3. TG_CUST_BHCRD_DD 테이블에 존재하지 않는 CUST_ID를 C_CUST_ADD_ITEMP 테이블에서 제거하는 쿼리 SELECT CUST_ID, COU.. 2024. 2. 1.
[Oracle] 없어진 기록 찾기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID WHERE I.ANIMAL_ID IS NULL ORDER BY ANIMAL_ID; 2023. 7. 1.
[Oracle] 조건에 부합하는 중고거래 댓글 조회하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/164673 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 SELECT A.TITLE, A.BOARD_ID ,B.REPLY_ID, B.WRITER_ID, B.CONTENTS, TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B ON A.BOARD_ID = B.BOARD_ID WHERE TO_CHAR(A.CREATED_DATE, 'yyyy-mm.. 2023. 6. 19.
[Oracle] 조건에 맞는 회원수 구하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131535 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 SELECT count(user_id) as users from user_info where to_char(joined, 'yyyy') = 2021 and age between 20 and 29; 1. DATE 타입을 TO_CHAR함수로 변환 2. 컬럼 BETWEEN 범위 AND 범위 2023. 6. 11.
[Oracle] 상위 N개 레코드 문제 https://school.programmers.co.kr/learn/courses/30/lessons/59405?language=oracle 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 서브쿼리 활용 SELECT name from ( select * from animal_ins order by datetime ) where rownum 2023. 6. 8.
옵티마이저 Optimizer : SQL 실행계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어 같은 SQL문이더라도 어떻게 실행하냐에 따라 성능이 달라진다. (소요시간, 자원사용량 등) =>SQL문을 분석한 후 일정한 기준을 통해 실행계획을 세워줘야함. 이때 사용되는 것이 옵티마이저! SQL문 작성 - Parsing(문법 검사, 구문 분석) - 옵티마이저 (비용기반/규칙기반) - 실행계획(plan_table 저장) - SQL 실행 1. 옵티마이저는 '비용기반 옵티마이저'와 '규칙기반 옵티마이저'가 있으며, 최신 오라클은 비용기반을 default로 사용한다. 2. 비용기반 옵티마이저는 시스템 통계와 오브젝트 통계를 통해 해당 SQL문 실행에 대한 총 비용을 계산하고, 총 비용이 가장 적은 쪽으로.. 2022. 10. 17.
window 함수, 계층형 조회 window함수: 행간 구분을 지어서 그 안에서의 관계를 쉽게 정의하기 위한 함수. 구조 : select window_function (arguments) over ([partition by 컬럼명][order by 컬럼명][windowing]) from 테이블명; ex) select 매장코드, 지역명, 메뉴명, 판매량, dense_rank() over (partition by 지역명 order by 판매량 desc) as 판매순위 from 판매 window_function : 윈도우 함수 argument : 인수 ( 컬럼명 등 함수의 작업이 이뤄지는 대상) partition by : 테이블의 레코드들을 쪼개는 기준 order by : 쪼개진 레코드들 내에서 혹은 전체 테이블에서 레코드들을 어떤 기준으로.. 2022. 10. 14.
NULL 관련 함수 NVL(col1, 대체값) : NULL이면 다른 값으로 바꿔주는 함수. ISNULL도 같은 역할! 표현식 두개의 데이터 타입이 같아야 함. ex) NVL(col1, 100) >> col1이 null이면, 100으로 바꿔줌 NVL2(col1, 결과1, 결과2) : col1이 NULL일 때,NVL2(col1, 'F', 'T') >>'T'출력. col1이 NOT NULL일때 'F'출력 NULLIF(v1, v2) : v1 == v2면 NULL, v1 != v2면 v 1을 출력 COALESCE(v1, v2, v3...vn) : NULL이 아닌 최초의 값을 반환. 2022. 10. 12.
[SQL] TCL TCL(Transaction Control Language) : 트랜잭션을 제어하기 위한 언어 * 트랜잭션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 COMMIT : 데이터에 대한 변화를 DB에 반영하기 위한 명령어 SAVEPOINT : 코드를 분할하기 위한 저장 포인트 지정 ROLLBACK : 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어. 최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어. 트랜잭션의 특징 고립성: 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다. 원자성: 트랜잭션에서 정의된 연산은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 있어야 한다. 지속성: 트랜잭션이 성공적으로 완료되면 해당 트.. 2022. 10. 12.