Day 52

dokiru·2023년 4월 12일
0

학원

목록 보기
34/51

퀴즈 피드백

  • 작은 홑따옴표 붙이고자 할때 + ||로 값을 연결하려고 할 때 => '''' 붙여준다
SELECT ename || '(' || job || ') , ' || ename || '''' || job || '''' AS "NAME AND JOB"  
FROM emp;

where절

: 조건식을 붙여서 찾고자 할 때

SELECT [열이름 혹은 표현식]
FROM 테이블 이름
WHERE [조건]

ex.

SELECT empno, ename, sal
FROM emp
WHERE sal > 2000;

-비교할때는 "="을 사용, 문자열 작은따옴표로 감싸주기(대소문자 구분함)

SELECT *
FROM emp
WHERE job = 'SALESMAN';

-날짜비교도 가능 (비교연산자로)

SELECT *
FROM emp
WHERE hiredate = '81/02/20';

-다른형식의 날짜도 가능

SELECT *
FROM emp
WHERE hiredate >= '1981-02-20';

-연산자 사용해서 새로운 값 만들어서 출력할 수 O

SELECT empno, ename, sal, sal+100 As SALPlus100, sal*1.05 NextYearSal
FROM emp;
연산자 종류설명
=비교 대상에서 같은 조건을 검색
!= , <>비교 대상에서 같지 않은 조건을 검색
>비교 대상에서 큰 조건을 검색
>=비교 대상에서 크거나 같은 조건을 검색
<비교 대상에서 작은 조건을 검색
<=비교 대상에서 작거나 같은 조건을 검색
BETWEEN a AND bA 이상 B 이하에 있는 범위 값을 모두 검색 (문자나 날짜도 조회 가능)
IN(a,b,c)A 이거나 B 이거나 C 인 조건을 검색
LIKE특정 패턴을 가지고 있는 조건을 검색
IS NULL / IS NOT NULLNull 값을 검색 / Null 이 아닌 값을 검색
A AND BA 조건과 B 조건을 모두 만족하는 값만 검색
A OR BA 조건이나 B 조건 중 한가지라도 만족하는 값을 검색
NOT AA 가 아닌 모든 조건을 검색

LIKE

와일드 카드

  • % : 길이와 상관없이 (문자 없는 경우도 포함) 모든 문자 데이터를 의미
  • _ : 어떤 값이든 상관없이 한 개의 문자 데이터를 의미

IN

  • 나열된 값 안에 포함되는 값을 출력
  • 형식
SELECT 어쩌구
FROM 테이블 이름
WHERE 열이름 IN (값1, 값2, 값3);

조건을 입력받아서 가져오기

: & 기호를 입력하고 임의의 값을 입력해서 사용자에게 값을 입력받아올 수 있음

ORDER BY

  • 형식 (순서에 맞게 써줘야함!)
SELECT 어쩌구
FROM 테이블이름
WHERE 조건
ORDER BY 열1 DESC, 열2 (아무것도 안붙이면 기본값인 ASC)
  • 열1을 내림차순했는데 값이 같으면 그 다음 열2로 오름차순하겠다

집합 연산자

연산자 종류설명
UNION두 집합의 결과를 합쳐서 출력. 중복 값 제거하고 정렬함
UNION ALL두 집합을 결과를 합쳐서 출력. 중복 값 제거 안하고 정렬 안 함
INTERSECT두 집합의 교집합 결과를 출력함. 정렬함
MINUS두 집합의 차집합 결과를 출력함. 정렬함. 쿼리의 순서 중요함
  • 조건
  1. 두 집합에서 불러오고자하는 칼럼의 개수가 동일해야함
  2. 두 집합에서 불러오고자하는 칼럼의 데이터형이 동일해야함
  3. 두 집합의 칼럼명은 달라고 상관없음!

단일행 함수와 복수행 함수

단일행 함수

1. 문자함수

  • 대·소문자로 바꿔주는 함수들
함수설명
UPPER(문자열)괄호 안 문자 데이터를 모두 대문자로 변환하여 반환
LOWER(문자열)괄호 안 문자 데이터를 모두 소문자로 변환하여 반환
INITCAP(문자열)괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환
  • 문자열 길이
함수설명
LENGTH(문자열)입력된 문장의 길이 값
LENGTHB(문자열)입력된 문자열의 길이의 바이트값
  • 문자열 일부 추출
    : 음수 값을 넣으면 뒤에서 부터 찾을 수 있음
    : 형식
SUBSTR(문자열,시작번호,뽑을 길이)
함수설명
SUBSTR주어진 문자에서 특정 문자만 추출
SUBSTRB주어진 문자에서 특정 바이트만 추출

ex.

SELECT SUBSTR('A-B-C-D', -3, 3), SUBSTR('A-B-C-D', 3, 3)
FROM dual;

결과

	SUBSTR('A-B-C-D', -3, 3)	SUBSTR('A-B-C-D', 3, 3)
1	C-D							B-C
  • 문자열 데이터 안에서 특정 문자의 위치를 찾기
함수설명
INSTR주어진 문자에서 특정문자의 위치 추출
INSTRB주어진 문자에서 특정문자의 위치 바이트값 추출

ex. 처음부터 찾으면 뒤에 숫자 생략 가능

SELECT INSTR('A-B-C-D', '-', -1, 3), INSTR('A-B-C-D', '-', -6, 2)
FROM dual;

결과

	INSTR('A-B-C-D', '-', -1, 3) INSTR('A-B-C-D', '-', -6, 2)
1	2							 0
  • 특정 문자를 다른 문자로 교체
함수설명
REPLACE주어진 문자열에서 A 를 B 로 치환함
  • 데이터의 빈 공간을 특정 문자로 채움
함수설명
LPAD주어진 문자열에서 왼쪽으로 특정 문자를 채움
RPAD주어진 문자열에서 오른쪽으로 특정 문자를 채움
  • 두 문자열의 데이터를 합침
함수설명
CONCAT두 문자열을 결합해서 출력. || 연산자와 동일

+ 여러개의 문자열을 결합해서 출력하려면 중첩해서 사용해야함
ex.

SELECT CONCAT(CONCAT('AB', 'CD'), 'EF')
FROM dual;
  • 특정 문자를 지우는 함수
함수설명
LTRIM주어진 문자열에서 왼쪽의 특정문자를 삭제함
RTRIM주어진 문자열에서 오른쪽의 특정문자를 삭제함

dual 테이블

  • 최고 권한 관리자 계정인 sys 소유의 테이블, scott 계정도 사용할 수 있는 더미테이블
  • 특정 연산 또는 함수의 단일 결과만을 확인할 때 사용

ex.

SELECT REPLACE('ABCDEF', 'A', 'Z')
FROM dual;

결과값

	REPLACE('ABCDEF', 'A', 'Z')
1	ZBCDEF

2. 숫자 관련 함수

* 음수값 계산할때 주의!

이름의미
ROUND주어진 숫자를 반올림 한 후 출력함
TRUNC주어진 숫자를 버림 한 후 출력함
MOD주어진 숫자를 나누기 한 후 나머지 값 출력함
CEIL주어진 숫자와 가장 근접한 큰 정수 출력함
FLOOR주어진 숫자와 가장 근접한 작은 정수 출력함
POWER주어진 숫자1의 숫자2 승을 출력함

ex.

SELECT ROUND(197.8, -1), TRUNC(423.33, 1), MOD(9, 3), MOD(9, 2),
CEIL(155.5), CEIL(155.1), FLOOR(155.9), FLOOR(155.4), FLOOR(-123.4)
FROM dual;

결과

+ ROWNUM
: 행의 숫자를 보여주는 열 이름 (존재하진 않는데 기본적으로..)
ex.

SELECT ROWNUM, CEIL(ROWNUM/3) "ROWNUM 팀번호", ENAME
FROM EMP;

결과

profile
안녕하세요!

0개의 댓글