'query'에 해당되는 글 6건

  1. 2010/06/14 Default datetime argument in stored procedure - SQL Server
  2. 2009/02/26 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 (4)
  3. 2007/11/26 .NET 통합 언어 쿼리 LINQ
  4. 2007/08/08 LINQ to SQL Debug Visualizer
  5. 2007/06/29 ORACLE SQL 2차 평가 시험 문제
  6. 2007/06/24 Oracle 달력 쿼리
2010/06/14 13:11

Default datetime argument in stored procedure - SQL Server


MS SQL 서버에서 테이블을 정의할 때 Datetime Column에 'GETDATE()' 형식으로 기본 값을 지정하게 되죠.

Procedure에서는 이와 같이 적용되지가 않습니다.
아래 처럼 해줘야 기본 값을 현재 시간(GETDATE())으로 설정할 수 있습니다.



CREATE PROCEDURE TestProc
(
    @TestDate DATETIME = NULL
)
AS

    IF @TestDate IS NULL SET @TestDate = GETDATE()
    ...........
    RETURN
GO



저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/601 관련글 쓰기

2009/02/26 08:59

여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능



자주 사용하는 기능인데 귀찮아서 -_ -;;

강좌로 올리진 않았는데..

생각난 김에 잠깐 캡쳐를 해서 샥샥~ 블로깅 합니다.



뭐 하다보면 StringBuilder 일 수 있고 아닐 수도 있지만

유사한 방법으로 활용하시면 될 듯 해요 ㅎㅎ

일단 핵심인 Editplus가 있어야 겠고요.

먼저 다음과 같은 쿼리문을 스트링 빌더(StringBuilder)로 감싸야 한다고 생각해보죠.

뭐 3줄 이니 그냥해도 되지만, 줄이 많은 경우를 가정해서 하는 것이라고 생각해주세요.






먼저 '바꾸기 (Ctrl + H)'를 눌러서 바꾸기 창을 띄우고요.

다음처럼 따라서 누르면 위쪽에 '찾을 말' 부분에 추가가 되거든요.


먼저 한 줄의 시작 부분에



그 뒤부분에 나오는 전체 문자들을 전부 잡을 것이기 때문에
우리가 필요로 하는 부분을 테그로 감싸야 합니다. () 모양인 것이 태그죠.


이제 모든 문자열을 잡습니다. '.' 점(dot)이 그 것을 나타냅니다.


어떤 문자열이든 한 글자 이상 나오면, 그 것을 잡는다는 말이고요.



이제 줄의 끝까지를 잡는다는 말이에요.
결과적으로 한줄의 어떤 문자열이 오든 잡는다는 말이죠. 대신 한 글자라도 있어야 하고요.



그렇게 적용한 후에 아래 '바꿀 말' 부분을 작성해줍니다.

위에서 '찾을 말' 에서 태그 () 로 잡은 안의 문자열 들은 \1 '바꿀 말'의 \1로 변환 되는 거에요.

기존에 있던 글자를 () 괄호 안의 .+ 가 잡은 모든 글자들이 아래처럼 감싸지게 됩니다!!

sb.AppendLine(" 기존의 글 ");


위의 형식으로 잡는다는 말이 되는겁니다. 간단하죠?


이제 '모두 바꾸기' 버튼을 누르면,




다음과 같이 한번에 변환 되는 겁니다.

아주 간단한 팁이지만 - _-;;

아직도 노가다로 코딩하시는 분들을 위해....

아주 약간이나마 팁이 되기를... ㅋㅋ



저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 2 Comment 4

