제목 : SQL Query 연습 2002-01-11
글번호:
|
|
15
|
작성자:
|
|
관리자
|
작성일:
|
|
2002/01/11 오전 11:32:00
|
조회수:
|
|
5001
|
------------------------------------------------------------------------------------------
--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
------------------------------------------------------------------------------------------