본문 바로가기
데이터베이스

1. SELECT 명령어

by 김마리님 2020. 3. 19.

데이터 질의 언어인 SELECT 명령어가 있다.

*오라클의 주석은 -- 으로 쓴다.

 

가장 기본이 되는 SELECT의 명령어는

 

SELECT[컬럼명 or 표현식] FROM[테이블명]; 이다.

 

 

1. 원하는 컬럼만 출력하기

SELECT EMPNO, ENAME, SAL
FROM EMP;

다음과 같이 컬럼 EMPNO, ENAME, SAL만 출력된다.

 

 

2. 테이블 전체를 보는 명령어

만일 테이블 전체를 보고 싶다면, *를 사용하면 된다.

SELECT *
FROM EMP;

다음과 같이 테이블 전체를 출력한다.

 

 

3. 중복된 내용을 없애는 명령어

때때로 테이블 내의 데이터는 중복된 값이 있는데, 이를 제거하고 출력할 수도 있다. distinct이다.

SELECT DISTINCT JOB
FROM emp;

 

 

4. WHERE 절

원하는 데이터만 골라 출력하는 경우에 사용하며, WHERE절 뒤에 원하는 조건을 넣어서 만든다.

SELECT * 
FROM EMP 
WHERE SAL=1250;

다음과 같이 WHERE절에서 제시했던 SAL=1250 만 도출되었다.

 

물론 숫자뿐만 아니라 문자열도 조건으로 선택 가능하다.

문자열을 사용할 때 조심할 점이 있다. 문자열은 ' '(홑따옴표)로 묶어야 한다.

SELECT *
FROM EMP
WHERE JOB='SALESMAN';

조건을 여러개 설정하는 것도 가능하다. ,(콤마)를 이용해 연결할 수 있다.

 

 

또한 다양한 연산자를 이용해서 조건을 설정하는 것도 가능한데,

일단, 타 언어에서 사용하던 다양한 사칙연산 언어가 적용이 된다.

!= 같지 않음(부정)
> 큰 조건을 검색
>= 크거나 같은 조건을 검색
< 작은 조건을 검색
<= 작거나 같은 조건을 검색.

논리연산 역시 가능하다.

타 언어와 다른 점은, 기호를 사용하는 것이 아니라 영어 그대로 사용한다는 점이다.

A and B = 직렬. A, B 둘 중 하나라도 되지 않으면 성립하지 않음.

A or B = 병렬. A,B 둘 중 하나라도 충족하면 성립.

 

1)and 연산자

SELECT *
FROM EMP
WHERE SAL=1250 AND COMM>1000;

다음과 같이 두 조건을 함께 충족하는 값을 찾아 출력한다.

 

물론, 문자열 조건, 숫자열 조건 섞어쓰는 것도 가능하다.

SELECT *
FROM EMP
WHERE JOB='SALESMAN' AND DEPTNO=30;

 

2) or 연산자

SELECT *
FROM STUDENT
WHERE GRADE=2 OR GRADE=3;

다음과 같이 grade가 3인 함수와 2인 함수가 동시에 나오는 것을 확인할 수 있다.

 

3) in 연산자

in()은 괄호 내의 조건이 일치하는 것을 찾는다, 내부의 조건은 or 연산자로 작동한다.

SELECT *
FROM EMP
WHERE JOB IN ('SALESMAN','MANAGER','CLERK'); 

다음과 같이 IN내에 조건 중 하나라도 충족 된다면 다 호출된다.

 

 

 

*DESC (테이블 이름)

다음 명령어는 테이블의 스키마를 보게 해준다. 이 때 스키마는 테이블에 대한 설명을 일컫는다.

DESC emp;

 

*AS(컬럼의 별칭)

컬럼에는 다른 별칭을 붙일 수도 있다.

SELECT DISTINCT DEPTNO
FROM EMP;

as를 붙이지 않은 컬럼은 다음과 같다.

이제, 컬럼의 별칭을 AS를 통해 붙여보자

SELECT DISTINCT DEPTNO AS 부서번호
FROM EMP;

다음과 같이 "부서번호" 로 변하는 것을 볼 수 있다.

 

AS는 생략해도 되는 명령어이지만, 만일 별칭에 공백(ex. 부서 번호)이 생길경우 " "(겹따옴표)를 이용해서 묶어주어야 한다.

 

 

*dual

테이블에 가상의 테이블을 만드는 명령어이다.

SELECT REPLACE('ABC','AB','F')
FROM DUAL;

dual은 테이블에 현재 값이 없어도 가상의 테이블을 만들어 값을 만들어낼 수 있다.

 

반응형