Trackback : http://i-ruru.com/trackback/411 관련글 쓰기

  1. Subject decoder의 생각

    Tracked from decoder's me2DAY 2009/02/26 23:25 delete

    여러줄을 StringBuilder로 감싸기 이거 요긴하게 써먹을 수 있겠구만. :)

  2. Subject sunyruru의 생각

    Tracked from sunyruru's me2DAY 2009/02/27 15:50 delete

    Ruru' Programming :) :: 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 아주 가끔씩은 쓸 일이 있더라구요 ㅎㅎ

  1. Favicon of http://blog.naver.com/gaebit/ BlogIcon 이경배 2009/12/16 10:20 address edit & del reply

    오... 좋은 글 잘 읽었습니다.
    http://blog.naver.com/gaebit/120093613178
    에 제가 만든 프로그램이 있습니다.
    앞뒤로 따옴표 붙혀주는 프로그램인데요. 스트링 빌더 말고 그냥 스트링에 사용하실때 유용하실껍니다.
    스트링빌더나 다른 언어에서 쓸 수 있게 앞뒤에 사용자가 원하는 문자를 붙힐 수 있도록 수정해야겠네요^^;

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2010/01/01 16:01 address edit & del

      잘 만드셨네요~ ㅎㅎ
      앞에랑 뒤에랑 붙일 문자열을 지정할 수 있으면 더 좋을 것 같네요 ~

  2. add 2010/07/19 17:46 address edit & del reply

    예제덕에 쉽게 잘배우고 갑니다.
    감사해요~

  3. 희야 2010/08/05 17:21 address edit & del reply

    난 그냥 바꾸기에서 ^p -> ";);^psb.append(" 하고

    앞뒤만 조금만 수정해줌 -_-;

2007/11/26 14:44

.NET 통합 언어 쿼리 LINQ

http://www.microsoft.com/Korea/MSDN/library/bb308959.aspx


LINQ: .NET 통합 언어 쿼리

Don Box, Anders Hejlsberg

January 2007

적용 대상 :
Visual Studio 2008
.Net Framework 3.5

개요 : 자료에서는 .NET Framework 추가된 범용 쿼리 기능에 대해 설명합니다. 범용 쿼리 기능은 관계형 데이터, XML 데이터 뿐만이 아닌 모든 정보 소스에 적용됩니다. 기능을 .NET LINQ (Language Integrated Query : 통합 언어 쿼리)라고 부릅니다.

목차

.NET LINQ
표준 쿼리 연산자 개요
LINQ 프로젝트를 지원 하는 언어 기능
표준 쿼리 연산자
쿼리 구문
LINQ to SQL: SQL 통합
LINQ to XML: XML 통합
요약

.NET LINQ

개체 지향 (OO) 프로그래밍 기술 진화는 20 년의 세월을 거쳐 이제 안정화 단계에 이르렀습니다. 프로그래머도 클래스, 개체, 메서드와 같은 기능을 다룰 있게 되었습니다.이러한 기술 현상이나 차세대 기술에 관심을 가져보면, OO 기술을 사용하여 네이티브에 정의되지 않은 정보 접근이나 통합의 복잡함을 경감하는 것이 앞으로의 과제입니다. OO 기술에 대응하지 않는 정보 중에서 가장 일반적인 정보 소스가 관계형 데이터베이스와 XML 두가지입니다.

.NET Framework 에서는 프로그램 언어나 런타임에 관계형 고유의 기능이나 XML 고유의 기능을 추가하는 것이 아니라, LINQ 프로젝트라는 범용성 높은 접근 방식을 채용했습니다..NET Framework 범용 쿼리 기능이 추가되어 관계형 데이터나 XML 데이터 뿐만 아니라, 모든 정보 소스에 쿼리 기능이 적용됩니다. 기능을 .NET LINQ (Language Integrated Query : 통합 언어 쿼리)라고 부릅니다.

