1. 기본 형식

💡 SELECT테이블의 데이터를 읽어 출력하는 동작으로 조회라고 함.

    ➡️  테이블을 조회하는 것은 가장 기본적인 동작이며 SELECT 문은 모든 SQL 명령중 사용 빈도가 압도적으로 높음.

    ➡️  테이블을 읽은 동작은 단순하지만 옵션이 굉장히 많음.

       ex. 관심있는 필드만 읽거나 조건을 지정하여 일부 레코드만 조회하거나 정렬 기준을 지정하여 출력 순서를 조정할 수 있음.

// 기본 형식
SELECT 필드목록 FROM 테이블 [WHERE 조건 ] [ORDER BY 정렬기준]
SELECT * FROM tCity;

 

 

 🔎  FROM 절의 테이블에서 필드를 읽어 출력하는 명령.

 🔎  SELECT와 FROM 사이에 필드목록에 출력할 필드의 이름을 지정하되 

       * 기호를 쓰면 테이블의 모든 필드를 출력.

 

 

 


 

2. 필드목록

💡 필드목록의 *는 모든 필드를 의미하며 All 또는 몽땅이라고 읽음.

      ➡️ 표기법이 짧아 입력하기 편하고 필드 이름을 몰라도 되므로 테이블을 살펴볼 때 간편하다.

💡 일부 필드만 출력하거나 순서를 직접 지정할 때는 SELECT 와 FROM 사이에 원하는 필드만 콤마로 구분하여 적는다.

      ➡️ 목록에 있는 필드만 읽으니 빠르고 출력 결과도 짧음.

SELECT name, area, popu FROM tCity;
SELECT region, name, popu FROM tCity;

   

    ✔️ 도시명과 인구수에만 관심이 있다면 name 필드와 popu 필드만 목록에 적음.

    ✔️ 두번째 쿼리문은 지역과 도시명, 인구수를 출력하는데 필드 순서를 마음대로 지정 가능.

           ➡️  테이블에는 region 필드가 name 필드보다 뒤에 있지만 필드 목록에 지정한 순서대로 출력.

 

  🌟 두 명령의 차이점

SELECT name, area, popu, metro, region FROM tCity;
SELECT * FROM tCity;

   

    ✔️ tCity의 모든 필드를 일일이 적거나 * 로 모든 필드를 지정하지만 결과는 같음.

          ➡️  하지만 테이블의 디자인이 바뀌게 되면 결과 값이 달라짐.

    ✔️ 단순 확인을 할 때는 *를 사용해도 되지만 실무에서는 가급적 필드의 이름과 순서를 명확히 지정하는 것이 유리.


3. 별명

 

💡 SELECT 명령이 출력하는 내용을 결과셋 Result Set 또는 로우셋 Row Set 이라고 하는데 형태가 테이블과 동일.

     - 결과셋의 필드 캡션은 테이블에서 정의한 이름과 동일.

        ex. name 필드는 name이라고 출력하고, popu는 popu라고출력.

💡 테이블의 필드명은 구분 가능하고 입력하기 쉬운 짧은 명칭일 뿐, 사용자가 읽기에는 직관적이지 못한 경우가 많음.

      ➡️  이 경우 필드에 대한 별명 Alias를 지정하며 결과셋의 헤더에 필드 이름 대신 별명을 출력.

      ➡️  별명은 어디까지나 문자열일 뿐이므로 명칭 규칙에 영향을 받지 않고 모든 문자를 자유롭게 표기할수 있음.

필드명 [AS] "별명"

 

💡 필드명과 별명 사이에 전치사 AS를 넣어서 표현.

      ➡️  이 때 별명은 공백이나 특수 문자를 포함할 수 있어서 큰 따옴표로 감싸되 평이한 단어이면 따옴표 생략 가능.

SELECT name AS 도시명, area AS "면적(제곱Km)", popu AS "인구(만명)" FROM tCity;

실행 결과

 

💡 별명을 사용하는 다른 이유로는 언어에 따라 명칭을 구성하는 규칙이 달라 특수한 이름을 읽지 못하는 경우가 있고, DBMS별로 키워드가 달라 필드명으로 쓰지 못하는 단어 있음. 이런 경우 결과셋에 별명을 붙이면 개발툴이나 DBMD에 상관없이 일관된 별명으로 필드를 읽을 수 있음.

💡 DBMS에 따라 큰 따옴표만 사용가능하거나, 작은 따옴표도 사용 가능한 경우가 있음.

💡 SQL Server는 다음 구문도 가능

 

SELECT 도시명 = name, area '면적(제곱Km)', popu [인구(만명)] FROM tCity;

 


 

4. 계산값의 출력

💡 필드목록에 필드 이름을 적으면 필드 값이 그대로 출력.

     ex. SELECT popu라고 하면 테이블의 인구수를 출력.

            ➡️  하지만 popu 필드의 단위가 만명으로 되어 있어서 헷갈릴 수 있다!

💡 필드 목록에 계산식을 사용하면 테이블에 저장된 값을 가공하여 출력 된다.

 

SELECT name, popu * 10000 AS "인구(명)" FROM tCity;

실행 결과

 

    🔎 테이블에는 요약적으로 압축하여 저장하기 때문에 실제 정보와 다른 경우가 있음.

         이럴때는 계산식으로 사용자가 읽기 쉬운 형태로 가공해서 보여주는게 바람직.

    🔎 계산식을 사용하면 테이블에 없는 정보도 만들어서 표시할 수 있다.

 

SELECT name, area, popu, popu * 10000 / area FROM tCity;
SELECT name, area, popu, popu * 10000 / area AS "인구밀도" FROM tCity;

실행 결과

 

    ✔️ tCity 테이블에는 도시의 면적과 인구수 정보가 있는데 이 둘을 계산하면 제곱킬로미터당 인구수인 인구밀도를 구할 수 있음.

    ✔️ 계산에 의해 구한 필드는 이름이 없으므로 설명적인 별명을 붙이는 것이 좋음.

    ✔️ 꼭 테이블에 있는 필드만 출력할 수 있는게 아니라, 테이블과 상관없는 단순한 계산식도 출력 가능.

 

SELECT 60 * 60 * 24 AS "하루" FROM dual;

 

실행 결과

 

    ✔️ SELECT 수식 FROM dual; 명령은 간단한 계산기 역할.

    ✔️ dual 은 1행 1열짜리 더미 테이블.

 

[ 내용 출처 ; IT 학원 강의 ]

+ Recent posts