SQLD 시험 전에 공부해야 할 것5 : DECODE, CASE

 

안녕하세요! 오늘은 SQLD를 준비할 때 절대로 놓쳐서는 안 될 조건문에 대해 알아보려고 합니다. 데이터를 정제할 때 어떤 조건의 정보만 추출하고 싶을 때가 있습니다. 이 때 유용하게 사용될 수 있는 문법입니다. 

 

DECODE

 

SELECT DECODE(column_name, 'value1', 'result1', 'value2', 'result2', 'default_result') AS decoded_value
FROM table_name;

 

오라클에서 사용하는 문법입니다

 

컬럼명, 컬럼의 데이터, 출력할 값, 기본값 이렇게 4개의 정보가 필요합니다.

 

바로 예시로 들어가서 살펴보겠습니다!

 

예를 들어 한 회사에 여러 부서가 있습니다. 부서별로 번호를 부여하고 싶습니다. 마케팅팀은 10, 운영팀은 20, 영업팀은 30 이렇게요! 그럴 때 DECODE를 어떻게 사용하면 좋을까요?

 

DECODE('DEPT', '마케팅', '10', '운영팀', '20', '영업팀','30')

 

간단하죠ㅎㅎ

 

그런데 이 세개의 팀에 속하지 않는 팀이 있다면 에러가 생길 수 있습니다. 그럴 땐 default 값으로 뒤에 앞에 내용에 해당하지 않은 데이터들은 어떻게 처리할 지 적어주면 됩니다. 저는 세 팀에 속하지 않은 팀의 경우 100이라는 숫자를 부여하도록 하겠습니다.

DECODE('DEPT', '마케팅', '10', '운영팀', '20', '영업팀','30', '100')

 

CASE

 

case 문법은 정말정말 자주 사용되기 때문에 꼭 아셔야 하는 필수 문법입니다. case 또한 조건문을 만들 때 사용됩니다. 

 

SELECT 
    CASE 
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ELSE default_result
    END AS case_result
FROM table_name;

 

 

이렇게 보면 복잡해 보이죠. 예시를 활용해서 하나하나 살펴보겠습니다!

 

예를 들면 한 동물원에 갔습니다. 입장권을 살려고 하는데 나이별로 할인 금액이 달릅니다. 예를 들면 3살 미만일 경우 무료이며 3살부터 12살 미만일 경우 50%의 할인 가격이 들어갑니다. 그 외에는 정상 가격으로 받습니다. 이를 sql로 코딩을 하면 다음과 같습니다.

 

CASE
WHEN 나이 < 3 THEN '무료'
WHEN 나이 >= 3 AND 나이 < 12 THEN '할인 가격'
ELSE '정상 가격'
END

 

2 무료
5 할인 가격
10 할인 가격
15 정상 가격

 

이렇게 결과 표가 출력이 됩니다.

쉽죠ㅎㅎ

 

 

DECODE와 CASE의 차이

 

둘의 큰 차이는 바로 부등호 비교가 가능한지 여부입니다. 앞선 예문에서 보셨듯이 CASE는 등호비교(=), 부등호비교(<,>,<=,>=) 모두 사용 가능합니다. 하지만 DECODE는 등호비교만 가능합니다. 이 점 꼭 기억하시기 바랍니다:)

 

 

확실하게 이해했는지 확인하기 위해 테스트 문제를 제시해볼게요!

 

문제 

 

직급이 사장인 경우에는  null을 출력하고 팀장인 경우에는 7000, 과장은 6000, 대리는 5000을 출력하시오.

 

직급 컬럼 : JOB

연봉 컬럼 : SALARY

데이터명: EMP

 

정답

 

select JOB, DECODE(JOB,'사장',null,'팀장',7000,'과장',6000,'대리',5000) as SALARY
from EMP

 

어떠셨나요? 이제 조금 심화 과정으로 들어갈볼까요?

 

데이터들을 정렬할 때 사용하는 구문 중 하나가 바로 order by 컬럼명 desc/asc 입니다. decode를 사용할 때 order by를 사용해보면 이상한 점을 발견할 수 있습니다.

 

바로 숫자가 문자열로 암시적 형변환으로 일어나는 것인데요. 예시로 쉽게 알아보겠습니다.

 

아래와 같은 order_details라는 테이블이 있습니다. 각각의 상품의 id와 수량이 적혀있군요.