"통합 언어 쿼리 (LINQ : Language Integrated Query)" 라는 용어가 보여주듯이, 개발자가 주로 사용하는 프로그램 언어 (Visual C#, Visual Basic ) 쿼리 기능이 통합됩니다. LINQ 사용하여 지금까지는 프로그래밍 코드로 밖에 이용할 없었던, 리치 메타데이터, 컴파일시 구문 체크, 정적인 형식 지정, IntelliSense 등의 장점을 "쿼리 " 에서 이용할 있게 됩니다., LINQ 라고 하는 선언형의 단일 범용 쿼리 기능에 의해, 외부 소스로부터의 정보 뿐만이 아니라, 메모리내의 모든 정보에 대해 쿼리 기능을 이용할 수도 있습니다.

.NET LINQ 에서는 연속된 범용 "표준 쿼리 연산자" 정의됩니다. 표준 쿼리 연산자에 의해,.NET 기반의 프로그램 언어내에서 선언형의 직접적 수법을 사용하고, 통과 (일괄) 연산, 필터 연산 프로젝션 연산을 표현할 있습니다.표준 쿼리 연산자에서는 IEnumerable<T> 기반의 모든 정보 소스에 쿼리를 적용할 있습니다.  LINQ사용으로 타사에서 제공되는 표준 쿼리 연산자세트가 증가합니다.이러한 표준 쿼리 연산자 안에는 대상 도메인이나 대상 기술에 대응하는 새로운 도메인 고유의 연산자도 포함됩니다.한층 중요한 점은 타사가 표준 쿼리 연산자를 독자적인 구현에 자유롭게 옮겨놓을 있는 것입니다.타사 독자적인 구현에서는 리모트 평가 쿼리의 번역, 최적화 등의 서비스를 추가할 있습니다. 이러한 구현에서는 "LINQ 패턴" 표기법으로 준거하며, 표준 쿼리 연산자와 같은 통합 언어와 도구 지원을 이용할 있습니다.

이러한 쿼리 아키텍처의 확장성은 LINQ 프로젝트 자체에서도 사용되고 XML데이터와 SQL 데이터의 양쪽 모두로 기능하는 구현을 제공합니다. XML 대한 쿼리 연산자 (LINQ to XML)에서는 효율적으로 사용하기 쉬운, 인메모리 XML 기능을 사용하고, 호스트 프로그램 언어에 XPath/XQuery 기능을 제공합니다. 관계형 데이터에 대한 쿼리 연산자 (LINQ to SQL) 공용 언어 런타임 (CLR) 형식 시스템에 통합된 SQL 기반의 스키마 정의를 기본으로 구축됩니다.이러한 통합에 의해, 관계형 모델의 표현력이나, 기본으로 되는 스토어에서 직접 행해지는 쿼리 평가의 성능을 유지하면서, 관계형 데이터에 엄밀한 형식 지정이 필요합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/203 관련글 쓰기

2007/08/08 22:51

LINQ to SQL Debug Visualizer

http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

Probably the biggest programming model improvement being made in .NET 3.5 is the work being done to make querying data a first class programming concept.  We call this overall querying programming model "LINQ", which stands for .NET Language Integrated Query.  Developers can use LINQ with any data source, and built-in libraries are included with .NET 3.5 that enable LINQ support against Objects, XML, and Databases.

Earlier this summer I started writing a multi-part blog series that discusses the built-in LINQ to SQL provider in .NET 3.5.  LINQ to SQL is an ORM (object relational mapping) implementation that allows you to model a relational database using .NET classes.  You can then query the database using LINQ, as well as update/insert/delete data from it.  LINQ to SQL fully supports transactions, views, and stored procedures.  It also provides an easy way to integrate data validation and business logic rules into your data model.

You can learn more about LINQ to SQL by reading my posts below (more will be coming soon):

Using the LINQ to SQL Debug Visualizer

One of the nice development features that LINQ to SQL supports is the ability to use a "debug visualizer" to hover over a LINQ expression while in the VS 2008 debugger and inspect the raw SQL that the ORM will ultimately execute at runtime when evaluating the LINQ query expression.

For example, assume we write the below LINQ query expression code against a set of data model classes:

We could then use the VS 2008 debugger to hover over the "products" variable after the query expression has been assigned:

And if we click the small magnifying glass in the expression above, we can launch the LINQ to SQL debug visualizer to inspect the raw SQL that the ORM will execute based on that LINQ query:

If you click the "Execute" button, you can even test out the SQL query and see the raw returned results that will be returned from the database:

This obviously makes it super easy to see precisely what SQL query logic LINQ to SQL ORM is doing for you. 

You can learn even more about how all this works by reading the Part 3: Querying our Database segment in my LINQ to SQL series above.

How to Install the LINQ to SQL Debug Visualizer

The LINQ to SQL Debug Visualizer isn't built-in to VS 2008 - instead it is an add-in that you need to download to use.  You can download a copy of it here.

The download contains both a binary .dll assembly version of the visualizer (within the \bin\debug directory below), as well as all of the source code for the visualizer:

To install the LINQ to SQL debug visualizer, follow the below steps:

1) Shutdown all running versions of Visual Studio 2008

