목록SQL/Oracle (11)
NULL
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/n27nq/btrv4I99PK6/jkbRCLi3TCdG91evPsHIY0/img.png)
LENGTH 함수 특정 문자열 길이를 구할때 사용한다. 다음과 같이 값이 몇글자인지 출력 할 수 있다. WHERE를 활용해서 사용할 수 있다. LENGTHB 함수 LENGTHB함수는 LENGTH함수와 사용 방식은 동일하지만 길이가 아닌 바이트 수를 반환한다. 다음과 같이 LENGTH('한글')은 2, LENGTHB('한글')은 문자열 바이트 수 반환이므로 6이 출력되는 것을 확인할 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JTdap/btrv5nc9lKY/T3pgfEk5VJIdO045QZYS50/img.png)
문자 힘수는 문자 데이터를 가공하거나 문자 데이터로부터 특정 결과를 얻기위해 사용하는 함수이다. 실무에서 자주 사용하는 데이터는 숫자, 문자, 날짜 데이터이다. 함수 설명 UPPER(문자열) 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환 LOWER(문자열) 괄호 안 문자 데이터를 모두 소문자로 변환하여 변환 INITCAP(문자열) 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 실습을 통해 알아보도록 하겠다. UPPER, LOWER, INITCAP 함수를 사용하려면 입력데이터에 열이름이나 데이터를 직접 지정해야한다. 사용목적 WHERE절을 다룰 때 SQL문 대소문자 상관없이 사용가능하지만 문자열 데이터는 대소문자를 구별하기때문에 사용에 주의가 필요하다. 예를 들면..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Fz10X/btrv4k7J5V2/DpR16RiBBw91MNIO5huMgK/img.png)
집합 연산자 UNION SELECT문을 통해 데이터 조회결과를 하나의 집합과 같이 다룰 수 있는 집합 연산자이다. 2개 이상의 SELECT문의 결과 값을 연결 할때 쓴다. 두 SELECT문 사이에 사용된 UNION 연산자가 바로 집합 연산자이다. 이 연산자는 합집합을 의미하는 연산자이다. 위에 코드를 보면 10번 부서 사원과 20번 부서 사원의 정보가 합쳐져서 출력되었다. 주의할 점 집합연산자로 두 개의 SELECT문의 결과 값을 연결 할 때 각 SELECT문이 출력하려는 열 개수와 각 열의 자료형이 순서별로 일치해야 한다. 만약 연결하려는 두 SELECT문의 열 개수와 자료형이 같다면 서로 다른 테이블에서 조회하거나 조회하는 열 이름이 다른것은 문제가 되지 않는다. 다만 이상해 보이는 결과가 나오겠지만..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bFwbtQ/btrvSe11nmy/PqE61kgNeMkEH8OJYDmKgK/img.png)
IS NULL을 하기전 NULL을 먼저 살펴보겠다. NULL은 중요한 의미가 있는 특수한 데이터 형식이다. SAL열에 12를 곱하고 추가 수당 열 값을 더한 결과는 나오는 경우도 있고 아닌 경우도 있다. 결과가 나오지 않는 현상은 연산에 사용한 추가 수당 열 값이 비어 있는 행에서만 나타난다. 위와 같이 NULL은 데이터 값이 완전히 비어있는 상태를 말한다. 숫자 0은 값이 존재한다는 뜻이므로 혼동하지 않도록 주의해야한다. 의미 예시 값이 존재하지 않음 통장을 개설한 적 없는 은행 고객의 계좌번호 해당 사항 없음 미혼인 고객의 결혼기념일 노출할 수 없는 값 고객 비번찾기같은 열람제한하는 특정 개인정보 확정되지 않은 값 미성년자의 출신 대학 따라서 NULL은 "값 자체가 존재 하지 않는 상태" 이거나 "현..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YSWyN/btrvwjBNEwp/TolC2qZpGiXIqNEQMvACzK/img.png)
LIKE 연산자 LIKE 연산자는 이메일, 게시판, 제목 또는 내용 검색기능처럼 일부 문자열이 포함된 데이터를 조회할 때 사용한다. 와일드카드 조건식에서 _ 또는 % 를 와일드카드라고 한다. 와일드 카드는 특수 문자 또는 문자열을 대체하거나 문자열 데이터의 패턴을 표기하는 특수문자이다. LIKE와 같이 쓸 수 있는 와일드카드는 _와 %이다. 종류 의미 _ 어떤 값이든 상관없이 한 개의 문자 데이터를 의미 % 길이와 상관없이(문자 없는 경우 포함) 모든 문자 데이터를 의미 위와 같이 조건식안의 와일드카드 %S%는 앞뒤 상관없이 문자열안에 S가 포함된 문자열 데이터를 출력한다. 조건식이 S%라면 S로 시작하는 문자열 데이터를 출력하고 %S라면 S로 끝나는 문자열 데이터를 출력한다. ESCAPE 만약 _나 %..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzeUHA/btrvvbYzfYm/YMCmbn1wh8XuL8cML3iCk1/img.png)
만약 급여 열 값이 2000 이상 3000이하, 즉 급여가 2000~3000인 사원 데이터를 조회해야한다면 AND 연산자를 사용해서 다음과 같이 SELECT문을 만들 수 있다. 위와 같이 최소 ~ 최대 범위를 지정하여 범위 내의 데이터만 조회 할 경우 대소 비교 연산자 대신 BETWEEN A AND B 연산자를 사용하면 더 간단하게 가능하다. 위와 같이 더 간결하게 코드 작성이 가능하며 BETWEEN앞에 NOT을 붙이면 2000 ~ 3000 이외 값들이 조회된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b13PWB/btrvwh42UxY/YLkvSqS682QWTDtaUQhXW1/img.png)
아래 두 코드는 결과물이 같다. 위 사진과 같이 출력하고 싶은 열의 조건이 여러 개 일 때 OR연산자로 여러 조건식을 묶는 것도 방법이지만, 조건이 늘어날수록 많은 조건식을 사용해야되서 번거롭다. JOB열 값이 MANAGER, SALESMAN, CLERK 중 하나라면 모두 조회한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bubDFo/btrvuOvFtXU/0QQ8jiL6cCH6MZkgXwuyhK/img.png)
WHERE절 조회할 행을 선별하기 위한 조건식이다. 기본형식은 다음과 같다. 조회할 열과 테이블을 작성한 뒤 조회할 행을 선별하는 조건식을 작성한다. 위에 사진은 사원번호가 7782인 사원정보만 조회하는 코드이다. WHERE절은 여러 개 조건식과 논리연산자(AND, OR) 등등 사용가능하다. EMP테이블에 DEPTNO열은 30이면서 JOB열은 문자 SALESMAN인 행을 조회하는 코드다. 여기서 ''안의 값은 대소문자를 구별하며 공백도 인식한다. 여러 개의 조건식을 쓰는데 갯수제한은 없다. 사원이름의 첫 문자가 F와 같거나 뒤쪽인 것만 검색한다. FORD 맨 끝 글자 D가 Z보다 앞에 있어서 조건을 만족한다. 위에 문자열 대소 비교 연산자는 알파벳순서로 앞에 있는 행을 출력하라는 것을 의미한다. 등가 비..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r74tG/btrveLsCaHb/kYnlqbfbv2AK7tvH2Er2yk/img.png)
ORDER BY ORDER BY절은 SELECT문 작성할 때 맨 마지막 부분에 쓴다. 출력 데이터를 오름차순(ASC), 내림차순(DESC) 정렬할 때 사용한다. 키워드 필수 요소 선택요소 설명 ORDER BY 정렬하려는 열 이름을 하나 이상 지정 정렬하는 열마다 오름차순(ASC), 내림차순(DESC) 지정 ORDER BY를 지정한 열은 우선 정렬되고 만약 정렬 옵션을 지정하지 않는다면 기본값으로 오름차순(ASC)로 설정된다. 오름차순(ASC) 오름차순은 옵션을 지정하지않아도 기본값으로 들어간다. 내림차순(DESC) 각각의 열에 내림차순과 오름차순 동시에 사용하기 ORDER BY절 첫번째로 명시된 DEPTNO열을 기준으로 오름차순 정렬 후 두번째로 명시된 SAL열 내림차순으로 정렬합니다. 문제 1 부서번호..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkXp8z/btrvgmznoje/SWlAL7mtr8rMReSTV9R9A1/img.png)
열과 연산식 SAL 열은 EMP 테이블의 급여, COMM 열은 추가 수당이다. 즉, 연산식 SAL*12*COMM는 급여에 12를 곱하고 급여 외 추가 수당을 더한 값을 출력한다. AS 별칭 지정 방식 오라클에서는 별칭지정방식 총 4가지가 존재한다. 하나를 선택하여 SELECT절에서 사용한다. ( 위에 SAL*12*COMM 연산식을 예시로 들겠다. ) SAL*12*COMM 지정하고 싶은 별칭 한 칸 띄우고 별칭지정 SAL*12*COMM "지정하고 싶은 별칭" 한 칸 띄우고 별칭을 큰따옴표("")로 묶어 지정 SAL*12*COMM AS 지정하고 싶은 별칭 한 칸 띄운 후 'AS', 한칸 뒤에 별칭 지정 SAL*12*COMM AS "지정하고 싶은 별칭" 한 칸 띄운 후 'AS', 한칸 뒤에 별칭을 큰따옴표("..