테이블 이름: order_details

| product_id | quantity |
|------------|----------|
| 1          | 10       |
| 2          | 5        |
| 3          | 15       |
| 4          | 8        |

 

이제 id 별로 quantity에 따라 등급을 나눠주려고 합니다. 10개 이상이면 A 나머지는 quantity를 적습니다. 그 다음 quantity 컬럼을 기준으로 내림차순으로 정렬을 시켜보았습니다.

SELECT 
    product_id, 
    quantity,
DECODE(product_id, 15, 'A',quantity) as quantity_code
FROM 
    order_details
ORDER BY 
    quantity DESC;

 

 

출력 결과는?

어라 이상합니다. quantity를 기준으로 내림차순으로 정렬 되게 하였습니다. 그렇다면 15인 1이 가장 위에 있어야 하는데 8이 가장 위에 있습니다.

왜 그럴까요?

 

 

product_id quantity quantity_code
4 8 8
2 5 5
3 15 A
1 10 10
4 8 8

 

암시적 형변환

 

decode의 가장 많이 발생하는 에러 중 하나가 바로 암시적 형변환입니다. 즉 숫자를 문자로 자기가 멋대로 바꿔버립니다. 세번째 변수가 A 였었죠. A는 문자형입니다. 그래서 그 다음 변수인 quantity가 영향을 받아 숫자를 문자로 바꾼것입니다. 

 

여기를 숫자로 바꾸려면?

 

to_number('A') 로 적어주면 됩니다.

 

to_number 함수를 활용해서 문자형을 숫자형으로 바꿔줍니다.

 

SELECT 
    product_id, 
    quantity,
DECODE(product_id, 15, number('A'),quantity) as quantity_code
FROM 
    order_details
ORDER BY 
    quantity DESC;

 

 

자 이렇게 오늘은 조건문인 DECODE, CASE를 배웠습니다. 혹시 어렵거나 헷갈렸던 부분이 있다면 언제든 댓글로 알려주세요. 이번 포스팅 도움이 되기를 바라며 이만 물러나보겠습니다. 좋은 하루 보내세요!

 

 

 

 

SQLD 시험 전 공부해야 할 것3 : NVL, NULLIF, COALESCE

 

SQL에서 NULL값을 처리하고 싶은데 어떻게 하면 좋을까요?

 

이때 활용하는 함수인 NVL, NULLIF, COALESCE를 알아보도록 해요!

 

NULLIF

두 식을 비교하여 표현식2와 동일하면 null을 반환하고 동일하지 않으면 표현식1을 반환합니다. 구문은 NULLIF(expression1, expression2)입니다. 이 함수는 종종 오류를 방지하거나 null 값을 기본값으로 대체하는 데 사용됩니다.

 

SELECT NULLIF(5,5); -- null을 반환합니다
SELECT NULLIF(5,6); -- 5를 반환합니다

예시문제

1.제품 목록과 가격을 반환하지만 무료가 아닌 제품만 포함하는 쿼리를 작성합니다.

SELECT product_name, price
FROM products
WHERE NULLIF(price, 0) IS NOT NULL;

 

2. 각 제품의 평균 등급을 계산하지만 0인 등급은 제외하는 쿼리를 작성합니다

SELECT product_id, AVG(NULLIF(rating, 0)) AS avg_rating
FROM ratings
GROUP BY product_id;

 

COALESCE

이 함수는 식 목록에서 null이 아닌 첫 번째 값을 반환합니다. 구문은 COALESCE(식 1, 식 2, ..., 식 N)입니다. 이 함수는 종종 쿼리에서 null 값을 처리하거나 null 값을 기본값으로 대체하는 데 사용됩니다.

 

SELECT COALESCE(NULL, 1, 2); -- 1을 반환합니다
SELECT COALESCE(NULL, NULL, 'hello', 'world'); -- 'hello'를 반환합니다

예시문제

 

1. 고객 이름 및 연락처 전자 메일 목록을 반환하는 쿼리를 작성합니다. 고객에게 연락처 전자 메일이 없는 경우 기본 전자 메일을 대신 반환합니다.

 

SELECT name, COALESCE(contact_email, primary_email) AS email
FROM customers;

 

NVL

