데이터베이스 - describe, select 기초

데이터가져오기

본격적으로 데이터베이스에서 데이터들을 가져와보도록 하겠다.

우리가 지난 포스팅에서 Bonus, Dept, Emp 테이블이 있음을 확인했었다. emp 테이블의 항목들을 한번 가져오도록 해보겠다.


- Describe

우리가 원하는 테이블에서 데이터를 가져오기 위해서는 해당 테이블의 정보를 알고 있어야 한다. 이를 위해서 describe명령어를 사용해보겠다.

참고로 describe는 desc로 줄여 사용할 수 있다.




emp 테이블은 다음의 8가지 속성을 가지고 있다. 그리고 각 속성에 대한 자료형과 널?이라는 것을 확인할 수 있는데, 널? 칼럼은 해당 속성이 null값을 가질 수 있는가를 표시한다고 알고 넘어가보도록 하곘다. 추후에 null에 대해서 더 다루도록 하겠다.


- Select


데이터베이스에서 자료를 가져올 때 우리가 가장 많이 사용하게 될 sql문은 select문일 것이다. 데이터베이스 서버에서 원하는 자료를 선택한다는 의미이다.

한번 간단하게 이를 사용해보자.


일단 부서(dept) 테이블 전체 데이터를 한번 불러오도록 해보겠다. *를 사용하면 전체를 대상으로 한다.

부서 테이블에 저장된 종류를 살펴볼 수 있다. 부서번호(deptno), 부서이름(dname), 위치(Loc) 정보를 가지고 있다.

이번엔 부서테이블에서 부서번호와 이름을 가져와보자.

이를 위해서 select 명령어 다음에 원하는 칼럼의 이름을 선언한다. 그리고 from을 통해서 어떤 테이블로부터 데이터를 가져올지 설정한다. 이는 가장 기본적인 select문이기 때문에 꼭 외워두도록 하자.

그리고 우리가 가져오는 데이터에서 칼럼의 순서는 얼마든지 변경 가능하다. 부서이름과 번호를 바꿔서 가져와보겠다.


이번엔 emp 테이블에서도 간단하게 데이터를 불러오도록 해보겠다. 우리가 필요한 것은 사원번호, 사원이름, 그리고 월급 데이터이다.


- select ~ as


근데 사실 empno, ename, sal이라는 것을 데이터베이스를 처음 보는 사람은 이해하기 힘들 수도 있다. 따라서 이를 우리가 임의로 정하여 표현할 수 있다. 이를 위해서 as라는 표현을 사용한다. 이 때 as를 arias라고 부르기도 한다.


as의 경우에는 사용하는 일이 빈번하기 때문에 이를 생략하는 것도 가능하다.


이 때 조심할 부분이 있다. sql은 공백을 기준으로 명령어들을 파악하기 때문에 아래 예문 처럼 select문을 호출한다면 오류가 발생한다.



이를 해결하기 위해서는 “”를 사용하여 우리가 attribute의 이름으로 정해줄 부분들을 묶어줄 필요가 있다.


우리가 원하는 대로 공백이 포함된 상태로 출력되고 있다.

이번 포스팅에서는 select문의 기본적인 문법을 통해서 데이터를 어떻게 가져오는지 살펴보았다. 다음 포스팅에서는 자료형과 연산에 대해 더 다뤄보고 이를 select문을 통해서 실행해보도록 하겠다.

댓글

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 변수선언

데이터베이스 PL/SQL 제어문 - 반복문