SELECT 문
1. SELECT
- 저장되어 있는 데이터를 조회할때 사용하는 명령어
SELECT 컬럼1, 컬럼2, ... FROM 테이블 WHERE 컬럼1 = '아무개';
- 컬럼을 따로 명시하지 않고 *(ASTERISK)를 쓰면 전체 컬럼이 조회된다.
- WHERE절이 없으면 테이블의 전체 ROW가 조회된다.
- 테이블명이나 컬럼명에 별도의 별침(Alias)을 붙여줄 수 있는데 붙여주는 목적은 요즘 우리가 줄임말을 즐겨 쓰는 이유와 비슷하다.
SELECT BAND.BAND_NAME, BAND_MEMBER.MEMBER_NAME
FROM BAND, BAND_MEMBER
WHERE BAND.BAND_CODE = BAND_MEMBER.BAND_CODE;
V
SELECT B.BAND_NAME, BM.MEMBER_NAME
FROM BAND B, BAND_MEMBER BM
WHERE B.BAND_CODE = BM.BAND_CODE;
2. 산술 연산자
3. 합성 연산자
- 문자와 문자를 연결할 때 사용하는 연산자이다.
SELECT 'S'||'Q'||'L'||'개'||'발'||'자'|| AS SQLD
FROM DUAL;
함수
1. 문자 함수
- CHR(ASCII 코드) : ex) CHR(65) -> A
- LOWER(문자열) : ex) LOWER('JENNIE') -> jennie
- UPPER(문자열)
- LTRIM(문자열 [특정문자]) : 특정 문자를 따로 명시하지 않으면 문자열의 왼쪽 공백을 제거하고, 명시하면 문자열의 왼쪽부터 한글자씩 특정 문자와 비교하여 특정 문자에 포함되어 있으면 제거하고 포함되지 않았으면 멈춘다.
- ex) LTRIM(' JENNIE') -> JENNIE
- RTRIM(문자열 [특정문자]) : 오른쪽 제거 : ex) RTRIM('블랙핑크', '핑크') -> 블랙
- TRIM([위치][특정문자][FROM]문자열) : 옵션이 없을경우 문자열의 왼쪽과 오른쪽 공백을 제거하고, 그렇지 않을 경우 문자열을 위치(LEADING or TRAILING or BOTH)로 지정된 곳부터 한글자씩 특정 문자와 비교하여 같으면 제거 아니면 멈춘다. LTRIM,RTRIM과는 달리 특정 문자는 한글자만 지정할 수 있다.
- ex) TRIM(LEADING '블' FROM '블랙핑크) -> 랙핑크
- ex) TRIM(TRAILING '크' FROM '블랙핑크) -> 블랙핑
- SUBSTR(문자열, 시작점[길이]) : 문자열의 원하는 부분만 잘라서 반환해주는 함수이다. 길이를 명시하지 않았을 경우 문자열의 시작점부터 끝까지 반환된다.
- ex) SUBSTR('블랙핑크제니',3,2) -> 핑크
- LENGTH(문자열) : 문자열의 길이를 반환하는 함수이다.
- REPLACE(문자열, 변경 전 문자열[ 변경 후 문자열 ]) : 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수이다. 변경 후 문자열을 명시해 주지 않으면 문자열에서 변경 전 문자열을 제거한다.
- ex) REPLACE('블랙핑크제니','제니','지수') -> 블랙핑크지수
2. 숫자 함수
- ABS(수) : 수의 절대값을 반환해주는 함수이다.
- SIGN(수) : 수의 부호를 반환해주는 함수이다. 양수이면 1, 음수이면 -1, 0이면 0을 반환한다.
- ROUND(수 [자릿수]) : 수를 지정된 소수점 자릿수까지 반올림하여 반환해주는 함수이다. 자릿수를 명시하지 않았을 경우 기본값은 0이며 반올림된 정수로 반환하고 자릿수가 음수일 경우 지정된 정수부를 반올림하여 반환한다.
- ex) ROUND(163.76,1) -> 163.8
- ex) ROUND(163.76, -2) -> 200
- TRUNC(수 [자릿수]) : 수를 지정된 소수점 자릿수까지 버림하여 반환하는 함수이다. 기본값은 0이다.
- CEIL(수) : 소수점 이하의 수를 올림한 정수를 반환해주는 함수이다.
- FLOOR(수) : 소수점 이하의 수를 버림한 정수를 반환해주는 함수이다.
- MOD(수1, 수2) : 수1을 수2로 나눈 나머지를 반환해주는 함수이다.
- ex) MOD(15,7) -> 1
3. 날짜 함수
- SYSDATE : 현재의 연, 월, 일, 시, 분, 초를 반환해주는 함수이다.
- ex) SYSDATE -> 2023-08-19 15:43:05
- EXTRACT(특정 단위 FROM 날짜 데이터) : 날짜 데이터에서 특정 단위(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)만을 출력해서 반환해주는 함수이다.
- EXTRACT(YEAR FROM SYSDATE) -> 2023
- ADD_MONTHS(날짜 데이터, 특정 개월 수) : 날짜 데이터에서 특정 개월 수 를 더한 날짜를 반환해주는 함수이다.
4. 변환 함수
- 명시적 형변환과 암시적 형변환
- 명시적 형변환 : 변환 함수를 사용하여 데이터 유형 변환을 명시적으로 나타냄
- 암시적 형변환 : 데이터베이스가 내부적으로 알아서 데이터 유형을 변환함
- 명시적 형변환에 쓰이는 함수
- TO_NUMBER(문자열) : 문자열을 숫자형으로 변환
- TO_CHAR(수 or 날짜[포맷]) : 수나 날짜형의 데이터를 포맷 형식의 문자형으로 변환해주는 함수
- ex) TO_CHRA(SYSDATE, 'YYYYMMDD HH24MISS') -> 20230819 154305
- TO_DATE(문자열, 포맷) : 포맷 형식의 문자형의 데이터를 날짜형으로 변환해주는 함수
5. NULL 관련 함수
- MVL(인수1, 인수2) : 인수 1의 값이 NULL인 경우 인수2를 반환하고 NULL이 아닌 경우 인수1을 반환하는 함수
- NULLF(인수1, 인수2) : 인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 인수1을 반환해주는 함수
- COALESCE(인수1, 인수2, 인수3, ...) : NULL이 아닌 최초의 인수를 반환해주는 함수
6. CASE
- CASE는 함수라기보다는 구문에 가깝다. 문장으로 '~이면~이고~이면~이다' 식으로 표현되는 구문으로 필요에 따라 각 CASE를 여러개로 늘릴 수도 있다.(ORACEL의 DECODE 함수)
WHERE 절
INSERT를 제외한 DML문을 수행할 때 원하는 데이터만 골라 수행할 수 있도록 해주는 구문이다.
1. 비교 연산자
2. 부정 비교 연산자
3. SQL 연산자
- ex) LIKE 'M%S' -> M으로 시작하고 S로 끝나는 행을 조회
4. 부정 SQL 연산자
5. 논리 연산자
'Database' 카테고리의 다른 글
SQL 활용(서브쿼리, 집합연산자, 그룹함수, 윈도우 함수) (0) | 2023.09.02 |
---|---|
SQL 기본(GROUP BY, HAVING, ORDER BY, JOIN) (0) | 2023.09.02 |
데이터 모델과 SQL (0) | 2023.08.19 |
SQL_데이터 모델링의 이해 (0) | 2023.08.12 |
[MySQL] 인덱스 스캔 방식의 종류 및 특징 (0) | 2023.03.28 |