이 기능은 COALESCE와 유사하지만 Oracle 데이터베이스에만 해당됩니다. 식 목록에서 null이 아닌 첫 번째 값을 반환합니다. 구문은 NVL(expression1, expression2)입니다. 이 함수는 종종 쿼리에서 null 값을 처리하거나 null 값을 기본값으로 대체하는 데 사용됩니다.

 

SELECT NVL(NULL, 1); -- 1을 반환합니다
SELECT NVL(NULL, 'hello'); -- 'hello'를 반환합니다

 

예시문제

 

1.직원 및 부서 이름 목록을 반환하는 쿼리를 작성합니다. 직원이 부서에 할당되지 않은 경우, 대신 "할당되지 않음"을 반환합니다.

SELECT employee_name, NVL(department_name, '할당되지 않음') AS department
FROM employees;

 

2. 각 제품의 총 매출을 계산하는 쿼리를 작성하고, 매출이 없는 제품의 경우 매출에 대해 0을 반환합니다.

SELECT product_id, NVL(SUM(sales_amount), 0) AS total_sales
FROM sales
GROUP BY product_id;

 

 

NVL2

SQL에서 식을 null이 아닌 경우 반환할 값과 식이 null인 경우 반환할 다른 값을 지정할 수 있는 함수입니다.

 

NVL2 (expression, value_if_not_null, value_if_null)

expression: null을 확인할 식입니다
value_if_not_null: 식을 null이 아닌 경우 반환할 값
value_if_null: 식이 null인 경우 반환할 값

 

SELECT NVL2(salary, 'has salary', 'no salary') AS salary_status
FROM employees;

 

예시문제

 

1. 직원 및 직함 목록을 반환하는 조회를 작성합니다. 직원에게 직함이 할당되지 않은 경우, "No title assigned"를 대신 반환합니다.

SELECT employee_name, NVL2(job_title, job_title, 'No title assigned') AS job_title
FROM employees;

 

2. 각 영업 사원의 수수료를 계산하는 쿼리를 작성합니다. 판매원이 판매를 하지 않은 경우 "수수료 없음"을 대신 반환합니다.

SELECT salesperson_name, NVL2(total_sales, total_sales * 0.1, 'No commission') AS commission
FROM salespeople;

 

SQLD 시험 전 공부해야 할 것2 : DROP, TRUNCATE, DELETE 차이점

 

 

시험에 자주 나오는 단골 질문 중 하나인 DROP, TRUNCATE, DELETE의 차이점 및 기능에 대해 알아보도록 하겠습니다!

 

SQL에서 DROP, TRUNCATE 및 DELETE 문의 주요 차이점은 다음과 같습니다

 

기능

DROP TRUNCATE DELETE
전체 테이블 또는 데이터베이스를 영구적으로 제거합니다. 테이블에서 모든 행을 제거하지만 테이블 구조는 유지합니다. 특정 조건에 따라 테이블에서 특정 행을 제거합니다.
테이블 정의 자체를 완전히 삭제 테이블을 최초 생성된 초기상태로 만듦 데이터만 삭제
DDL DDL(일부 DML 성격을 가짐) DML

 

DROP  예시

DROP TABLE employees; -- 인덱스, 트리거 및 제약 조건을 포함하여 전체 "인덱스" 테이블과 관련된 모든 개체를 삭제합니다.

TRUNCATE 예시

TRUNCATE TABLE orders; -- 테이블 구조와 관련 개체(예: 인덱스 및 트리거)를 유지하면서 "주문" 테이블에서 모든 행을 제거합니다.

DELETE 예시

DELETE FROM customers WHERE city = 'London';-- 도시가 런던인 "고객" 테이블에서 모든 행을 제거합니다.

 

속도

DROP TRUNCATE DELETE
테이블이나 데이터베이스를 삭제하기만 하면 되며 모든 관련 개체(예: 인덱스, 트리거, 제약 조건)도 삭제되므로 가장 빠릅니다. 테이블에서 모든 행을 제거하고 데이터 페이지의 할당을 해제하기만 하면 테이블 구조가 그대로 유지되므로 DELETE보다 빠릅니다. 연결된 개체는 삭제되지 않습니다. 한 번에 하나의 행을 삭제하고 각 삭제 작업을 기록하므로 속도가 가장 느립니다. 테이블 구조 및 관련 개체는 영향을 받지 않습니다.

 

복구여부

