/* 사용할 데이터베이스 지정 */
use Test
/* 테이블 생성 */
create table Member
(
번호 int identity primary key,
이름
varchar(10) not null,
주소 varchar(100),
전화 varchar(10) not null
)
/* 입력할 자료 삽입 */
insert into Member(이름,주소,전화) values
('김성균','김해','1111')
insert into Member(이름,주소,전화) values
('김대규','부산','2222')
insert into Member(이름,주소,전화) values
('고대현','서울','3333')
insert into Member(이름,주소,전화) values
('강혜정','부산','4444')
insert into Member(이름,주소,전화) values
('여옥희','부산','5555')
insert into Member(이름,전화) values ('김동관','5555')
insert
into Member(이름,주소,전화) values ('이성균','김해','6666')
/* Member 테이블의 모든 행 반환 */
select * from Member
/* 이름이 '김성균'인 자료 출력 */
select * from Member where 이름 = '김성균'
/* 번호가 4보다 작은 것 출력 */
select * from Member where 번호 <
4
/* 번호가 1보다 큰 것 출력 */
select * from Member where 번호 > 1
/* 번호가 1인 것을 출력 */
select * from Member where 번호 = 1
/* 번호가 1이 아닌 것을 출력 */
select * from Member where 번호 <> 1
/* 별칭 */
select 이름 as name1 from Member where 번호
>1
/* where절에는 검색하는데 필요한 자세한 조건절이 온다. */
select * from Member where 번호 >1 and 이름 = '고대현'
/* Null 검색 */
select * from Member where 주소 is not
null
/* where절 이하 컬럼 안의 값이 null이 아닌 것을 출력 */
select * from Member
where 주소 is null
/* where절 이하 컬럼 안의 값이 null인 것을 출력 */
/* between~and~ 과 in (~,~) */
/*
①과 ②의 결과는 같다.
'컬럼명 between A and B'에서 A는 반드시 시작값, B는 반드시 종료값.
즉 반드시 오름차순으로 적어야 한다.
*/
select * from Member where
번호 >=3 and 번호 <=5 /* ① */
select * from Member where 번호 between 3 and 5 /* ② */
/* ①과 ②의 결과는 같다. '컬럼명 in (A,B)'는 '컬럼명 = A or 컬럼명 = B' 와 같다. */
select * from Member where 번호 in (1,3) /* ① */
select * from
Member where 번호 =1 or 번호 =3 /* ② */
/* 멤버 테이블의 반환되는 모든 행의 수를 반환 */
select count(*) from Member
/* 성이 '김'인 사람의 모든 행 반환 */
select * from Member where 이름 like '김%'
/* 이름이 '성균'인 사람의 모든 행 반환 */
select * from Member where 이름 like
'%성균'
/* '김성?'인 사람의 모든 행 반환 */
select * from Member where 이름 like
'김성_'
/* '김?균'인 사람의 모든 행 반환 */
select * from Member where 이름 like
'김_균'
/* '김??'인 사람의 모든 행 반환 */
select * from Member where 이름 like
'김__'
/*
'%'는 명확한
자리수를 몰라도 되지만
'_'는 자리수를 명확히 아는 경우에 사용하는 것이
검색 속도면에서 효과적이다.
*/
/* 정렬 */
/* 숫자 */
select * from Member order by 번호 desc /* 내림차순 정렬 */
select *
from Member order by 번호 asc /* 오름차순 정렬 */
select * from Member order by 번호 /* 오름
차순이 디폴트 */
/* 문자 */
select * from Member order by 이름 desc /* 내림차순 정렬 */
select *
from Member order by 이름 asc /* 오름차순 정렬 */
select * from Member order by 이름 /* 오름
차순이 디폴트 */
/*========================================================================================*/
use pubs
①은 첫글자가 b~p 사이의 단어로 시작하는 모든 행 반환
②은 첫글자가 b 아니면 p안 모든행 반환
title_id에서 첫글자가 b or p인 모든 행 반환 */
select * from titles where title_id like '[b-p]%'
/* ① */
select * from titles where title_id like '[bp]%' /* ② */
/* 첫글자가 p이고 두번째 글자가 c가 아닌 모든 행 반환 */
select * from titles where title_id like 'p[^c]%'
/* 첫글자가 p이고 두번째 글자가 b가 아닌 모든 행 반환 */
select * from titles
where title_id like 'p[^b]%'
select * from titles order by title desc /* 내림차순 정렬 */
select
* from titles order by title asc /* 오름차순 정렬 */
select * from titles order by
title /* 오름 차순이 디폴트 */
select title_id from sales
select distinct title_id from
sales /* 중복제거 */
'IT_DBMS > MSSQL' 카테고리의 다른 글
[Transact-SQL] 외부조인(outer join) - Right join (0) | 2006.03.06 |
---|---|
[Transact-SQL] 외부조인(outer join) - Left Join (0) | 2006.03.06 |
[Transact-SQL] 내부조인(inner join) (0) | 2006.03.06 |
내부조인과 외부조인의 차이점 (0) | 2006.03.06 |
Select 연습 2(수치 연산 함수, 문자열 함수...) (0) | 2006.03.06 |