기본 형식
SELECT 필드목록 FROM 테이블 [ WHERE 조건 ][ORDER BY정렬기준 ]
옵션을 생략하면 SELECT 필드목록 FROM 테이블 이 되며 FROM절의 테이블에서 필드를 읽어 출력하는 명령.
SELECT와 FROM 사이에 필드목록에 출력할 필드의 이름을 지정하되 * 기호를 쓰면 테이블의 모든 필드를 출력.
tCity 테이블의 모든 필드를 출력하라는 뜻
도시명과 인구수에만 관심이 있다면 name 필드와 poppu 필드만 목록에 적 음.
두번 째 쿼리문은 지역과 도시명, 인 구수를 출력하는데 필드 순서를 마음 대로 지정 가능.
테이블에는 region 필드가 name 필드 보다 뒤에 있지만 필드 목록에 지정 한 순서대로 출력.
직원 목록에서 소속이나 성별에는 관 심이 있고 오로지 월급만 조사하고 싶다면 name과 salary만 출력.
필드 입력을 직접 입력하는 것은 번 거롭지만 지정한 정보만 볼 수 있음.
두 명령의 차이점
SELECT name, area, popu, metro, region FROM tCity;
SELECT * FROM tCity;
tCity의 모든 필드를 일일이 적거나 * 로 모든 필드를 지정하지만 결과는 같음, 하지만 테이블의 디자인이 바뀌게 되 면 결과 값이 달라짐,
먼저 필드를 추가 되는 경우, 시장의 이름을 mayor 필드에 추가하면 * 로 읽으면 새 필드를 인식 하지만, 필드를 적는 경우에는 따로 추가 해 줘야 함.
필드를 수정하는 경우, popu 필드를 ingu로 바꾸면 * 로 읽을 때는 에러가 없지만 결과셋에서 popu 필드를 읽는 코드는 에러가 남.
필드를 적는 경우에는 읽을 때 에러 가 나서 더 안전함.
단순 확인을 할 때는 * 를 사용해도 되지만 실무에서는 가급적 필드의 이 름과 순서를 명확히 지정하는 것이 유리.
다른 이유로도 별명을 사용하는데, 언어에 따라 명칭을 구성하는 규칙이 달라 특수한 이름을 읽지 못하는 경우가 있고, DBMS별로 키워드가 달라 필드명으로 쓰지 못하는 단어도 있음.
결과셋에 별명을 붙이면 개발툴이나 DBMD에 상관없이 일관된 별명으로 필드를 읽을 수 있음.
DBMS에 따라 큰 따옴표만 사용가능하 거나, 작은 따옴표도 사용 가능한 경 우가 있음.
SQL Server는 다음 구문도 가능.
SELECT 도시명 = name, area '면적 (제곱Km)', popu [인구(만명)] FROM tCity;
이 경우 별명을 붙여 필드의 의미까 지 정확히 기술하는 것이 좋음.
테이블에는 요약적으로 압축하여 저 장하기 때문에 실제 정보와 다른 경 우가 있음, 이럴때는 계산식으로 사용자가 읽기 쉬운 형태로 가공해서 보여주는게 바람직.
계산식을 사용하면 테이블에 없는 정보도 만들어서 표시할 수 있음.
tCity 테이블에는 도시의 면적과 인구수 정보가 있는데 이 둘을 계산하면 제곱킬로미터당 인구수인 인구밀도 를 구할 수 있음.
계산에 의해 구한 필드는 이름이 없으므로 설명적인 별명을 붙이는 것이 좋음.
꼭 테이블에 있는 필드만 출력할 수 있는게 아니라, 테이블과 상관없는 단 순한 계산식도 출력 가능.
하루가 몇초인지 계산하고 싶다면 사용가능.
SELECT 수식 FROM dual; 명령은 간단 한 계산기 역할, dual 은 1행 1열짜리 더미 테이블.