DROP TRUNCATE DELETE
실행을 취소할 수 없으며 데이터가 영구적으로 손실됩니다. 데이터베이스가 전체 복구 모드에 있는 경우 트랜잭션 로그를 사용하여 실행 취소할 수 있지만 단순 복구 모드에서는 실행 취소할 수 없습니다. 시스템에 장애가 발생하면 데이터가 영구적으로 손실됩니다. 트랜잭션 로그를 사용하여 각 삭제 작업을 기록하므로 취소할 수 있습니다. 커밋 작업 전에 시스템 오류가 발생하면 데이터를 복원할 수 있습니다.
ROLLBACK 불가능 ROLLBACK 불가능 COMMIT 이전 ROLLBACK 가능

 

여기서 COMMIT과 ROLLBACK이란

SQL에서 COMMIT 및 ROLBOLLBACK은 트랜잭션을 관리하는 데 사용됩니다. 트랜잭션은 단일 단위로 실행되는 하나 이상의 SQL 문으로 구성된 논리적 작업 단위입니다. 커밋 및 롤백을 사용하면 트랜잭션 내에서 수행된 데이터 변경의 내구성과 일관성을 제어할 수 있습니다.

COMMIT: 트랜잭션의 변경 내용을 데이터베이스에 저장하는 데 사용됩니다. COMMIT 문이 실행되면 변경 내용이 영구적으로 변경되어 실행 취소할 수 없습니다. COMMIT 문은 현재 트랜잭션을 종료하고 트랜잭션 내의 모든 변경 내용을 다른 트랜잭션에 표시합니다.

ROLBACK: 트랜잭션의 변경 내용을 실행 취소하고 데이터베이스를 이전 상태로 복원하는 데 사용됩니다. ROLBACK 문이 실행되면 트랜잭션 내의 모든 변경 내용이 삭제되고 데이터베이스가 이전 상태로 복원됩니다. ROLBACK 문은 현재 트랜잭션을 종료하고 데이터베이스를 트랜잭션이 시작되기 전의 이전 상태로 되돌립니다.

 

권한

DROP TRUNCATE DELETE
전체 테이블 또는 데이터베이스를 삭제할 수 있으므로 가장 높은 수준의 권한이 필요합니다. 테이블에 대한 다른 테이블 권한이 필요합니다. 테이블에 대한 삭제 권한이 필요합니다.

 

요약

DROP는 전체 테이블 또는 데이터베이스를 영구적으로 삭제하는 데 사용되고, TRUNCATE는 테이블 구조를 유지하면서 테이블에서 모든 행을 신속하게 제거하는 데 사용되며, DELETE는 특정 조건에 따라 테이블에서 특정 행을 선택적으로 제거하는 데 사용됩니다. 사용할 명령문의 선택은 속도, 데이터 보존 또는 작업 실행 취소 기능과 같은 당면한 작업의 특정 요구 사항에 따라 달라집니다.

 

SQLD 시험 전 꼭 공부해야 할 것 : 비교연산자

안녕하세요!

오늘은 SQLD 시험에서 빠지지 않고 나오는 비교연산자에 대해서 알아보려고 해요.

 

비교연산자는 크게 기호, BETWEEND AND 구문, LIKE, IS NULL, IN이 있어요.

 

그럼 하나씩 살펴볼까요.

 

 

SQL에서 비교 연산자는 두 값 또는 식을 비교하고 비교 결과에 따라 부울 값(TRUE 또는 FALSE)을 반환하는 데 사용됩니다. 비교 연산자에는 다음이 포함됩니다:

 

비교연산자 기호

"=" (동일): 양쪽의 값 또는 식이 같으면 true를 반환합니다.

"<>" 또는 "!="(동등하지 않음): 양쪽의 값 또는 식이 동일하지 않으면 true를 반환합니다.

">"(보다 큼): 왼쪽에 있는 값이나 식이 오른쪽에 있는 값이나 식보다 크면 true를 반환합니다.

">="(보다 크거나 같음): 왼쪽에 있는 값이나 식을 오른쪽에 있는 값이나 식보다 크거나 같으면 true를 반환합니다.

"<" (보다 작음): 왼쪽에 있는 값 또는 식을 오른쪽에 있는 값 또는 식보다 작으면 true를 반환합니다.

"<="(보다 작거나 같음): 왼쪽의 값 또는 식이 오른쪽의 값 또는 식보다 작거나 같으면 true를 반환합니다.

