파이썬 코드카타
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;
'TIL 통합' 카테고리의 다른 글
12/29 SQL 서브쿼리 : 인라인뷰, LEFT OUTER JOIN, 스칼라쿼리, WITH 함수 (0) | 2023.12.29 |
---|---|
12/28 CROSS JOIN 활용, NULL과 0 (0) | 2023.12.28 |
12/26 TIL 파이썬 사칙연산 (0) | 2023.12.26 |
12/22 with 및 union all 활용, length, 셀프조인 (0) | 2023.12.22 |
12/21 일지 - 파이썬 히트맵 matplotlib.pyplot.pcolor, seaborn.heatmap 차이 (0) | 2023.12.21 |