SELECT
테이블 내의 원하는 정보를 추출하는 명령어
형식
select 컬럼명 from 테이블 이름 where 조건
테이블 검색하기
1 | SELECT * FROM emp; | cs |
EMP라는 테이블의 데이터가 나오는 것을 볼 수있습니다.
쿼리문에서 * 의 뜻은 모든 컬럼을 의미하는 것 입니다.
그러면 테이블 안에서 empno와 ename 의 데이터만 검색해보겠습니다.
1 | select empno,ename from emp; | cs |
empno와 ename의 내용만 나오는 것을 확인할 수 있습니다.
다음은 where 문까지 사용하여 empno가 7777인 행만 검색 해보겠습니다.
1 | select * from emp where empno=7777; | cs |
empno가 7777인 행만 나오는 것을 확인할 수 있습니다.
만약 where 문을 두개 쓰고싶으면 관계연산자(and, or, not )를 쓰고 조건문을 또 써주시면 됩니다.!
BETWEEN
형식
SELECT * FROM 테이블명 WHERE 컬럼명BETWEEN 값 AND 값;
1 | select * from emp where empno>=7787 and empno <=7888; |
1 | select * from emp where empno between 7787 and 7888; | cs |
두개의 쿼리문을 다 사용해 봅시다. 결과가 같은것을 볼 수 있습니다.
보이는 것과 같이 BETWEEN 은 ~이상 ~이하의 값을 조회한다.
여기서 empno는 연속적인 값을 가지는 숫자이다. between은 연속적인 값 밖에 조회하지 못한다.
그럼 연속적인 값이 아닌 이산적인 값을 위해서는 무었을 써야할까?
IN
형식
SELECT * FROM 테이블명 WHERE 컬럼명 IN('데이터','데이터'....);
1 | select * from emp where job in ('CLARK','MANAGER'); | cs |
1 | select * from emp where job='CLARK'or job='MANAGER'; | cs |
이 두개의 쿼리문 역시 사용하면 똑같이 나오는 것을 볼 수 있습니다.
숫자가 아닌 문자일 경우 연속된 값이 아니기 때문에 between 을 사용하지 못하지만
in 을 사용하게되면 좀더 간단하게 찾을 수 있다.
LIKE
형식
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '문자%';
이번에는 문자열 내용을 검색해 볼꺼다.
1 | select * from emp where ename like 'A%'; | cs |
위의 조건은 이름의 맨 앞 글자가 'A'이고, %는 뒤에는 어떤 문자가 있어도 상관이 없다는 말이다.
ORDER BY
형식
SELECT * FROM 테이블 명 ORDER BY 컬럼명 ASCorDESC;
결과물에 영향을 미치지는 않지만 결과가 출력되는 순서를 조절하는 구문이다.
1 | select * from emp order by empno; | cs |
보이는 것과 같이 empno를 중심으로 오름차순으로 정렬된 것을 볼수있다.
order by에는 asc(오름차순), desc(내림차순) 가있는데 기본적으로 오름차순으로 정렬이된다.
DISTINCT
형식
SELECT DISTINCT 컬럼명 FROM 테이블 명 ;
중복된 것을 하나만 남기는 명령어입니다.
1 | select distinct job from emp; | cs |
보이는 것 처럼 중복되는 직업을 제외하고 나타내었
'DataBase' 카테고리의 다른 글
[Oracle]집계함수 (0) | 2018.11.12 |
---|---|
[Oracle]GROUP BY 이해하기 (0) | 2018.11.11 |
[oracle]데이터 사전 (2) | 2018.11.07 |
[oracle]테이블의 모든 데이터를 제거하는 TRUNCATE TABLE (0) | 2018.11.07 |
[oracle]테이블 구조를 제거하는 DROP TABLE (0) | 2018.11.07 |