이러한 비교 연산자는 일반적으로 WHERE 절과 같은 SQL 문에서 특정 기준에 따라 데이터베이스에서 데이터를 필터링하고 검색하는 데 사용됩니다.

 

BETWEEN AND 구문

 

SQL에서 BETWEEN 연산자는 값 범위 내의 값을 선택하는 데 사용됩니다. 값 범위를 기준으로 레코드를 필터링하기 위해 SELECT, UPDATE 또는 DELETE 문의 WHERE 절에서 자주 사용됩니다.

 

회사의 판매 데이터가 들어 있는 "판매"라는 테이블이 있다고 가정해 보겠습니다. 표에는 각 판매 금액이 들어 있는 "sales_mount"라는 열이 있습니다. 우리는 sales_금액이 $1000에서 $5000 사이인 모든 sales 데이터를 검색하고 싶습니다.

BETWE 연산자를 사용하여 이 데이터를 검색하는 SQL 쿼리는 다음과 같습니다:

 

SELECT *
FROM sales
WHERE sales_amount BETWEEN 1000 AND 5000;

 

LIKE 구문

SQL의 LIKE 연산자는 문자열의 패턴 매칭에 사용됩니다. 표의 열에서 지정된 패턴을 검색하기 위해 SELECT 문의 WHERE 절에서 자주 사용됩니다.


여기서 패턴은 문자, 와일드카드 문자 및 이스케이프 문자의 임의 조합을 포함할 수 있습니다. LIKE에서 가장 일반적으로 사용되는 와일드카드 문자는 다음과 같습니다:

'%' (백분율 기호): 0개 이상의 문자를 의미합니다
'_'(밑줄): 1개의 문자를 의미합니다


예를 들어, "직원"이라는 테이블에 열 "이름"과 "위치"가 있다고 가정해 보겠습니다. 우리는 "관리자"라는 단어가 포함된 직위의 모든 직원을 불러오기를 원합니다. LIKE 연산자는 다음과 같이 사용할 수 있습니다:

 

SELECT *
FROM employees
WHERE position LIKE '%관리자%';

 

LIKE를 공부했으면 ESCAPE구문이 빠질 수 없죠!

 

SQL에서 'ESCAPE'는 LIKE 연산자와 함께 사용하여 이스케이프 문자를 지정하는 키워드입니다. 이스케이프 문자는 일반적으로 리터럴로 취급되는 특수 문자 또는 와일드카드를 이스케이프하는 데 사용되는 문자입니다.

 

예를 들어, "직원"이라는 테이블에 "이름"이라는 열이 있다고 가정해 보겠습니다. 이름에 "%manager%" 문자열이 포함된 모든 직원을 검색하지만 '%' 문자는 와일드카드가 아닌 리터럴 문자로 처리합니다. 'ESCAPE' 키워드를 사용하여 백슬래시() 문자를 이스케이프 문자로 사용하도록 지정할 수 있습니다:

 

SELECT *
FROM employees
WHERE name LIKE '%\%manager\%%' ESCAPE '\';

이 문은 "직원" 테이블에서 "이름" 열에 "%manager%" 문자열이 포함된 모든 레코드를 검색합니다. 여기서 '%' 문자는 와일드카드가 아닌 리터럴 문자로 처리됩니다.

'ESCAPE' 키워드는 선택 사항이며 'pattern' 문자열의 특수 문자 또는 와일드카드를 이스케이프하려는 경우에만 필요합니다. 문자를 이스케이프할 필요가 없다면 LIKE 연산자에서 'ESCAPE' 키워드를 생략할 수 있습니다.

 

 

IS NULL 구문

 

SQL에서 'IS NULL'은 열에 Null 값이 포함되어 있는지 확인하는 데 사용되는 비교 연산자입니다. null 값은 열의 결측값 또는 알 수 없는 값을 나타냅니다.

 

예를 들어, "orders"라는 테이블에 "orders_id" 열과 "customer_id" 열이 있다고 가정해 보겠습니다. 고객이 아직 주문을 하지 않은 경우 "주문" 표의 "customer_id" 열에 null 값이 포함됩니다. 'IS NULL' 연산자를 사용하여 이러한 모든 레코드를 검색할 수 있습니다:

 

SELECT *
FROM orders
WHERE customer_id IS NULL;

 

