본문 바로가기
IT정보

SQL 기본 문법

by 디노프랭키 2023. 4. 20.
728x90

ORACLE SQL기본문법에 대해 알아보겠습니다.

SELECT 문과 기본 구문

ORACLE에서 가장 많이 사용하고 제일 기본적인 문법이 SELECT문입니다. 데이터를 검색할 때 사용하며 다양한 조건으로 데이터를 필터링하고 조회하는 데 사용합니다. SELECT문은 크게 SELECT, FROM, WHERE 3개의 구문으로 나뉠 수 있습니다. 아래는 SELECT문 기본 문법입니다.

SELECT 칼럼1, 칼럼2 ....
  FROM 테이블명
 WHERE 조건내용;

SELECT문, 3개의 구문만으로도 우리가 사람이랑 대화를 하는 것처럼 데이터베이스와 소통이 가능합니다. 예를 들어 보겠습니다. "고객정보에서 이름이 홍길동인 사람의 급여와 나이를 보고 싶어"라고 SELECT문을 작성해 보겠습니다.

SELECT SALARY, AGE
  FROM CUSTOMER
 WHERE CUST_NAME = '홍길동'

이와 같이 SELECT는 데이터베이스에서 검색할 대상에 대한 열을 나열합니다. 만약 CUSTOMER테이블의 모든 칼럼에 대한 정보를 보고 싶으면 *를 입력하면 됩니다. FROM은 검색할 대상(TABLE)입니다. WHERE은 검색 결과를 필터링하기 위해 조건을 지정합니다. SELECT문을 작성할 때 좋은 순서는 첫 번째로 FROM절은 검색할 대상 범위를 지정합니다. 두 번째로 WHERE절은 대상에서 제외하거나 찾고 싶은 조건을 지정합니다. 세 번째로 SELECT절은 검색할 열을 나열합니다.

-- 이름이 홍길동인 사람의 모든 정보를 보는 SELECT문 입니다.
SELECT *
  FROM CUSTOMER
 WHERE CUST_NAME = '홍길동'

SELECT문에서 SELECT, FROM은 필수로 지정이 되어야 하지만 조건절인 WHERE은 생략이 가능합니다. WHERE절을 생략하게 되면 FROM절의 대상(TABLE) 전체의 정보를 가져오게 됩니다. 경우에 따라 WHERE절을 생략하고 조회해야 하는 경우도 있지만 TABLE의 데이터가 많은 경우 서버의 부하를 많이 주게 되므로 가급적 WHERE절은 정의하는 것을 권고합니다. 참고로 WHERE 절에 조건을 "WHERE 1=1"로 지정하게 되면 무조건 참(TURE)이므로 조건절을 지정하지 않은 것과 같습니다.

-- 두개의 SELECT쿼리는 동일한 결과를 나타냅니다.
SELECT *
  FROM CUSTOMER
 WHERE 1=1;

SELECT *
  FROM CUSTOMER;

WHERE 절과 연산자

WHERE절은 SQL에서 기본적으로 가장 많이 사용하는 구문이며 조건에 맞는 행을 찾거나 필요 없는 데이터를 제외시킬 때 사용합니다. WHERE절에는 아주 다양한 연산자를 통해 조건절을 지정하고 데이터를 제어할 수 있습니다. 비교연산자, 논리연산자, IN연산자, LIKE연산자, BETWEEN연산자, IS NULL연산자 등이 있으며 이런 연산자들을 여러 가지 형태로 결합하여 복잡한 조건을 만들어 사용할 수 있습니다. 연산자는 설명할 내용이 많은 관계로 "데이터 검색과 필터링"이란 주제로 다음 포스팅에서 따로 다룰 예정입니다. 많은 관심 바랍니다.

ORDER BY 절과 정렬

ORDER BY절은 SQL에서 데이터를 정렬하는 데 사용을 합니다. EXCEL을 많이 사용해 보신 분들은 EXCEL의 정렬기능과 거의 흡사하다고 보시면 될 것 같습니다. SELECT문으로 데이터를 조회했을 때 데이터 양이 작거나 정렬이 크게 필요 없는 데이터는 그냥 조회해서 데이터를 보면 되지만 특정기준, 조직별 트리기준으로 데이터를 봐야 한다거나 등록된 날짜가 최신 데이터부터 보길 원한다거나 경우에 따라선 데이터 추출 시에 조건에 부합하는 데이터를 만들기 위해 ORDER BY절을 사용하기도 합니다. ORDER BY절은 독립적으로 사용할 수 없으며 꼭 SELECT문과 함께 사용되어야 합니다. ORDER BY절로 정렬을 할 때 특정 열별로 ASC(오름차순), DESC(내림차순)을 지정할 수 있습니다. 다음은 ORDER BY구문 기본문법입니다.

SELECT 칼럼1, 칼럼2 ....
  FROM 테이블명
 WHERE 조건내용
 ORDER BY 컬럼1, 컬럼2 ... ASC/DESC;

ORDER BY는 정렬할 열을 지정하고 해당 열에 ASC(오름차순) 또는 DESC(내림차순)으로 정렬을 합니다. ASC/DESC를 기입하지 않으면 기본적으로 ASC(오름차순)이 적용됩니다. 다음은 ORDER BY절을 사용하는 예제입니다. 이번엔 제가 데이터베이스에게 "고객정보에서 나이가 30인 사람들의 급여와 나이를 보고 싶어, 데이터는 등록된 일자가 맨 위로 오도록 하고 이름은 가나다순으로 정렬해 줬으면 좋겠어."라고 SELECT문을 작성해 보겠습니다.

SELECT SALARY, AGE
  FROM CUSTOMER
 WHERE AGE = 30
 ORDER BY INSERT_DATE DESC, CUST_NAME ASC

이처럼 조회해야 하는 조건을 잘 생각해서 데이터베이스에게 정확한 SELECT구문을 실행하면 방대한 데이터 중에서 우리가 원하는 데이터를 찾을 수가 있습니다! ORDER BY절도 SELECT절과 함께 SQL사용 시 가장 많이 사용되는 구문 중 하나이며 데이터를 검색하고 정렬하는데 꼭 필요한 구문입니다. 지금까지 데이터베이스 ORACLE에서 가장 기본적인 SELECT문을 살펴봤습니다. SELECT문만 알아도 데이터베이스의 절반은 공부하신 거라 생각됩니다. 그만큼 SELECT문을 잘 쓰는 게 중요하고 데이베이스를 사용함에 있어서 성능에 큰 영향을 끼칩니다. 다음 포스팅에서도 열심히 쉽게 설명하려고 노력해 보겠습니다. 많은 도움 되셨길 바랍니다.

728x90

댓글