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 학원 강의 ]


1. 데이터베이스의 정의와 특징

✔️ 데이터베이스를 ‘데이터의 집합’이라고 정의한다면 DBMS는 이 데이터베이스를 관리·운영하는 역할을 한다.

✔️ 데이터베이스는 여러 명의 사용자나 응용 프로그램을 공유하고 동시에 접근이 가능해야 한다. 그래서 Microsoft의 Excel과 같은 프로그램은 데이터의 집합으로 사용될 수 있기 때문에 DBMS와 비슷하게 보일 수도 있지만, 대용량을 관리하거나 여러 명의 사용자가 공유하는 개념은 아니므로 DBMS라 부르지 않는다.

✔️ 데이터베이스는 ‘데이터의 저장공간’ 자체를 의미하기도 한다. 특히, MySQL에서는 ‘데이터베이스’를 자료가 저장되는 디스크 공간(주로 파일로 구성됨)으로 취급한다.

 


2. DBMS 란?

✔️ 파일시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해서 사용되기 시작한 것이 DBMS (DataBase Management System)

✔️ DBMS는 데이터의 집합인 ‘데이터베이스’를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어를 말한다.

✔️ DBMS에 데이터를 구축하고 관리하고 활용하기 위해서 사용되는 언어가 SQL Structured Query Language 이다.

-> 이 SQL을 사용해서 우리가 DBMS를 통해 중요한 정보들을 입력하고 관리하고 추출할 수 있다.

(1) 관계형 데이터베이스 Relational DBMS: RDBMS

· 시초는 1969년 E.F.Codd라는 학자가 수학 모델에 근거해서 고안하면서 시작되었다.

  RDBMS의 핵심 개념은 “데이터베이스는 테이블 Table 이라 불리는 최소 단위로 구성되어 있다."

· 테이블은 데이터를 효율적으로 저장하기 위한 구조이다. 정보를 저장하기 위해서 하나의 테이블이 아닌 여러 개의 테이블로 나누어서 저장함으로써 불필요한 공간의 낭비를 줄이고 데이터 저장의 효율성을 보장해 줄 수 있다.

 

아이디
이름
주소
abc123
한가인
서울 은평구 00동
def456
김태희
인천 남구 00동
ghi789
송혜교
경기도 부천시 00동

 

[ 4행(로우) 3열(컬럼) 관계형 구조 ]

 


3. SQL 이란?

✔️ 관계형 데이터베이스에서 사용되는 언어

✔️ DBMS 제작회사와 독립적이며 다른 시스템으로 이식성이 좋다. 대화식 언어로 구성되어 있고 분산형 클라이언트/서버 구조.

(1) MySQL

· Oracle 사에서 제작한 DBMS 소프트웨어로 오픈 소스로 제공된다. 오픈소스란 말그대로 소스를 공개한 소프트웨어를 말한다.

· 상용 목적의 Standard/Enterprise/Cluster CGE, 무료 에디션인 Community 를 제공한다.

 

( 내용 출처 : 이것이 MySQL이다. )

+ Recent posts