'IS NULL' 연산자는 다른 유형의 결측 데이터나 빈 값이 아닌(0과 다릅니다!) null 값을 확인하는 데만 사용할 수 있습니다. 결측값 또는 빈 값을 확인하기 위해 'IS NOT NULL', '!=' 또는 '<>'과 같은 다른 연산자를 대신 사용할 수 있습니다.

 

IN 구문

 

SQL에서는 'IN' 연산자는 값이 지정된 값 목록의 값과 일치하는지 확인하는 데 사용됩니다. SELECT 문의 WHERE 절에서 특정 열 값이 값 목록에 있는지 여부를 기준으로 레코드를 필터링하는 데 사용할 수 있습니다.

 

예를 들어, "customers"라는 테이블에 열 "customers_id", "first_name" 및 "last_name"이 있다고 가정해 보겠습니다. customer_id가 1, 3 또는 5인 모든 레코드를 검색하려고 합니다. '를 사용할 수 있습니다IN' 연산자는 다음과 같습니다

 

SELECT *
FROM customers
WHERE customer_id IN (1, 3, 5);

이 문은 "customers" 테이블에서 "customers_id" 열에 1, 3 또는 5 값이 포함된 모든 레코드를 검색합니다.

 

 

오라클 SQL 설치하기 따라하면 어렵지 않아요

 

오늘은 오라클 SQL 설치를 해보려고 합니다ㅎㅎ

사실 오라클 SQL 잘 못 설치하면 노트북을 다시 갈아야 할 수도 있을 만큼 조금 번거로운 작업이 될 수도 있어서

신중하게 진행해야 하는데요

오늘 다운로드 받을 오라클 xe버전은 설치 파일 중에 가장 가벼운 프로그램으로 머신러닝까지 구현 가능합니다

 

1. 우선 오라클 다운로드 받는 사이트로 접속합니다

컴퓨터 사양에 맞는 패키지로 다운로드를 받습니다

https://www.oracle.com/database/technologies/xe-downloads.html

 

Oracle Database Express Edition (XE) Downloads

Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid

www.oracle.com

 

다운로드를 받고 압축을 푼 경로로 가서 SETUP 파일을 찾으세요!

 

 

2.  setup 파일 마우스 우클릭해서 관리자 권한으로 실행합니다

 

다운로드 받을 때 주의할 점

1. 설치 파일의 폴더명이 한글이 포함되면 안 됨 ex)오라클sql(x)

2. 중간에 비밀번호는 영문으로 시작, 특수문자와 대소문자를 포함

 

그럼 이제 최상위 계정에 접속해 볼까요?

 

sys는 database에서 가장 권한이 막강한 유저이므로 이 계정에서는 주로 데이터 베이스 관리 작업을 하는데요

그러니 이 계정으로 데이터분석을 하면 안 되겠죠

 

최상위로 접속하는 방법

관리자권한으로 명령 프롬프트 실행 > sqlplus '"/ as sysdba" 입

 

show user 를 입력하면 현재 사용하고 있는 유저가 무엇인지 알 수 있습니다

 

그럼 일반 유저 계정은 어떻게 설정할까요?

create user c##scott

identified by tiger;

 

먼저 일반 유저 계정의 아이디를 설정해주고 

비밀번호를 설정합니다

 

c##scott : 유저 이름(해킹 위험방지를 위해 특수문자를 꼭 붙여주어야합니다! )

tiger : 비밀번호

 

 

2. dba에 대한 권한을 부여

dba 권한이란 database에 있는 모든 데이터를 다 볼 수 있고 조작할 수 있는 권한을 말합니다

 

그럼 이 막대한 권한을 scott에게 한번 줘 볼까요

SQLD 시험 공부하다 보면 나오는 내용이기도 하는데요

 

grant dba to c##scott;

 

 

그럼 중요한 업무는 다 끝이 났어요!

 

만약 컴퓨터를 끄고 다시 접속하려면 어떻게 할까요?

 

 

다시 시작하는 방법

시작창에서 cmd 검색 > sqlplus c$$scott/tiger > 요거 검색하기!

 

어려운 작업은 이제 끝이 났네요 

이제 데이터를 입력해 원하는 작업을 하면 됩니다

 

 

도움이 되었기를 바라며 오늘도 화이팅 하세요!

 

 

 

 

SQLD 시험후기 및 사전점수 확인하는 법 역시는 역시였다

 

