1. 데이터 출력하기
[전체 출력] SELECT * FROM 테이블명;
[특정 컬럼 데이터 출력] SELECT 컬럼명 FROM 테이블명;
⭐ SELECT 컬럼명 FROM 테이블명;
⭐ ' * ' (아스타): 모든 정보(= all)
⭐ 쿼리문은 대소문자를 구분하지 않는다.
⭐ '문자열 데이터'는 엄격하게 대소문자를 구분한다.
2. 컬럼명에 가명칭(AS/alias/별칭) 부여하기
select empno 사번, ename 이름 from emp; select empno as "사 번", ename as "이 름" from emp;
3. 테이블의 데이터형 체크하기
- 오라클에서는 특정 컬럼에는 특정 형태의 데이터만 담을 수 있다.
⭐ 오라클 데이터형
CHAR(size) : 총길이 2000byte까지 (영문 2000자, 한글1000자까지) - 고정길이 문자열 (VARCHAR를 쓰는 것이 저장용량을 더 절약할 수 있다)
VARCHAR2(size) : 총길이 4000byte까지 (한글은 2000자까지 저장 가능) - 가변길이 문자열 - 오라클에서는 양쪽에 어퍼스트로피를 달아서 표시해야 한다. ('문자')
NUMBER(10): 정수형(int) NUMBER(10,2): 실수형(double) / 10자리숫자, 소수점 2자리
DATE: 날짜 및 시간 데이터형
unicode: 한글, 영문자, 특수문자, 공백 모두 2byte로 설정
NCHAR(size): size만큼의 글자 NVARCHAR2(size): size만큼의 글자
ex) nchar(20) >> 한글,영문자,특수문자,공백 상관없이 20글자
⭐ DESC
- 테이블의 특정 데이터형을 체크할 때 쓰는 키워드
- [DESC 테이블명;] 입력시 해당 테이블의 각 컬럼 데이터형을 알려준다.
⭐ DISTINCT
- [SELECT DISTINCT 컬럼명 FROM 테이블명;]
- 해당 테이블의 해당 컬럼에서 중복값을 제거하고 출력
- distinct의 원리: grouping
- SELECT DISTINCT job, deptno와 같이 여러개 사용 가능
## SELECT 컬럼 FROM 테이블 WHERE 조건;
4. 결합연산자(연결연산자)
⭐ || : 문자열 결합
select '사원의 이름은 ' || ename || '입니다.' as "사원정보" from emp;
- empno(숫자) || ename(문자열)
- 내부적으로 자동 형변환(숫자→문자열)이 일어난 후 결합해준다.
5. 산술연산자
⭐ +, -, *,
- java와 달리 오라클에서는 '정수/정수 = 실수' 이다.
select 100 + 100 from dual;
--데이터 테스트시 이용한다.
select 100 || 100 from dual;
--100100 select '100' + 100 from dual;
--200 (형변환) >> '100' 숫자형 문자(형변환시 숫자가 되는 데이터) select 'A100' + 100 from dual;
-- 에러 >> ORA-01722: invalid number
- 여기서 dual은 임시 테이블(가상)
- 자바에서 사용하던 나머지연산자(%)는 함수 Mod()를 사용해야 한다.
6. 비교연산자
⭐ < > ≤ ≥ 등등..
- = : 완전히 같은 것
- ! = , <> : 완전히 다른 것
7. 논리연산자(AND, OR)
⭐ A AND B : A의 조건과 B의 조건 둘 다 만족하는 것
⭐ A OR B : A와 B의 조건 중 하나라도 만족하는 것
⭐ NOT A : A의 조건과 다른 모든 것
8. IS NULL / IS NOT NULL
⭐ IS NULL : NULL 인 값들만
⭐ IS NOT NULL : NULL이 아닌 값들만
9. NULL과 연산하기
- null과의 모든 연산 결과는 null이다
- 위의 문제를 해결하기 위한 함수
⭐ nvl(컬럼명, 대체값)
: 해당 컬럼명 에서 null을 만나면 대체값으로 치환해서 연산해라.
select 1000 + null from dual;
-- 불가 select 1000 + nvl(null,100) from dual; select comm, nvl(comm,111111) from emp;
10. BETWEEN
⭐ BETWEEN a AND b : a와 b 사이에 있는 범위의 값들
- between의 경우 = 을 포함한다 (즉, 초과나 미만의 경우 between사용 불가)
11. IN
⭐ IN (a,b,c) : a나 b나 c 중에 하나라도 있는 것들만
⭐ NOT IN (a,b) : a또는 b가 아닌 것들만 (= where deptno ≠ 10 and deptno ≠ 20;)
12. LIKE 연산자
- 문자열 검색시 패턴 검색하는 연산자
- 와일드카드 문자 (%: 모든것 / _: 한문자)
where ename like '%A%';
-- ename 컬럼의 데이터가 A를 포함하면 다 출력해줘
--where ename like '%a%';
-- 불가 (패턴검색도 대소문자를 엄격하게 구분한다)
--where ename like 'A%'; -- 이름이 A로 시작하는 모든 사원 출력해줘
--where ename like '%E'; -- 이름이 E로 끝나는 모든 사원 출력해줘
--ex) 역삼이라는 단어가 들어있는 주소를 다 찾아라
--select * --from zip --where dong like '%역삼%'
select * from emp where ename like '%LL%';
--AllEN, MILLER select * from emp where ename like '%A%A%';
--ADAMS (이름에 A가 두개 들어있으면 출력)
select * from emp where ename like '_A%';
--이름의 두번째가 A인 사람을 출력
select * from emp where ename like '__A%';
--이름의 세번째가 A인 사람을 출력
13. UNION(합집합)
- 테이블과 테이블의 데이터를 합치는 것 (중복값 배제)
- UNION ALL : 중복값 허용
- 대응되는 컬럼의 타입이 동일해야 한다.
- 대응되는 컬럼의 개수가 동일해야 한다. (컬럼의 개수가 다르면 null을 이용해서 방지해줄 수 있다)
'Back > DATABASE' 카테고리의 다른 글
Oracle / Inner, Outer Join (0) | 2021.08.18 |
---|---|
오라클 기본(2) (0) | 2021.07.27 |