ClassicASP SELECT 문
페이지 정보
본문
1. SELECT 문이란?
우리가 데이터베이스에 정보를 저장하는 이유는 언젠가 필요할 때 다시 검색해보기 위해서입니다. 지난 데이터를 테이프에 백업 받아 영구히 보관하는 이유도 자주는 아닐 수 있지만 언젠가는 그 정보가 필요해서 보아야 할 필요성을 알기 때문입니다. 다시는 볼 필요가 없는 정보라면 데이터베이스에 보관할 필요가 없다고 생각합니다. 이렇듯 데이터베이스에서 정보를 검색할 때 사용되는 퀴리문이 SELECT 문입니다.
2. SELECT의 대상
데이터베이스의 정보를 검색하는 SELECT문의 대상이되는 객체들은 언급해 본다면 다음과 같습니다.
o 데이블(Table)
o 뷰(View)
o 함수(Function)
[ 예제1 ]
데이터베이스에 포함된 테이블 중에 TABLE 테이블이 있는데 이 테이블의 모든 내용을 확인하고 싶으면 다음과 같이 수행하면 됩니다.
SELECT * FROM titles
[ 예제2 ]
SELECT의 대상이 함수가 되는 경우를 보도록 하겠습니다.
다음의 예는 현재의 날짜와 시간을 확인하는 방법입니다.
SELECT getdate()
--> 2012-01-14 23:09:46.147
o 현재의 날짜와 시간을 리턴해주는 getdate()함수를 SELECT 함으로써 현재의 날짜와 시간을 표시하였습니다.
o 이와 같이 SELECT의 대상이 항상 테이블이 되는 것은 아닙니다. 하지만 대부분 테이블에서 데이터를 검색할 때 사용합니다.
[ 예제3 ]
다음은 특정 컬럼만을 지정하여 검색하는 예제입니다.
titles 테이블에서 id 컬럼과 title 컬럼만을 검색 할 경우
SELECT id, title FROM titles
[ 예제4 ]
다음은 특정 컬럼만을 지정하여 검색하데 표시되는 컬럼의 타이틀을 변경하여 표시하는 예제입니다.
SELECT id AS 아이디, title AS 타이틀 FROM titles
o 위와 같이 하면 표시되는 결과의 컬럼 제목이 id 대신에 '아이디'가, title 대신에 '타이틀' 이 표시됩니다.
o 만일 '아이디' 대신에 '타이틀 아이디' 라고 스페이스가 포함된 제목을 주고자 한다면 어떻게 해야 할까요?
SELECT id AS [타이틀 아이디], title AS 타이틀 FROM titles
o 위와 같이 컬럼명에 또는 검럼명을 대신하는 문자열에 스페이스가 포함되면 []로 묶어주면 됩니다. 또는 SQL Server의 예약어를 임의의 문자열로 취급하고 싶을 때도 []를 사용합니다.
[ 예제5 ]
이제는 테이블의 전체 데이터를 검색하는 것이 아니고 특정 조건을 만족하는 대상건만을 검색하는 예제입니다. SELECT 문에 WHERE 절을 추가하여 검색 대상을 제어 할 수 있습니다. 다음의 예제는 titles 테이블에서 id가 '1234'인 레코드만을 검색하기위해 WHERE절을 사용하고 있습니다.
SELECT * FROM titles WHERE id = '1234'
o 위와 같이 WHERE 절이 포함된 SELECT문이 전형적인 SELECT문입니다.
[ 예제6 ]
특정한 값을 제외하고 select 할 때
MySQL SELECT x FROM a WHERE NOT IN ( SELECT x FROM b ) - Unexpected result
- 원하는 값(특정값)을 제외하고 뿌려주고 싶을때
- 중복검사 할 때 자신의 값을 제외하고 중복체크 할 때
특정 자료들을 제외한 나머지만 select 하고 싶을때는 NOT IN 을 이용합니다.
예1)
SELECT * FROM titles WHERE a = '111' and id != '200' and id != '201' and id != '202' and id != '203'
( a = 111 ) and ( id != 201, 202, 203 ) 조건이 충족되는 select 하고자 할때
예2)
SELECT * FROM titles WHERE a = '111' and id NOT IN ('200', '201', '202', '203')
( a = 111 ) and ( id != 201, 202, 203 ) 조건이 충족되는 select 하고자 할때
예3)
SELECT name, age FROM titles WHERE name='han' and name NOT IN ('kim')
name 이 han 이지만 kim 이 아닌 결과값
예4) 2개 이상 동시에 제외하고 싶을 때 예시)
SELECT name, age FROM titles WHERE (name, age) NOT IN ( select 'Kim', '23' )
name 이 kim 아니고 age 가 23 이 아닌 결과값
관련자료
http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql01&group_name=board&idx_num=15
http://stackoverflow.com/questions/1001144/mysql-select-x-from-a-where-not-in-select-x-from-b-unexpected-result
http://blog.naver.com/hmw5233?Redirect=Log&logNo=60149187517
우리가 데이터베이스에 정보를 저장하는 이유는 언젠가 필요할 때 다시 검색해보기 위해서입니다. 지난 데이터를 테이프에 백업 받아 영구히 보관하는 이유도 자주는 아닐 수 있지만 언젠가는 그 정보가 필요해서 보아야 할 필요성을 알기 때문입니다. 다시는 볼 필요가 없는 정보라면 데이터베이스에 보관할 필요가 없다고 생각합니다. 이렇듯 데이터베이스에서 정보를 검색할 때 사용되는 퀴리문이 SELECT 문입니다.
2. SELECT의 대상
데이터베이스의 정보를 검색하는 SELECT문의 대상이되는 객체들은 언급해 본다면 다음과 같습니다.
o 데이블(Table)
o 뷰(View)
o 함수(Function)
[ 예제1 ]
데이터베이스에 포함된 테이블 중에 TABLE 테이블이 있는데 이 테이블의 모든 내용을 확인하고 싶으면 다음과 같이 수행하면 됩니다.
SELECT * FROM titles
[ 예제2 ]
SELECT의 대상이 함수가 되는 경우를 보도록 하겠습니다.
다음의 예는 현재의 날짜와 시간을 확인하는 방법입니다.
SELECT getdate()
--> 2012-01-14 23:09:46.147
o 현재의 날짜와 시간을 리턴해주는 getdate()함수를 SELECT 함으로써 현재의 날짜와 시간을 표시하였습니다.
o 이와 같이 SELECT의 대상이 항상 테이블이 되는 것은 아닙니다. 하지만 대부분 테이블에서 데이터를 검색할 때 사용합니다.
[ 예제3 ]
다음은 특정 컬럼만을 지정하여 검색하는 예제입니다.
titles 테이블에서 id 컬럼과 title 컬럼만을 검색 할 경우
SELECT id, title FROM titles
[ 예제4 ]
다음은 특정 컬럼만을 지정하여 검색하데 표시되는 컬럼의 타이틀을 변경하여 표시하는 예제입니다.
SELECT id AS 아이디, title AS 타이틀 FROM titles
o 위와 같이 하면 표시되는 결과의 컬럼 제목이 id 대신에 '아이디'가, title 대신에 '타이틀' 이 표시됩니다.
o 만일 '아이디' 대신에 '타이틀 아이디' 라고 스페이스가 포함된 제목을 주고자 한다면 어떻게 해야 할까요?
SELECT id AS [타이틀 아이디], title AS 타이틀 FROM titles
o 위와 같이 컬럼명에 또는 검럼명을 대신하는 문자열에 스페이스가 포함되면 []로 묶어주면 됩니다. 또는 SQL Server의 예약어를 임의의 문자열로 취급하고 싶을 때도 []를 사용합니다.
[ 예제5 ]
이제는 테이블의 전체 데이터를 검색하는 것이 아니고 특정 조건을 만족하는 대상건만을 검색하는 예제입니다. SELECT 문에 WHERE 절을 추가하여 검색 대상을 제어 할 수 있습니다. 다음의 예제는 titles 테이블에서 id가 '1234'인 레코드만을 검색하기위해 WHERE절을 사용하고 있습니다.
SELECT * FROM titles WHERE id = '1234'
o 위와 같이 WHERE 절이 포함된 SELECT문이 전형적인 SELECT문입니다.
[ 예제6 ]
특정한 값을 제외하고 select 할 때
MySQL SELECT x FROM a WHERE NOT IN ( SELECT x FROM b ) - Unexpected result
- 원하는 값(특정값)을 제외하고 뿌려주고 싶을때
- 중복검사 할 때 자신의 값을 제외하고 중복체크 할 때
특정 자료들을 제외한 나머지만 select 하고 싶을때는 NOT IN 을 이용합니다.
예1)
SELECT * FROM titles WHERE a = '111' and id != '200' and id != '201' and id != '202' and id != '203'
( a = 111 ) and ( id != 201, 202, 203 ) 조건이 충족되는 select 하고자 할때
예2)
SELECT * FROM titles WHERE a = '111' and id NOT IN ('200', '201', '202', '203')
( a = 111 ) and ( id != 201, 202, 203 ) 조건이 충족되는 select 하고자 할때
예3)
SELECT name, age FROM titles WHERE name='han' and name NOT IN ('kim')
name 이 han 이지만 kim 이 아닌 결과값
예4) 2개 이상 동시에 제외하고 싶을 때 예시)
SELECT name, age FROM titles WHERE (name, age) NOT IN ( select 'Kim', '23' )
name 이 kim 아니고 age 가 23 이 아닌 결과값
관련자료
http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql01&group_name=board&idx_num=15
http://stackoverflow.com/questions/1001144/mysql-select-x-from-a-where-not-in-select-x-from-b-unexpected-result
http://blog.naver.com/hmw5233?Redirect=Log&logNo=60149187517
댓글목록
등록된 댓글이 없습니다.