Microsoft SQL Server 자료실

시삽: 레드플러스 님 
게시판 이동:
 제목 : SQL Query 연습 2002-01-11
글번호: 15
작성자: 관리자
작성일: 2002/01/11 오전 11:32:00
조회수: 4985
------------------------------------------------------------------------------------------
--SQL문 연습(Insert, Select, Update, Delete, Create, Drop)

-- '--'(Double-hyphen)은 주석문으로 처리...
-- SQL 구문 실행은 해당 구문을 블럭을 씌운 후 F5이나 ▶ 누른다.
-- ※ SQL문에서 문자열은 반드시 작은따옴표(')로 묶는다.
-- SQL을 연습하실때는 항상 SQL 2000 온라인 설명서(도움말)를 적극활용한다.


1. INSERT(삽입) 문

정의) Insert TableName(FieldNameList,...) Values(FileldValueList,...)

-- ex1) my_memo에 데이터 삽입.
Insert my_memo(Name, Email, Title, PostDate) Values('홍길동','hong@hong.com','하늘',getdate())
   -- 부연 설명 : 위 구문에서 날짜함수인 GetDate() 사용 : 현재 시스템의 날짜 시간을 반환.
   -- 2001-08-19 01:07:20.070식으로 출력.
   --Insert into my_memo(Name, Email, Title, PostDate) Values('홍길동','hong@hong.com','하늘',getdate())


Select GetDate()   -- 현재 시간을 검색.
Select YEAR(GetDate()), Month(GetDate()), Day(GetDate())    -- 오늘의 날짜(년/월/일)
Select DATEDIFF(DD, GetDate(), '2002-12-25')   -- 2002년 크리스마스가 얼마나 남았는지 계산(DD는 일수)
Select DATEDIFF(DD, GetDate(), '2002-05-31')    -- 월드컵이 며칠 남았는지???
--검색결과를 표 형태로 보고 싶으면 [메뉴]-[쿼리]-[표 형태로 결과 표시(Ctrl+D)]를 선택한다.


Insert my_memo(Name, Email, Title, PostDate) Values('백두산','hong@hong.com','백두산',getdate())
Insert my_memo(Name, Email, Title, PostDate) Values('한라산','hong@hong.com','하늘',getdate())

--해당 필드이름은 생략가능하다. 단, 필드이름 순서대로 데이터를 삽입해야한다.
Insert my_memo Values('박용준','bittobio@empal.com','설~',GetDate())

-- ex2) Title 영역에 '(작은따옴표) 삽입
-- 작은따옴표 두개를 연속으로 붙여쓰면 SQL에서는 '(작은따옴표) 인식한다.
Insert my_memo(Name, Email, Title, PostDate) Values('홍길동','hong@hong.com','하''늘',getdate())
Select '하''늘'   -- 하'늘 출력
Select '하'''   -- 하' 출력

--my_memo테이블에 1000건의 레코드 기록
--Declare : 변수 선언
--Set : 값 할당
DECLARE @i int        --변수선언    
SET @i = 1        --변수 값 할당
WHILE @i <= 100
BEGIN
    Insert my_memo(Name, Email, Title, PostDate) Values('백두산','hong@hong.com','백록담',getdate())
    Insert my_memo(Name, Email, Title, PostDate) Values('한라산','hong@hong.com','제주도',getdate())
    Insert my_memo(Name, Email, Title, PostDate) Values('지리산','hong@hong.com','지루함',getdate())
    Insert my_memo(Name, Email, Title, PostDate) Values('계룡산','hong@hong.com','계룡대',getdate())
    Insert my_memo(Name, Email, Title, PostDate) Values('홍길동','hong@hong.com','홍길순',getdate())
    SET @i = @i + 1
END
GO



2. SELECT(검색) 문
정의) Select FieldNameList From TableName [Where 조건] [Order By 정렬시킬필드명 [ASC | DESC]]

--시스템 정보를 얻어오기(시스템 함수 사용)
-- 현재 서버의 이름을 검색
select @@servername

-- 현재 서버의 버전을 검색
select @@version

-- ex3) my_memo의 모든 필드 검색.
Select Num, Name, Email, Title, PostDate From my_memo

