'About DataBase'에 해당되는 글 18건

  1. 2009.09.25 ms-sql CTE(공용 Table 식)
  2. 2009.08.18 sys.sp_addextendedproperty
  3. 2009.05.07 Ms-Sql sample database download
  4. 2009.04.06 ROW_NUMBER() OVER(ORDER BY ...)
  5. 2009.04.03 Cursor
  6. 2009.03.20 [Ms-Sql] DateAdd 함수
  7. 2008.11.04 [sql]동의어란
  8. 2008.10.10 오라클 다운로드 경로

ms-sql CTE(공용 Table 식)

About DataBase 2009. 9. 25. 18:06 posted by 무명시인
http://msdn.microsoft.com/ko-kr/magazine/cc163346.aspx

CTE (Common Table Expression)

말이 필요 없지 설명은 위의 링크에서

사용자 삽입 이미지

이런 테이블(2316890 건의 데이타가 있다) 을 페이징을 한다면...

그리고 글번호를 붙인다면...

사용자 삽입 이미지

여태까지는 쪼인을 해서 이리 했다면;;;;

CTE 를 사용해서..

사용자 삽입 이미지
이처럼 간단하게..

temp 가 일종의 태이블 변수가 되는것이다..

하지만 주의 할점..

한번 만들고 꼭 한번만 사용할 수 있다는 거!!!

sys.sp_addextendedproperty

About DataBase 2009. 8. 18. 09:34 posted by 무명시인
SQL Server 2008 온라인 설명서(2009년 5월)
데이터베이스 개체의 확장 속성 사용

확장 속성을 사용하여 데이터베이스 개체 또는 데이터베이스 자체의 속성으로 설명이나 지시 등의 텍스트, 입력 마스크 및 형식 지정 규칙을 추가할 수 있습니다. 예를 들어 스키마, 스키마의 뷰 또는 뷰의 열에 확장 속성을 추가할 수 있습니다. 데이터베이스에 확장 속성이 저장되기 때문에 속성을 읽는 모든 응용 프로그램에서 개체를 같은 방식으로 평가할 수 있습니다. 따라서 시스템의 모든 프로그램에서 데이터를 일관된 방식으로 처리할 수 있습니다.

다음과 같은 작업에 확장 속성을 사용할 수 있습니다.

  • 테이블, 뷰 또는 열의 캡션을 지정합니다. 그러면 응용 프로그램에서 테이블, 뷰 또는 열의 정보를 표시하는 사용자 인터페이스에 동일한 캡션을 사용할 수 있습니다.
  • Transact-SQL 문을 실행하기 전에 응용 프로그램에서 데이터 유효성을 검사할 수 있도록 열의 입력 마스크를 지정합니다. 예를 들어 우편 번호나 전화 번호 열에 필요한 형식을 확장 속성에 지정할 수 있습니다.
  • 열에 데이터를 표시할 때 사용할 형식 지정 규칙을 지정합니다.
  • 응용 프로그램에서 사용자에게 표시할 수 있는 특정 데이터베이스 개체의 설명을 기록합니다. 예를 들어 데이터 사전 응용 프로그램이나 보고서에서 이러한 설명을 사용할 수 있습니다.
  • 열이 표시될 창의 위치와 크기를 지정합니다.

http://msdn.microsoft.com/ko-kr/library/ms190243.aspx

그냥 쉬운예 하나..

테이블의 해당 컬럼에 설명 달기..

	

	EXEC sys.sp_addextendedproperty 
 			@name  		= N'MS_Description'
		, 	@value  	= N'이메일'    		-- //설명
		, 	@level0type 	= N'SCHEMA'
		, 	@level0name 	= N'dbo'
		, 	@level1type 	= N'TABLE'
		, 	@level1name 	= N'TB_FreeBoard'   	-- //테이블
		, 	@level2type 	= N'COLUMN'
		, 	@level2name 	= N'Email'    		-- //컬럼명



Ms-Sql sample database download

About DataBase 2009. 5. 7. 14:34 posted by 무명시인
http://msdn.microsoft.com/ko-kr/library/8b6y4c7s.aspx

ms-sql 2000 버젼이긴 하지만..

mdf 파일을 임포트 하면 된다.

http://msftdbprodsamples.codeplex.com/

ROW_NUMBER() OVER(ORDER BY ...)

About DataBase 2009. 4. 6. 17:59 posted by 무명시인
http://msdn.microsoft.com/ko-kr/library/ms186734(SQL.90).aspx

ROW_NUMBER 구하기 편하게??


ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )
<partition_by_clause>

FROM 절이 생성한 결과 집합을 ROW_NUMBER 함수가 적용되는 파티션으로 나눕니다. PARTITION BY 구문은 OVER 절(Transact-SQL)을 참조하십시오.

