반응형
1. 키워드
NULL
- 어떠한 값도 가지고 있지 않음
- 연산해도 NULL
- join 에서여집합 부분에는 없는 정보는 NULL로 대체
DESC table 테이블 구조 확인(describe의 앞 4자 따옴)
desc table;
*(asterisk)
SELECT * FROM 테이블;
모든 어트리뷰트를 선택
자주 사용하지 않음, 실제 서비스에서 DB테이블은 많기 때문에 매번 모든 어트리뷰트의 레코드 출력
Alias
테이블, 칼럼에 alias지정
개발 생상성 향상, 유지보수 도움
SELECT count(*) as 합계 FROM 테이블;
LIMIT [시작=0, ] 가져올 데이터 갯수
ROWNUM 오라클
가져올 데이터 갯수를 지정하여 필드 개수 제한하며 기본으로 0번째부터 가져옴
SELECT * FROM 테이블 LIMIT 1,10;
--1번째 데이터부터 10개 가져오기
DISTINCT
중복된 행 제거하여 유일한 값만 갖는 행 출력
SELECT DISTINCT attr1 FROM 테이블;
중복 제거, 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급
2. 연산자(Operators)
산술 연산자(Arithmetic Operators)
- + 더하기
- - 빼기
- * 곱하기
- / 나누기
- % 나머지
- +=, -=, *- ,/=, %= 도 가능
비교 연산자(Comparison Operators)
- = 같다
- !=, <> , ^= 같지 않다,다르다
- >,>= 크다(초과), 같거나 크다(이상)
- <,<= 작다(미만), 같거나 작다(이하)
논리 연산자(Logical Operators)
- ALL 모두 만족해야 참(AND)
-
> ALL 값들 중 최대값 보다 크면 결과를 리턴( 모든 값들보다 커야하므로 최대값보다 커야함) < ALL 값들 중 최소값 보다 작으면 결과를 리턴 (모든 값들보다 작아야 하므로 최소값보다 작아야함) = ALL 모든 값들과 같아야 결과를 리턴 , 값이 하나일 때만 가능 <> ALL 모든 값들과 다르면 결과를 리턴
-
- ANY 하나라도 만족하면 참(OR)
-
= ANY 하나라도 만족하는 값이 있으면 결과를 리턴 , IN 과 동일 > ANY 값들 중 최소값 보다 크면 결과를 리턴 < ANY 값들 중 최대값 보다 작으면 결과를 리턴 <> ANY 모든 값들 중 다른 값만 리턴 ,값이 하나일 때만 가능
-
- IN (A,B)
- 컬럼=A OR 컬럼=B , =ANY ()와 동일
- 서브쿼리도 올 수 있음
- EXISTS(서브쿼리) IN과 동일하게 존재 여부 확인하면 서브쿼리로만 가능
- AND && 앞, 뒤 조건 모두 참
- OR || 앞, 뒤 조건 중 하나라도 참
- NOT 불리언 값을 반대로 바꿈
- NOT BETWEEN a AND b 값 사이에 있지 않은 값
- NOT IN (A,B) 해당 값들과같지 않다.
- IS NOT NULL NULL이 아닌 값
- BETWEEN A AND B A이상 B이하 사이의 값
- 컬럼 >=A AND 컬럼<=B와 동일
- LIKE 특정 문자가 포함된 문자열 찾기
- wildcard
- % 0개 이상의 문자
- _ 한개의 단일 문자
- wildcard
- SOME
3. 내장 함수
지정한 어트리뷰트에 함수 적용
- 단일행 함수 하나의 출력값을 리턴하는 함수
- 문자:
- LOWER('string') 소문자 변환
- UPPER('string') 대분자로 변환
- SUBSTR('string', 시작, 끝) 시작부터 끝 위치의 인덱스만 추출
- LENGTH('string') 문자열 길이
- LTRIM('string')/RTRIM('string') 왼쪽/오른쪽 기준으로 공백 제거
- ASCII('A') 문자열을 아스키 코드로 변환 <-> CHAR()
- CHAR('65') 문자열을 아스키 코드로 변환 <-> ASCII()
- 숫자: EXP,LOG,LN,POWER, SIN,COS,TAN
- ABS 절대값
- ROUND( , n) 소수점 자리 n번째에서 반올림
- FLOOR() 내림
- CEIL() 올림
- TRUNC( , n) 소수점 자리 n번째에서 내림
- MOD(A,B) A를 B로 나눴을때 나머지
- 날짜:
- SYSDATE 현재 년월일시분초 출력
- YYYY/MM.DD HH24:MI:SS 형식으로 표현함
- 2021/10/19 12:00:00
- 연산가능
- SYSDATE-1 어제 (하루 빼기)
- SYSDATE-(1/24/60/60)*30 현재로 30초 전
- EXTRACT(인자)
- YEAR FROM SYSDATE 현재 년도 출력
- MONTH FROM SYSDATE 현재 월 출력
- DAY FROM SYSDATE 현재 일 출력
- SYSDATE 현재 년월일시분초 출력
- 변환:
- 명시적
- TO_NUMBER 숫자형 출력
- TO_CHAR 문자열 출력
- TO_CHAR(SYSDATE, YYYY) => 2021
- TO_DATE 날짜형 변환
- 명시적
- NULL 처리
- NVL(값, 출력값) 값이 NULL인경우 출력한 값으로 출력
- NULLIF( a,b ) 두 문자열이 다르면 첫 문자열 출력, 같으면 NULL
- COALESCE(인자...) 여러 인자 중 NULL이 아닌 첫번째인자 출력
- 문자:
- 집계 함수
- 그룹 계산에 사용 가능
- COUNT 갯수
- 검색한 결과의 데이터의 개수를 가져오는 내장함수 NULL인 데이터는 제외
- count(*) 보통 이 방식을 사용하여 NULL데이터 제외되는 경우 방지
- SUM 합
- AVG 평균
- MAX, MIN 최대,최소값
- STDDEV 표준편차
- VARIAN 분산
반응형
'Data > DB' 카테고리의 다른 글
[DB] MongoDB - 몽고DB에 대해서 (2) | 2021.11.16 |
---|---|
[DB] MariaDB 시작하기(MAC) (0) | 2021.11.10 |
[DB]MYSQL Workbench 시작하기 (0) | 2021.11.10 |
SQL(Structured Query Language) 1: DDL,DML,TCL (0) | 2021.10.29 |
Mac OS PostgreSQL 설치 방법(pgAdmin4, homebrew) (0) | 2021.07.09 |