2) Copy the SqlServerQueryVisualizer.dll assembly from the \bin\debug\ directory in the .zip download above into your local \Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\Visualizers\ directory:

3) Start up Visual Studio 2008 again.  Now when you use the debugger with LINQ to SQL you should be able to hover over LINQ query expressions and inspect their raw SQL (no extra registration is required).

Hope this helps,

Scott

크리에이티브 커먼즈 라이선스
Creative Commons License

'.NET > ADO.NET' 카테고리의 다른 글

ADO.NET for SQLite  (0) 2009/03/27
LINQ to SQL Debug Visualizer  (0) 2007/08/08
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/126 관련글 쓰기

2007/06/29 16:17

ORACLE SQL 2차 평가 시험 문제

SQL 문제

 

 ‘OE’ 사용자로 로그인하여 요구 조건을 만족하도록 SQL PL/SQL 구문으로 작성하세요.

 

 

1. 단일 주문으로 가장 주문 금액은 얼마인가? (4)

 

SELECT MAX(ORDER_TOTAL)

FROM OC_ORDERS;

 

결과 :

최고 주문 금액

--------------

        295892

 

2. ‘online’ 주문 중에서 1 주문 최고 금액으로 주문한 고객은 누구인가? (4)

SELECT c.CUST_LAST_NAME || ' ' || c.CUST_FIRST_NAME

FROM CUSTOMERS c

JOIN ORDERS o ON o.CUSTOMER_ID = c.CUSTOMER_ID

WHERE

o.ORDER_TOTAL = (

  SELECT MAX(ORDER_TOTAL) "max_ord"

  FROM ORDERS

  WHERE ORDER_MODE = 'online'

)

 

Roberts Ishwarya

 

3. 직무가 Sales Manager 사원 ‘Cambrault Gerald’ 관리하는 고객의 수는 명인가? (4)

SELECT SUM(NUM_CUSTOMERS)

FROM ACCOUNT_MANAGERS am

JOIN EMPLOYEES e ON e.employee_id = am.ACCT_MGR

WHERE e.last_name = 'Cambrault' AND e.first_name = 'Gerald' AND e.job_id = 'SA_MAN'

 

: 232

 

4. 'SDRAM - 48 MB' 제품의 주문 건수는 건인가? (4)

SELECT COUNT(*) "건수"

FROM ORDERS o

JOIN ORDER_ITEMS oi ON oi.ORDER_ID = o.ORDER_ID

JOIN PRODUCT_INFORMATION pi ON pi.product_id = oi.product_id

WHERE pi.product_name = 'SDRAM - 48 MB'

 

: 2 ()

5. 'Sydney ' 창고(저장소) 'SDRAM - 48 MB' 제품의 재고 수량은 개인가? (4)

SELECT quantity_on_hand

FROM SYDNEY_INVENTORY

WHERE product_name = 'SDRAM - 48 MB'

 

: 65 ()

 

6. 아래와 같이 고객의 주문 정보를 확인할 있는 프로시져 ‘info_order’ 작성하세요. (5)

 

EXEC info_order(101)

실행 결과

order_id, order_date, order_mode, product_name

 

 

CREATE OR REPLACE PROCEDURE info_order

  (

    p_cust_id orders.customer_id%type

   )

IS

     l_ord orders%ROWTYPE;

     l_pn product_information.product_name%type;

  CURSOR ord_cur IS

   SELECT o.order_id, order_date,  order_mode, product_name

   FROM orders o

   JOIN order_items i ON o.order_id = i.order_id

   JOIN product_information p ON i.product_id = p.product_id

   WHERE customer_id = p_cust_id;

   BEGIN

     OPEN ord_cur;

     LOOP

     FETCH ord_cur INTO l_ord.order_id, l_ord.order_date, l_ord.order_mode, l_pn;

     EXIT WHEN ord_cur%NOTFOUND;

     DBMS_OUTPUT.PUT_LINE(l_ord.order_id||' '||l_ord.order_date||' '||l_ord.order_mode||' '||l_pn);

     END LOOP;

  CLOSE ord_cur;

