일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 불친절한SQL
- ApplicationContext
- 자바
- java
- mariadb
- SpringFramework
- 자바문제
- Spring
- 스프링
- SQL
- 스프링의정석
- 자바의정석
- oauth
- Oracle
- 소셜로그인
- 패스트캠퍼스
- MySQL
- 쿼리
- 남궁성
- 기초쿼리
- 국비지원
- 자바연습문제
- 클린빌드
- 인프런
- RDBMS
- 패캠
- 자바기초
- devcamp
- 오라클
- cleanbuild
- Today
- Total
목록MySQL (11)
Darren's Devlog
○ 활용 예제 열 가공 WHERE 절의 열을 가공하면 쿼리의 성능이 저하될 수 있다. 가급적 열을 가공하지 않는 편이 바람직하다. 아래 쿼리는 연봉이 36000 이상인 행을 조회한다. 좌측 쿼리는 산술 연산이 행의 개수만큼 수행된다. 우측 쿼리는 산술 연산을 수행한 결과로 조건을 평가할 수 있다. SELECT * FROM emp WHERE sal * 12 >= 36000; SELECT * FROM emp WHERE sal >= 36000 / 12; 아래 쿼리는 deptno가 10이고 job이 CLERK인 행을 조회한다. 좌측 쿼리는 결합 연산자로 열을 가공했다. 우측 쿼리처럼 AND 조건을 사용해야 한다. SELECT * FROM emp WHERE deptno || job = '10CLERK'; SELE..
LIKE 조건 LIKE 조건은 char1이 char2 패턴과 일치하는 행을 반환한다. char1과 char2는 문자 값을 사용해야 한다. LIKE 조건을 패턴 일치 조건으로 부르기도 한다. char1 [NOT] LIKE char2 [ESCAPE esc_char] char2에 아래의 특수문자를 사용할 수 있다. 특수문자 설명 % 0개 이사의 문자와 일치 _ 하나의 문자와 일치 아래 쿼리는 ename이 A로 시작하는 행을 조회한다. SELECT ename FROM emp WHERE ename LIKE 'A%' 아래 쿼리는 ename이 A로 시작하고 S로 끝나는 행을 조회한다. SELECT ename FROM emp WHERE ename LIKE 'A%S'; 아래 쿼리는 ename에 ON이 포함된 행을 조회한..
● WHERE절 WHERE절을 사용하면 특정 행만 선택하여 조회할 수 있다. WHERE절은 FROM절 다음에 기술하며, FROM절 이후에 수행된다. SELECT 절 -- (3) FROM 절 -- (1) WHERE 절 -- (2) WHERE절의 구문은 아래와 같다. 조건(condition은) 행마다 평가되며, TRUE, FALSE, UNKNOWN 중 하나의 값을 반환한다. SELECT 문은 WHERE절의 평가 결과가 TRUE인 행만 반환한다. WHERE condition 비교 조건, 논리 조건, IN 조건, BETWEEN 조건, LIKE 조건, NULL 조건을 차례대로 살펴보자. 비교 조건 비교 조건으로 표현식을 비교할 수 있다. 아래와 같은 비교 조건을 사용할 수 있다. 비교 조건 설명 비교 조건 설명 ..
○ 비교 함수 값 집합의 최소값이나 최대값을 결정하는 함수이다. LEAST 함수, GREATEST 함수 expr 중 최소/최대값을 반환한다. expr에 null이 입력되면 null을 반환한다. expr의 데이터 타입이 동일해야 한다. 데이터 타입이 다르자면 첫 번째 expr의 데이터 타입으로 변환되고, 형변환 에러가 일어날 수 있다. SELECT LEAST(1, 2, 3) AS c1, LEAST('A', 'AB', 'ABC') AS c2, LEAST(1, NULL) AS c3 FROM DUAL; SELECT GREATEST(1, 2, 3) AS c1, GREATEST('A', 'AB', 'ABC') AS c2 , GREATEST(1, NULL) AS c3 FROM DUAL;
○ 널 관련 함수 NULL을 처리하는 함수다. NVL 함수 expr1이 널이 아니면 expr1, 널이면 expr2를 반환한다. NVL(expr1, expr2) SELECT NVL(1, 2) AS c1, NVL (NULL, 2) AS c2 FROM DUAL; SELECT ename, sal, comm, sal + comm AS c1, sal + NVL(comm, 0) AS c2 FROM emp; NVL2 함수 expr1이 널이 아니면 expr2, 널이면 expr3를 반환한다. 삼항 연산자와 유사하다고 느껴진다. NVL2(expr1, expr2, expr3) SELECT NVL2(1, 2, 3) AS c1, NVL2(NULL, 2, 3) AS c2 FROM DUAL; SELECT ename, sal, com..
○ 변환함수 값의 데이터 타입을 다른 데이터 타입으로 변환하는 함수이다. TO_CHAR(number) 함수 숫자 값 n을 fmt형식의 문자 값으로 변환한다. TO_CHAR(n [, fmt [, 'nlsparam']]) 자주 사용되는 포맷이다. 포맷 요소 설명 0 앞쪽이나 뒷쪽에 0을 출력 9 한자리 숫자 , 구분자 . 소수점 S 부호(양수일 경우 +, 음수일 경우 -) G 구문자(NLS_NUMERIC_CHARACTERS으로 변경 가능) D 소수점(NLS_NUMERIC_CHARACTERS으로 변경 가능) $ 달러 L 로컬 통화 기호 U 이중 통화 기호 C 국제 통화 기호 c1과 c4 열은 값이 fmt보다 커 결과가 #으로 표시된다. SELECT TO_CHAR(12, '0' ) AS c1, TO_CHAR(1..
○ 날짜 함수 날짜 값(date, timestamp, interval)을 조작하는 함수이다. 예제를 위해 NLS 파라미터를 아래와 같이 설정했다. ALTER SESSION SET NLS_DATE_FORMAT = "YYYY-MM-DD HH24:MI:SS"; ALTER SESSION SET NLS_TIMESTAMP_FORMAT = "YYYY-MM-DD HH24:MI:SS.FF"; ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = "YYYY-MM-DD HH24:MI:SS.FF TZH:TZM"; SYSDATE 함수 초(second)가 포함된 데이터베이스 서버의 날짜 값을 DATE타입으로 반환한다. SELECT SYSDATE FROM DUAL; SYSDATE 함수 소수점 이하 초() ..
0○ 숫자 함수 숫자 값을 조작하는 함수이다. ABS 함수 n의 절대값을 반환한다. SELECT ABS(0) AS c1, ABS(10) AS c2, ABS(-10) AS c3 FROM DUAL; SIGN 함수 n의 부호를 반환한다. n이 양수이면 1, 음수이면 -1, 0이면 0을 반환한다. SELECT SIGN(0) AS c1, SIGN(10) AS c2, SIGN(-10) AS c3 FROM DUAL; ROUND(number) 함수 n1을 n2자리로 반올림한다. n2가 양수면 소수부, 음수면 정수부를 반올림한다. n2의 기본값은 0이다. ROUND(n1, [, n2]) SELECT ROUND(15.59) AS c1, ROUND(15.59, 1) AS c2, ROUND(15.59, -1) AS c3 FR..
오라클 데이터베이스는 다양한 내장 SQL함수를 제공한다. 이번 장에서는 단일 행 함수를 살펴보도록 하겠다. 함수 설명 장 단일 행 함수 단일 행을 입력받아 단일 행을 반환하는 함수 6장 집계 함수 다중 행을 입력받아 단일 행을 반환하는 함수 9장 분석 함수 다중 행을 입력받아 다중 행을 반환하는 함수 14장 모델 함수 MODEL 절에서 사용하는 함수 26장 ○ 문자 함수 문자 값을 조작하는 함수이다. CHR 함수 n에 해당하는 데이터베이스 캐릭터 셋의 문자 값을 반환한다. 문자로 입력할 수 없는 특수 문자를 입력할 때 사용할 수 있다. 아래 CHR(10) 함수는 줄 바꿈 문자를 의미한다. SELECT 'AB' || CHR(10) || ' C' AS c1 FROM DUAL; LOWER 함수 char를 소문..
○ 기본요소 리터럴(literal)은 변하지 않는 값이다. 다른 프로그래밍 언어의 상수와 유사하다. 문자 리터럴, 숫자 리터럴, 날짜 리터럴, 인터벌 리터럴 등이 있다. 널(NULL) 값이 없더나 정해지지 않는 것을 의미한다. 오라클 DB는 NULL과 빈 문자('')를 동일하게 처리한다. 연산자(operator) 피연산자(operand)에 대한 연산을 수행한다. 산술 연산자, 연결 연산자, 집합 연산자, 계층 쿼리 연산자 MULTISET 연산자 등이 있다. 산술 연산자 숫자 값이나 날짜 값에 대한 산술 연산을 수행한다. 나눗셈의 제수가 0이면 에러가 발생한다. SELECT 1+2-3*4/5 AS c1, 1+2-((3*4)/5) AS c2 FROM DUAL; SELECT 1/0 FROM DUAL; --에러..