안녕하세요! 오늘은 SQLD 시험 후기 및 사전점수 확인하는 방법에 대해 이야기 나누려고 합니다ㅎㅎ

3월 19일에 본 SQLD 시험 후기를 간단히 요약하자면

운이 좋게도 평이한 난이도
노랭이는 필수다!!

이렇게 요약할 수 있을 것 같습니다ㅎㅎ

시험보면서 놀랐던 점은 노랭이에서 나온 문제들이 많이 나왔다는 것이었는데요

(심지어 답도 같음...)

 

수많은 합격자분들의 말씀처럼 시험보기 전에 노랭이는 무조건 3회독은 필수인것 같습니다

 

저는 비전공자로서 작년 12월 1달 동안 SQL 이론공부 + 시험 일주일 전 노랭이 3회독 + 유튜브 문제풀이

 

이렇게 공부해서 무난하게 합격할 수 있었습니다:)

 

첫 시험이라 많이 떨리기도 했지만 SQLD 시험 후기로 공부법 관련해서 말씀드리자면

비전공자여도 한달동안 평일 1시간+주말3시간 정도 시간을 할애하면 충분히 합격할 수 있다고 생각했습니다

 

계속 말씀드린 노랭이는 한국데이터산업진흥원에서 출간한 SQL자격검정실전문제입니다

 

 

 

 

영롱쓰...

SQLD의 경우 시험 범위가 1과목 데이터 모델링의 이해, 2과목 SQL 기본 및 활용까지여서 많은 범위는 아니지만 일주일 안에 3회독을 하려고 하니 좀 버겁기도 했는데요ㅜ

 

그래서 저는 보통 급하게 벼락치기로 해야한다하면 답지부터 빠르게 읽고 문제를 맞춰보는 방법으로 합니다

책봐도 모르는게 90%라 이 방법밖에 없었을 수도 있었겠네요ㅎㅎ

 

우선 이렇게 답지 한번 봐주고 문제 봐주는 방식으로 하니 뇌에게는 너무 낯설게 안 느껴졌던 것 같아요

 

 

 

 

 

공부하면서 느꼈던게 우선 이론을 이해하고 sql을 다뤄보는게 훨씬 좋았겠다라고 느꼈습니다.

노랭이를 발간한 한국데이터산업진흥원에서 노랭이 별도로 이론만 정리해서 pdf로 공유한 자료가 있습니다

 

시험 준비하시는데 시간이 넉넉하시면 위 자료로 이론 공부하시는 거 추천드립니다!

 

아무래도 비전공자이다 보니 실전문제집으로 이론까지 공부하려니 이해가 안 되는게 수두룩하더라구요ㅠ

그래서 초반에는 그냥 무작정 암기식으로 했는데 한계가 있더라구요

 

그런데 한국데이터산업진흥원에서 공유한 pdf의 경우 상세하게 설명을 해주어서 비전공자여도 쉽게 이해를 할 수 있었습니다.

 

추가로 읽어도 이해 안되는 부분들은 유튜브로 공부를 했어요

정말 멋진 분들이 쉽게 설명을 많이 해주시더라구요ㅎㅎ

 

어려웠던 파트는 계층형 질의랑 정규화였던 것 같아요

 

 

 

나중에 한번 날 잡고 공부 방법이랑 요약노트 공유 꼭 드리겠습니다!!

 

SQLD 사전점수 확인하는 법

 

정식으로 시험 결과가 나오기 1주일전에 시험점수를 확인할 수 있습니다

보통 오후 5시 이후에 확인이 가능합니다

문자수신에 동의하시면 당일에 사전점수 확인하라고 문자가 오는데 저는 안해놓아서 저녁에 확인해보니 나와있더라구요

 

 

데이터자격검정에 들어가서 로그인하시고 결과확인 버튼을 눌러주시면 되는데요!

합격발표에 합격예정이라고 적혀있으면 합격이라고 봐도 무방할 것 같습니다

 

사전점수 발표날에 시험결과 확인을 누르면 점수까지 볼 수 있었는데 지금은 막혀 있네요;;

 

정리하면

 

노랭이 3회독 열심히 하면 비전공자여도 합격은 어렵지 않다

시간이 넉넉하다면 한국데이터산업진흥원에서 공유한 pdf 이론 공부 추천

 

무튼 오늘 하루도 즐겁게 보내시길 바랍니다ㅎㅎ

 

 

 

+ Recent posts