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;

cs


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


보이는 것 처럼 중복되는 직업을 제외하고 나타내었



+ Recent posts