-- my_memo의 모든 필드 검색('*' 와일드문자 사용 : 모든 것).
Select * From my_memo

--시간차 주기 : WAITFOR
BEGIN
    SELECT * FROM my_memo
    WAITFOR DELAY '000:00:05'
END

-- ex4) my_memo에서 Name필드와 PostDate필드만 검색
Select Name, PostDate From my_memo

-- ex5) 조건검색 : Name이 홍길동인 사람의 모든 것 검색.
Select * From my_memo Where Name = '홍길동'

-- ex6) 조건검색 : Name이 홍길동인 사람의 Num, Email만 검색.
Select Num, Email From my_memo Where Name = '홍길동'

-- ex7) 조검검색 : Name이 '홍'으로 시작하는 사람의 모든 것 검색.
--      '%' 와일드 문자 사용. % -> 모든것... / like 키워드 사용.
Select * From my_memo Where Name like '홍%'  

-- ex8) 조검검색 : Name에 '길'자가 들어가는 사람의 모든 것 검색.
Select * From my_memo Where Name like '%길%'

-- ex9) 조검검색 : Name이 '산'자로 끝나는 사람의 모든 것 검색.
Select * From my_memo Where Name like '%산'

-- Quiz1) 이름이 '동'자로 끝나는 사람의 Name과 Email만 검색.
Select Name, Email From my_memo Where Name like '%동'

-- ex10) 조검검색 : Name이 '홍'자로 시작하고, [그리고 | 또는], Email에 'h'자가 들어가는 사람의 모든 것 검색.
  
--       AND 연산자 사용.
Select * From my_memo Where Name like '홍%' AND Email like '%h%'

--       OR 연산자 사용.
Select * From my_memo Where Name like '홍%' OR Email like '%h%'

-- ex11) 정렬검색 : Num의 역순(내림차순)으로 정렬.
--            오름차순 정렬(ASC) = 1,2,3 순서대로...(기본값)
--                    내림차순 정렬(DESC) = 3,2,1 순서대로...
Select * From my_memo Order By Num DESC

-- ex12) 정렬검색 : Name 필드를 오름차순으로 정렬.
Select * From my_memo Order By Name ASC -- ASC는 생략가능.

-- Quiz2) Name에 '길'자가 들어가는 사람의 Name과 Email를 Num의 역순으로 검색해라.
Select Name, Email From my_memo Where Name like '%길%' Order By Num DESC

-- ex13) 상위 5개 레코드만 검색.(Top 5)
Select Top 5 * From my_memo Order By Num DESC

-- ex14) 해당 테이블의 전체 레코드 수 반환
Select Count(*) From my_memo

--전세계 유일한 문자열 값을 출력시켜주는 함수
Select newid()

3. Update(수정)문

정의) Update TableName Set FieldName = FieldValue [Where 조건]
※ Update문이나 Delete문에서 조건을 생략하면... 전체 레코드에 영향을 미친다.

-- ex15) Name이 홍길동인 사람의 Email을 'hong@redplus.net'으로 변경.
Update my_memo Set Email = 'hong@redplus.net' Where Name = '홍길동'
Select * From my_memo
  
-- Quiz3) Name에 '두'자가 들어가는 사람의 Name을 '천두산'으로 변경.
Update my_memo Set Name = '천두산' Where Name like '%두%'


4. Delete(삭제)문 : 레코드 단위로 삭제...
정의) Delete TableName [Where 조건]

-- ex16) my_memo에서 이름이 '천두산'인 사람의 모든 것 삭제.
Delete my_memo Where Name = '천두산'
Select * From my_memo
  
-- Quiz4) Email에 'h'자가 들어가는 사람의 모든 것 삭제.
Delete my_memo Where Email like '%h%'

-- ex17) my_memo의 모든 자료 삭제.
Delete my_memo

select * from my_memo
------------------------------------------------------------------------------------------
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 쿼리연습 2002-01-14 - RED+ 2002-01-14 6519
현재글 SQL Query 연습 2002-01-11 - 관리자 2002-01-11 4985
다음글 MS-SQL6.5 파워포인트 자료 다운로드 권한이 없습니다. RED+ 2001-12-24 4477
 
손님 사용자 Anonymous (손님)
로그인 Home