티스토리 뷰

SQL

SQL - SQL기본(2)

chaewonni 2023. 8. 28. 19:57

6절 함수

1.     단일 행 함수: 1) SELECT 2)WHERE 3)ORDER BY 절에 사용 가능, 각 행에 개별적으로 작용, 여러 인자를 입력해도 단 하나의 결과만 출력

A.      문자형 함수: 문자열 입력 시 문자열이나 숫자 반환

                         i.         LOWER, UPPER, LENGTH

                        ii.         CONCAT: 문자열 결합

                       iii.         SUBSTR: 문자열 부분 추출

                       iv.         LTRIM, RTRIM, TRIM: 왼쪽 공백 제거, 오른쪽 공백 제거, 양쪽 공백 제거

                        v.         ASCII : 아스키 코드값 출력

B.      숫자형 함수

                         i.         ABS, SIGN : 절대값, 부호 (1,0,-1 중 출력)

                        ii.         MOD: 나머지, 연산자 ‘%’로 대체 가능함

                       iii.         ROUND, CEIL, FLOOR: 반올림, 올림, 버림 (‘함수(E,N)’으로 소수점 이후 N번째 자리까지 출력)

                       iv.         TRUNC: 숫자형 부분 추출

C.      날짜형 함수

                         i.         SYSDATE: 현재 시각 출력(, , , , , )

                        ii.         EXTRACT: 날짜형 부분 추출    SQL >> SELECT EXTRACT(부분 FROM SYSDATE) FROM DUAL;

                       iii.         ±숫자, ±숫자/24 : 일자 연산, 시간 연산

                       iv.         NEXT_DAY: 지정된 요일 첫 날짜 출력

D.     변환형 함수: 데이터 타입 변환, 명시적 형 변환 방식

                         i.         TO_NUMBER, TO_CHAR, TO_DATE (Oracle): 문자열을 숫자로, 숫자나 날짜를 문자열로, 문자열을 날짜로

                        ii.         CAST, CONVERT (SQL server)

E.      NULL 관련 함수

                         i.         NVL(칼럼,): NULL값 변환

                        ii.         NVL2(칼럼,,): NULL이면 앞의 값 아니면 뒤의 값 출력

                       iii.         NULLIF(,) : 같으면 NULL 다르면 첫 값 출력

                       iv.         COALESCE(, , …): NULL이 아닌 첫 값 출력

                        v.         ISNULL(칼럼,): NULL이면 값으로 대치 아니면 칼럼 값 출력

2.     데이터 변환

A.      명시적 형 변환: 변환형 함수를 이용하여 데이터 타입 변환

B.      암시적 형 변환: DBMS가 자동으로 데이터 타입 변환

3.     조건문 IF-THEN-ELSE 형태

A.      CASE WHEN 조건절1 THEN 출력값1 … ELSE 기본값 END: ELSE 생략 시 NULL 출력

‘CASE WHEN NULL THEN 출력값 ELSE 기본값은 조건이 없으므로 모든 행에서 기본값 출력 (일반적으로 ‘WHEN 칼럼 IS NULL’로 수정 필요)

B. DECODE (칼럼, 기준값1, 출력값1, …, 기본값) : Oracle 함수, 기준값n이면 출력값n 출력

 

7GROUP BY, HAVING

1.     집계함수: 그룹별 결과 출력, 다중 행 함수 중 하나, GROUP BY절이 없으면 그룹핑 대상이 존재하지 않아 에러 발생, WHERE절에 사용 불가, 공집합에서도 연산 수행

A.      ALL, DISTINCT : 전체 출력, 중복 제외 출력

B.      SUM, AVG, MAX, MIN, VARIAN, STDDEV: NULL 제외하고 연산 (<-> 숫자 연산은 NULL 출력)

C.      COUNT: 행 수 출력

                         i.         COUNT(*): NULL 포함

                        ii.         COUNT(표현식): NULL 제외

2.     GROUP BY: 그룹핑 기준 설정, 앨리어스 사용 불가

3.     HAVING: GROUP BY절에 의한 집계 데이터에 출력 조건을 걺 (<-> WHERE절은 SELECT절에 조건을 걸기 때문에 제외된 데이터가 GROUP BY 대상이 아님), 일반적으로 GROUP BY 뒤에 위치함

8ORDER BY

1.     ORDER BY: 특정 칼럼을 기준으로 정렬, 기본 정렬기준은 오름차순

A.      1)칼럼명 2)앨리어스 3)칼럼의 SELECT 절에서 순서로 칼럼 지정 가능, SELECT절에 없는 칼럼도 지정 가능, GROUP BY절이 있으면 GROUP BY 대상 칼럼만 지정 가능

B.      OracleNULL을 최대값으로 판단함 (회장님은 상사가 없음 ) (<-> SQL server은 최소값으로 판단함)

2.     SELECT문 실행 순서

A.      테이블에서 출력 대상이 아닌 것은 제거하고 그룹핑해서 그룹핑된 값이 조건에 맞는 데이터를 계산 및 출력하고 정렬함

SELECT 칼럼명 AS “별명                                    계산 및 출력하고

FROM 테이블명                                                테이블에서

WHERE 조건식                                                    출력 대상이 아닌 것은 제거하고

GROUP BY 칼럼/표현식                                            그룹핑해서

HAVING 조건식                                                         그룹핑된 값이 조건에 맞는 데이터를

ORDER BY 칼럼/표현식                                                         정렬함

 

9절 조인

1.     조인: 여러 테이블을 연결 또는 결합하여 데이터를 출력하는 것, 일반적으로 PKFK의 연관성에 의해 성립

2.     등가조인: 두 테이블의 칼럼 값이 정확히 일치하는 경우, 대부분 PKFK를 기반으로 함

SQL >> SELECT 칼럼s FROM 테이블 1 A, 테이블 2 B WHERE A.칼럼명=B.칼럼명;

SELECT 대상 칼럼이 두 테이블 모두에 있는 경우 앨리어스를 지정해야 함 (양쪽 앨리어스 모두 무관)

3.     비등가 조인: 두 테이블의 칼럼 값이 정확하게 일치하지 않는 경우, 부등호나 BETWEEN 연산자를 통해 조인

'SQL' 카테고리의 다른 글

SQL - SQL 최적화 기본 원리  (0) 2023.09.02
SQL - SQL활용  (0) 2023.08.30
SQL - SQL 기본(1)  (0) 2023.08.24
SQL - 데이터 모델과 성능  (0) 2023.08.22
SQL - 데이터 모델링의 이해  (0) 2023.08.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함