| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- C# Blazor
- C# InteractiveServer
- cs기술면접
- 컴퓨터과학
- 스프링부트 장점
- REST API
- 기술면접
- 프론트엔드
- 스프링부트 단점
- 정보처리기사실기 기본개념
- Redundant Array of Independent
- Blazor WebAssembly
- SPA MPA 차이
- c언어 정보처리기사
- Service Worker
- SPA MPA 특징
- C#이론
- SPA MPA
- 서버저장방식
- InteractiveServer
- 스프링부트의 장단점
- C# @rendermode
- CS
- nosql
- jvm구성요소
- OPC-UA
- spring spring boot 차이점 공통점
- 스프링 스프링부트 차이점 공통점
- Blazor Web App
- C# CS
- Today
- Total
담비의 개발블로그
국비지원교육 42일차(9주차&DB) 본문
WHERE
- SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는데 사용한다.
- SQL의 IF문이라고도 불린다.
부서 번호가 30인 데이터만 출력
SELECT * FROM EMP
WHERE DEPTNO = 30;
쓰는 방식
SELECT [조회할 열1 이름], [열2 이름], ... [열N 이름]
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하기 위한 조건식];
AND, OR 연산자
- WHERE절에서 조건식을 여러 개 지정할 때 사용하는 논리연산자
SELECT [조회할 열1 이름], [열2 이름], ... [열N 이름]
FROM [조회할 테이블 이름]
WHERE [조건식1]
AND [조건식2]
OR [조건식3];
연산자
산술 연산자
- 더하기+ , 빼기 - , 곱하기 *, 나누기 /
비교 연산자
- 대소 비교 연산자
| 연산자 | 사용법 | 설명 |
| > | A>B | A 값이 B값을 초과할 경우 true |
| >= | A>=B | A 값이 B값 이상일 경우 true |
| < | A<B | A 값이 B값 미만일 경우 true |
| <= | A<=B | A 값이 B값 이하일 경우 true |
대소 비교 연산자는 문자열일 때도 사용할 수 있다.
SELECT * FROM EMP
WHERE ENAME >= 'F';
이렇게 할 경우 사원 이름의 첫 문자가 F와 같거나 F뒤쪽인 것만 검색된다.
등기 비교 연산자
| 연산자 | 사용법 | 의미 |
| = | A = B | A값이 B값과 같을 경우 TRUE 다를 경우 FALSE |
| != | A != B | A 값과 B 값이 다를 경우 TRUE 같을 경우 FALSE |
| <> | A <> B | |
| ^= | A ^= B |
논리 부정 연산자(NOT 연산자)
- A값이 TRUE일 경우 논리 부정 연산자의 결과 값은 FALSE가 된다. 이렇게 결과 값을 변경하기 위해 사용한다.
SELECT * FROP EMP
WHERE NOT SAL = 3000;
NOT연산자는 이런식으로 사용이 가능하다.
보통 IN, BETWEEN, IS NULL연산자와 함께 복합적으로 사용하는 경우가 많다.
IN 연산자
- 특정 열에 포함된 데이터를 여러 개 조회할 때 사용한다.
SELECT [조회할 열1 이름], [열2 이름], ... [열N 이름]
FROM [조회할 테이블 이름]
WHERE 열 이름 IN(데이터1, 데이터2, ... 데이터N);
SELECT * FROM EMPWHERE JOB IN('MANAGER', 'SALESMAN');이렇게 하면 직업이 MANAGER, SALESMAN인 사람들을 출력할 수 있다.
BETWEEN A AND B 연산자
- 일정 범위 내의 데이터를 조회할 때 사용한다.
SELECT [조회할 열1 이름], [열2 이름], ... [열N 이름]
FROM [조회할 테이블 이름]
WHERE 열 이름 BETWEEN 최솟값 AND 최댓값;
예를 들어 급여가 2000~3000 사이를 보고싶을때 출력하기 용이하다.
LIKE 연산자와 와일드 카드
- LIKE 연산자는 이메일이나 게시판 제목 또는 내용 검색 기능처럼 일부 문자열이 포함된 데이터를 조회할 때 사용한다.
SELECT * FROM EMP
WHERE ENAME LIKE 'S%';
대문자 S로 시작하는 데이터를 조회하라는 뜻
LIKE 연산자와 사용할 수 있는 와일드 카드는 _와 %이다.
_ : 어떤 값이든 상관없이 한 개의 문자 데이터를 의미한다.
% : 길이와 상관없이(문자 없는 경우도 포함) 모든 문자 데이터를 의미한다.
LIKE '_S%' 두번째 글자가 대문자 S인 경우만 출력
LIKE '%S%' S가 포함되어 있는 글자를 모두 출력
NOT LIKE '%S%' S가 포함되어 있지 않은 글자를 모두 출력
IS NULL 연산자
NULL은 데이터 값이 완전히 비어 있는 상태를 말한다. '현재 무슨 값인지 확정되지 않은 상태'이거나 '값 자체가 존재하지 않는 상태'이다.
SELECT * FROM EMP
WHERE ENAME = NULL;
을 하게 되면 값이 제대로 나오지 않는다.
SELECT * FROM EMP
WHERE ENAME IS NULL;
이렇게 써야 값이 제대로 출력된다.
SELECT * FROM EMP
WHERE ENAME IS NOT NULL;
NOT연산자는 IS와 NULL 사이에 작성한다.
집합 연산자
| 종류 | 설명 |
| UNION | 연결된 SELECT 문의 결과 값을 합집합으로 묶어준다. 결과 값의 중복은 제거된다. |
| UNION ALL | 연결된 SELECT 문의 결과 값을 합집합으로 묶어준다. 중복된 결과 값도 제거 없이 모두 출력된다. |
| MINUS | 먼저 작성한 SELECT문의 결과 값에서 다음 SELECT문의 결과 값을 차집한 처리한다. 먼저 작성한 SELECT문의 결과 값 중 다음 SELECT문에 존재하지 않는 데이터만 출력 된다. |
| INTERSECT | 먼저 작성한 SELECT문과 다음 SELECT문의 결과 값이 같은 데이터만 출력된다. 교집합과 같은 의미이다. |
함수
- 수학에서 정의한 개념으로 x와 y 변수가 존재하고 x값이 변하면 그 변화에 따라 어떤 연산 또는 가공을 거쳐 y 값도 함께 변할 때 이 y를 함수라고 한다.
내장 함수의 종류
- 단일행 함수 : 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 함수- 다중행 함수 : 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수
대 소문자를 바꿔주는 함수
UPPER(문자열) : 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환
LOWER(문자열) : 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환
INITCAP(문자열) : 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환
LENGTH(문자열 길이를 구하는 함수)
- 특정 문자열의 길이를 구할 때 사용한다.
SELECT ENAME, LENGTH(ENAME)
FROM EMP;
위처럼 작성하면 사원 이름이 몇글자인지 알 수 있다.
- WHERE절에서 LENGTH함수를 사용하여 선별도 가능하다.
- LENGTHB함수는 바이트 수를 반환한다. (오라클 버전마다 다르게 나타날 수도 있다.)
SUBSTR(문자열 일부를 추출하는 함수)
| 함수 | 설명 |
| SUBSTR(문자열 데이터, 시작 위치, 추출 길이) | 문자열 데이터의 시작 위치부터 추출 길이만큼 추출한다. 시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 시작한다. |
| SUBSTR(문자열 데이터, 시작 위치) | 문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출한다. 시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 끝까지 추출한다. |
INSRT(문자열 데이터 안에서 특정 문자 위치를 찾는 함수)
- 문자열 데이터 안에 특정 문자나 문자열이 어디에 포함되어 있는지를 알고자 할때 사용한다.
INSTR([대상 문자열 데이터(필수)], [위치를 찾으려는 부분 문자(필수)], [위치 찾기를 시작할 대상 문자열 데이터 위치(선택, 기본값은1)], [시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은1)])
SELECT INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_1
FROM DUAL;
REPLACE(특정 문자를 다른 문자로 바꾸는 함수)
- 특정 문자열 데이터에 포함된 문자를 다른 문자로 대체할 경우에 유용하다.REPLACE([문자열 데이터 또는 열 이름(필수)], [찾는 문자(필수)], [대체할 문자(선택)])
SELECT '010-1234-5678' AS REPLACE_BEFORE,
REPLACE(' 010-1234-5678', '-', ' ') AS REPLACE1
FROM DUAL;
결과 : 010 1234 5678 (-가 띄어쓰기로 바뀐다)
LPAD, RPAD(데이터의 빈 공간을 특정 문자로 채우는 함수)
- LPAD, RPAD는 각각 Left Padding(왼쪽 패딩), Right Padding(오른쪽 패딩)을 의미한다.
- 데이터와 자리수를 지정한 후 데이터 길이가 지정한 자릿수보다 작을 경우에 나머지 공간을 특정 문자로 채우는 함수이다.
LPAD ([문자열 데이터 또는 열이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택])
RPAD ([문자열 데이터 또는 열이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택])
SELECT 'ORACLE',
LPAD('ORACLE', 10, '*') AS LPAD1,
RPAD('ORACLE', 10, '*') AS RPAD1
FROM DUAL;
결과값 : **** ORACLE(LPAD), ORACLE****(RPAD)
CONCAT(두 문자열 데이터를 합치는 함수)
- 두 개의 문자열 데이터를 하나의 데이터로 연결해주는 역할을 한다.- 두개의 입력 데이터 지정을 하고 열이나 문자열 데이터 모두 지정할 수 있따.- 함수 대신 || 연산자를 사용할수도있따.
SELECT CONCAT (EMPNO, ENAME),
CONCAT (EMPNO, CONCAT(' : ' , ENAME))
FROM EMP
WHER ENAME = 'SCOTT';
CONCAT (EMPNO, ENAME) 결과 : 7788SCOTT
CONCAT (EMPNO, CONCAT(' : ' , ENAME)) 결과 : 7788 : SCOTT
SELECT EMPNO || ENAME,
EMPNO || ' : ' || ENAME,
FROM EMP;
MPNO || ENAME 결과 : 7788SCOTT
MPNO || ' : ' ||ENAME 결과 : 7788 : SCOTT
'국비교육' 카테고리의 다른 글
| 국비지원교육 44일차(9주차&DB) (0) | 2024.01.15 |
|---|---|
| 국비지원교육 43일차(9주차&DB) (0) | 2024.01.12 |
| 국비지원교육 41일차(9주차&DB) (0) | 2024.01.10 |
| 국비지원교육 40일차(8주차) (0) | 2024.01.09 |
| 국비지원교육 37일차(8주차&java) (0) | 2024.01.04 |
