본문 바로가기

TIL 통합

12/27

파이썬 코드카타

 

7. 두 수의 나눗셈

#int() 함수 사용
def solution(num1, num2):
    return int(num1/num2*1000)
    
#math.trunc() 사용
import math     <-----------math 라이브러리 불러오기 
def solution(num1, num2):
    return math.trunc(num1/num2*1000)

 

 

int() 함수와 math 라이브러리의 대표적 함수들

함수 기능
int()  정수 부분만 출력
math.trunc()  정수 부분만 출력
math.floor()  버림
math.ceil()  올림
math.round() 반올림



8.각도기

def solution(angle):
    if 0 < angle < 90:
        return 1
    elif angle == 90:
        return 2
    elif 90 < angle < 180:
        return 3
    elif angle == 180:
        return 4
        
        
        
def solution(angle):
    if 0 < angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif 90 < angle < 180:
        answer = 3
    elif angle == 180:
        answer = 4

elif : if의 값이 거짓일 경우 사용

else : if, elif 값 모두에 해당 안 될 때 사용

 

 


 

SQLD 자격증반


9주차

ROWNUM :

가상의 행번호 조회/추출 시에 사용(LIMIT 함수와 비슷하게 사용)

 

TRIM : TRIM, LTRIM(RTRIM)

1)TRIM : LTRIM 및 RTRIM과 입력방식 다르므로 주의!

SELECT TRIM('x' from 'xYYx')
FROM DUAL;

결과값 : 'YY'

 

*leading 또는 trailing 통해 LTRIM 및 RTRIM과 같은 효과 가질 수 있음

SELECT TRIM(trailing 'x' from 'xYYx')
FROM DUAL;

결과값 : 'xYY'

 

2)LTRIM(RTRIM) : 디폴트는 공백이며, SQL Server에서는 공백 제거만 가능

SELECT LTRIM('xYYx', 'x')
FROM DUAL;

출력값 : 'YYx'

 

 

LPAD, RPAD

 : LPAD('기본문자열', '채운 뒤 문자수', '채울 문자') *'채울 문자' 미입력시 공백으로 채움

select lpad('ab', 5, '2')
from dual;

결과값 : '222ab'

 

 

명시적 데이터 유형 변환

1)ORACLE

TO_NUMBER(문자열)

TO_CHAR(숫자|날짜 [, FORMAT])

TO_DATE(문자열 [, FORMAT])

 

2)SQL Server

CAST (expresion AS data type [(length)]) : expression을 목표 데이터 유형으로 변환

CONVERT (data_type [(length)], expression [,style]) : expression을 목표 데이터 유형으로 변환

 

 

NULL관련 함수

1)NVL : NVL(NULL판단대상, NULL대체값)

*SQL Server : ISNULL(NULL판단대상, NULL대체값)

2) COALESCE : COALESCE(exp1, exp2, exp3 ...) : 여러 값 중 NULL이 아닌 첫번째 값 출력

 

 

DECODE : CASE WHEN과 비슷. '기준값'을 '값'으로 바꿔줌!

DECODE(표현식(or칼럼명), '기준값1', '값1' [, '기준값2', '값2'....]) 

 


10주차

DML(Data Manipulation Language)

GROUP BY, HAVING, 집계함수

-집계함수 중 COUNT(*)만 NULL 포함! (나머지 집계함수 NULL포함X)

 

ORDER BY

-집계함수 사용하면 집계치로만 ORDER BY 가능. 원 자료 기준으로는 불가능

-ROWNUM : ORDER BY 보다 먼저 번호 매김 ->정렬은 나중에(ROWNUM 기준으로 정렬불가)

 

 

TCL(TRANSACTION CONTROL LANGUAGE)

-기본 속성 : ACID(Atomicity, Consistency, Isolation, Durability)

-COMMIT

-ROLLBACK

-SAVEPOINT 

 *SAVEPOINT 저장점이름;

   ROLLBACK 저장점이름;

 *SQL Server의 경우 :

  SAVE TRANSACTION 저장점이름;

  ROLLBACK TRANSACTION 저장점이름;

 

DCL(DATA CONTROL LANGUAGE) : 유저 권한 제어 명령어 ->읽어보기

 

 


 

11주차

 

JOIN 

1)EQUI JOIN(등가조인) : (1)두 테이블 간 칼럼값 같을 경우(주로 PK, FK 사용)

                                         (2)WHERE '   ' = ' ' 사용

2)NON EQUI JOIN(비등가조인) : 두 테이블 간 칼럼 값이 완전히 일치하진 않으나 특정 범위내 있는 경우

 

 

표준 JOIN

1)INNER JOIN : 동일 값이 있는 행만 반환. 반드시 ON이나 USING 사용. 사실상 EQUI JOIN

2)NATURAL JOIN : INNER JOIN의 하위. 동일 칼럼 지정 안 해도 알아서 지정함(SQL Server에선 X)

3)USING 조건절 : 같은 칼럼 이름 가진 칼럼 중 원하는 칼럼 대해서만 선택적으로 EQUI JOIN 시행

4)ON 조건절 : 칼럼명 다르더라도 JOIN 조건 사용

5)CROSS JOIN : JOIN 조건 없는 경우 생길 수 있는 모든 데이터 조합 출력 =>거의 안 씀

6)OUTER JOIN : OUTER 모두 출력. INNER 테이블은 매칭되는 것만 출력

 

 

계층형 질의와 표준형 셀프조인

-- 테이블 생성
CREATE TABLE organization (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(50),
    parent_id NUMBER
);

-- 데이터 입력
INSERT INTO organization (id, name, parent_id)
VALUES (1, 'CEO', NULL);

INSERT INTO organization (id, name, parent_id)
VALUES (2, 'HR Manager', 1);

INSERT INTO organization (id, name, parent_id)
VALUES (3, 'Finance Manager', 1);

INSERT INTO organization (id, name, parent_id)
VALUES (4, 'Employee 1', 2);

INSERT INTO organization (id, name, parent_id)
VALUES (5, 'Employee 2', 2);

INSERT INTO organization (id, name, parent_id)
VALUES (6, 'Employee 3', 3);



SELECT id 부서번호, name 부서이름, parent_id 상위부서번호 FROM organization;



-- 계층형 쿼리 (순방향)

SELECT id 부서번호, name 부서이름, parent_id 상위부서번호,
    LPAD(' ', (level - 1) * 4) || name AS 계층도
FROM organization
START WITH parent_id IS NULL
CONNECT BY PRIOR id = parent_id
ORDER BY level;