열정 실천

[SQLD] 003. SQL 기본 1 - 함수, SELECT, WHERE, GROUP BY, ORDER BY 본문

CS/DATABASE

[SQLD] 003. SQL 기본 1 - 함수, SELECT, WHERE, GROUP BY, ORDER BY

구운오니 2024. 11. 8. 14:34
728x90

| 01 | 관계형 데이터베이스 개요 

 

RDB(Reltional Database)라고 불리는 관계형 데이터베이스는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의한다. 

 

 

SQL 

 

SQL은 관계형 데이터베이스를 다루는 언어이다. 

 

 

 

Syntax

SELECT [DISTINCT] 속성 명, 속성 명, ...
FROM 테이블 명
WHERE 조건
[ GROUP BY 속성 명 ]
[ HAVING 조건 ]
[ ORDER BY 속성 명 [ ASC | DESC] ]

 



 

 

| 02 | SELECT 

 

저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어 

SELECT 컬럼1, 컬럼2, ... FROM 테이블 WHERE 컬럼1  = '홍길동';

 

 

 

산술 연산자

 

수학에서 사용하는 사칙연산의 기능을 가진 연산자 

() 괄호로 우선 순위 조정 
+ 더하기
빼기
* 곱하기
/ 나누기

 

⚠주의 :  다른 컬럼끼리의 연산에서 NULL이 포함되어 있으면 결과값은 NULL이 된다. 

 

합성 연산자 

 

|| : 문자와 문자를 연결할 때 사용하는 연산자이다. 

SELECT 'S'||'Q'||'D'||'개'||'발'||'자' AS SQLD FROM SAMPLE;

 

 

 

| 03 | 함수 

 

문자 함수
UPPER( )   모든 문자를 대문자로 변환
LOWER( ) 모든 문자를 소문자로 변환
SUBSTR(char, m [, n]  char 내 m 번째 위치로부터 n 길이의 문자열을 추출
LENGTH( ) 문자열의 길이를 반환
CHR( ) ASCII 코드 값을 문자로 변환
TRIM( ) 앞과 뒤에 있는 특정 문자(보통 공백)를 제거
LTRIM( ) 문자열의 왼쪽 공백을 제거
LTRIM(  "블랙핑크", " 블랙" ) => 핑크
RTRIM( ) 문자열의 오른쪽 공백을 제거
RTRIM (  "블랙핑크", " 핑크" )
=> 블랙
REPLACE( 문자열, 변경 전 문자열, 변경할 문자열) 문자열에서 변경 전 문자열을 찾아 변경할 문자열로 변경

 

 

숫자함수
ABS( 수 )  수의 절댓값 반환
SIGN( 수 ) 수의 부호를 반환 - 양수 : 1 음수 : -1
ROUND( 수 [, 자릿수] )  수를 지정된 소수점 자릿수까지 반올림
TRUNC ( 수 [, 자릿수] )  수를 지정된 소수점 자릿수까지 버림하여 반환
CEIL( 수 )  소수점 이하의 수를 올림한 정수를 반환
FLOOR( 수 ) 소수점 이하의 수를 버림한 정수를 반환 
MOD( 수1, 수2 ) 수1을 수2로 나눈 나머지 반환

 

 

날짜함수 
SYSDATE 현재의 연, 월, 일, 시, 분, 초 반환
EXTRACT( 날짜단위 FROM SYSDATE) SYSDATE에서 특정 정보만 반환 
ADD_MONTHS( 날짜 데이터, 특정 개월 수 ) 날짜 데이터에서 특정 개월 수 더한 날짜 반환

 

 

명시적 형변환 함수 
TO_NUMBER( 문자열 )  문자열을 숫자형으로 변환
TO_CHAR( 수 or 날짜 [,  ) 수나 날짜형의 데이터를 문자형으로 변환
TO_DATE( 문자열, 포맷) 문자형 데이터를 날짜형으로 변환

 

 

NULL 관련 함수 
NVL( 인수1, 인수2 )  인수1의 값이 NULL이면 인수 2, NULL아니면 인수1 반환
NULLIF( 인수1, 인수2 ) 인수1과 인수2가 같으면 NULL, 다르면 인수1 반환
COALESCE( 인수1, 인수2, 인수3, ... ) NULL이 아닌 최초의 인수를 반환 

 

 

 

| 04 | WHERE 절 

INSERT를 제외한 DML문을 수행할 때 원하는 데이터만 골라 수행할 수 있도록 해주는 구문

 

 

비교 연산자  :  =  <  <=  >  >=

 

 

SQL 연산자 

BETWEEN ... AND ... 두 값 사이
NOT BETWEEN ... AND ... 두 값 사이가 아님
IN ( ... , ...) 괄호 안 값들 중 일치하는게 있음
NOT IN( ...) 괄호 안 값 중 없음
LIKE 대표 문자를 이용해 문자 패턴과 일치하는지

% : 모든 문자 대신
 _ : 문자 하나 대신 
#  : 숫자 하나 대신
IS NULL NULL
IS NOT NULL NULL 아님

 

 

논리 연산자 
AND 모든 조건이 TRUE 여야함
OR 하나 이상의 조건이 TRUE여야 함
NOT TRUE면 FALSE고 FALSE이면 TRUE

 

 

 

 

| 05 | GROUP BY, HAVING 절

 

GROUP BY는 데이터를 그룹별로 묶기 위해 사용

HAVING 은 GROUP BY절을 사용할 때 WHERE처럼 사용하는 조건절

 

집계함수 
COUNT( * ) 전체 ROW를 COUNT하여 반환
COUNT( 컬럼 ) 컬럼 값이 NULL인 ROW를 제외하고 COUNT하여 반환
COUNT( DISTINCT 컬럼 )  컬럼 값이 NULL이 아닌 ROW에서 중복을 제거한 COUNT를 반환
SUM( 컬럼 ) 컬럼 값들의 합계
AVG( 컬럼 ) 컬럼 값들의 평균
MIN( 컬럼 ) 컬럼 값들의 최솟값
MAX( 컬럼 ) 컬럼 값들의 최댓값 

 

* NULL인 컬럼 값이 있다면 제외하고 계산한다. 

 

 

 

| 06 | ORDER BY 

ORDER BY 절을 이용하여 SELECT 한 데이터를 정렬한다. 

 

- ASC : 오름차순 (기본값)

- DES : 내림차순 

 

* NULL값은 최댓값으로 취급 

 

728x90