<order_by_clause>

파티션에서 ROW_NUMBER 값이 행에 할당되는 순서를 결정합니다. 자세한 내용은 ORDER BY 절(Transact-SQL)를 참조하십시오. 순위 함수에 <order_by_clause>가 사용된 경우 정수는 열을 나타낼 수 없습니다.

bigint

ORDER BY 절은 지정된 파티션 내에서 행에 고유 ROW_NUMBER가 할당되는 순서를 결정합니다.

ms186734.note(ko-kr,SQL.90).gif참고:
OVER 절의 ORDER BYROW_NUMBER를 정렬합니다. 'Row Number'가 아닌 열 기준으로 정렬하는 SELECT 문에 ORDER BY 절을 추가하면 결과 집합은 외부 ORDER BY를 기준으로 정렬됩니다.

다음 예에서는 연간 판매 실적에 따라 AdventureWorks의 영업 사원에 대한 ROW_NUMBER를 반환합니다.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
    ,ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number'
    ,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s 
    INNER JOIN Person.Contact c 
        ON s.SalesPersonID = c.ContactID
    INNER JOIN Person.Address a 
        ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL 
    AND SalesYTD <> 0;

다음 예에서는 행 번호 50부터 60까지의 행을 OrderDate순으로 반환합니다.

USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60;

다음 예에서는 PARTITION BY 인수를 사용하는 방법을 보여 줍니다.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
    ,ROW_NUMBER() OVER 
    (PARTITION BY PostalCode ORDER BY SalesYTD DESC) AS 'Row Number'
    ,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s 
    INNER JOIN Person.Contact c 
        ON s.SalesPersonID = c.ContactID
    INNER JOIN Person.Address a 
        ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL 
    AND SalesYTD <> 0;

Cursor

About DataBase 2009. 4. 3. 16:10 posted by 무명시인

** 커서 **
쿼리 문법에 의해 데이타를 처리할 때, 보통은 한꺼번에 실행을 하게 된다.
커서란, 한줄씩 처리 하려고 할때 쓰인다

형식)

	

	declare 이름 scroll cursor for 구문 for 

예)

	
--  //커서의 정의
DECLARE myCursor scroll CURSOR
FOR
SELECT * FROM Table
FOR READ ONLY

--  //커서 오픈
OPEN myCursor

--  //커서가 열린 상태를 알려주고 테리블의 행의 갯수를 반환
SELECT @@cursor_rows

DECLARE @i INT
SET @i = 0

WHILE @i < @@cursor_rows
 BEGIN
  
  -- 커서의 처음 것(한줄씩 읽어 나간다)
  fetch next                      
  from myCursor    
  -- 0이면 수행성공,-1이면 결과가 범위 밖,-2면 값이 없음
  select @@fetch_status   

  SET @i = @i + 1
 END

/*
-- //지금 커서의 전에 것
fetch prior      
from myCursor    
select @@fetch_status  
-- //첫번째
fetch first 
from myCursor    
select @@fetch_status  
-- //마지막
fetch last                      
from myCursor    
select @@fetch_status  
*/
--  //열린 커서를 닫는다
close myCursor     

-- //커서참조를 제거. 이거를 실행하면 재 오픈 할수 없고 다시 정의 해야한다
deallocate myCursor  





[Ms-Sql] DateAdd 함수

About DataBase 2009. 3. 20. 15:23 posted by 무명시인
SELECT CONVERT(CHAR(10), GETDATE(),120)
-- : 2009-01-01
SELECT CONVERT(CHAR(10), DATEADD(M, 6, GETDATE()), 120)
-- : 2009-07-01

dateadd(Type, Add, Date)

 -->>   Date 시간에 원하는 시간을 더해서 반환

    Type
        year , yy, y
        month, m, mm
        day, d, dd
        week, w, wk
        hour, hh
        minute, m
        second, s, ss
        millisecond, ms

    Add

        Type 에 따른 값. dateadd(year, 1  입력시  1년 추가.

    Date 추가할 기준 시간

        2008-10-10  or 2008-10-10 20:00:00  의  datetime or smalldatetime 형식



[sql]동의어란

About DataBase 2008. 11. 4. 20:52 posted by 무명시인

CREATE SYNONYM
            [dbo].[obj] --사용할 디비
            FOR [db].[dbo].[obj]--대상디비

오라클 다운로드 경로

About DataBase 2008. 10. 10. 11:17 posted by 무명시인

ㅇ 라클이 9 아이 다운로드


http://www.oracle.com/technology/software/products/oracle9i/htdocs/winsoft.html

ㅇ 라클이 Sql Developer 다운로드

http://www.oracle.com/technology/software/products/sql/index.html

라클아 나를 기다려 줄래??~~