END;

 

SET SERVEROUTPUT ON;

EXEC info_order(101);

 

결과 : 2447 00/07/27 23:59:10.223344 direct RAM - 16 MB

2430 99/10/02 21:18:36.663332 direct SDRAM - 16 MB

2413 00/03/30 04:34:04.525934 direct MB - S500

2447 00/07/27 23:59:10.223344 direct MB - S600

2413 00/03/30 04:34:04.525934 direct Sound Card STD

2447 00/07/27 23:59:10.223344 direct Video Card /E32

2413 00/03/30 04:34:04.525934 direct KB E/EN

2458 99/08/17 06:34:12.234359 direct Mouse C/E

2413 00/03/30 04:34:04.525934 direct Mouse C/E

2447 00/07/27 23:59:10.223344 direct CDW 20/48/I

2447 00/07/27 23:59:10.223344 direct DVD 12x

2447 00/07/27 23:59:10.223344 direct Battery - NiHM

2447 00/07/27 23:59:10.223344 direct PS 12V /P

2458 99/08/17 06:34:12.234359 direct PS 220V /D

2413 00/03/30 04:34:04.525934 direct Monitor Hinge - HD

2430 99/10/02 21:18:36.663332 direct Plasma Monitor 10/LE/VGA

2447 00/07/27 23:59:10.223344 direct Inkjet B/6

2458 99/08/17 06:34:12.234359 direct LaserPro 600/6/BW

2413 00/03/30 04:34:04.525934 direct LaserPro 600/6/BW

2430 99/10/02 21:18:36.663332 direct HD 10GB /R

2447 00/07/27 23:59:10.223344 direct PS 220V /L

2458 99/08/17 06:34:12.234359 direct Screws <B.28.S>

2458 99/08/17 06:34:12.234359 direct Screws <B.32.S>

2430 99/10/02 21:18:36.663332 direct C for SPNIX4.0 - Sys

2430 99/10/02 21:18:36.663332 direct Web Browser - SB/S 4.0

2458 99/08/17 06:34:12.234359 direct Manual - Vision Net6.3/US

2413 00/03/30 04:34:04.525934 direct Manual - Vision Net6.3/US

 

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/87 관련글 쓰기

2007/06/24 23:57

Oracle 달력 쿼리

출처 : http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1010&seq=69&page=1&position=1


년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들어 보자.
쿼리는 아래와 같다. (2000년 01월이 주어졌을 경우)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT     base_mon + LEVEL - 1 days,
                         (  TRUNC (base_mon + LEVEL - 1, 'd')
                          - TRUNC (TRUNC (base_mon + LEVEL - 1, 'y'), 'd')
                         ) / 7 + 1 week_grp
                FROM (SELECT TO_DATE ('200001', 'yyyymm') base_mon
                        FROM DUAL)
          CONNECT BY base_mon + LEVEL - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp



connect by level 절을 사용하지 못하는 버전일 경우에는, 아래와 같이 dict 테이블을 이용한다.
아래 예는 위의 쿼리 와는 다르게 오늘로부터 몇달 후인지를 나타내는 변수 :n에 따라 달력을 생성한다.
(:n=-1 일 경우 지난달, 0은 이번달, 1은 다음달, 2는 다다음달,...)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT base_mon + ROWNUM - 1 days,
                     (  TRUNC (base_mon + ROWNUM - 1, 'd')
                      - TRUNC (TRUNC (base_mon + ROWNUM - 1, 'y'), 'd')
                     )
                   / 7
                 + 1 week_grp
            FROM (SELECT TRUNC (ADD_MONTHS (SYSDATE, :n), 'mm') base_mon
                    FROM DUAL), dict
           WHERE base_mon + ROWNUM - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/81 관련글 쓰기