SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 GROUP BY 칼럼1 HAVING SUM(칼럼2) < a
SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 ORDER BY 칼럼1 COMPUTE SUM(칼럼2)
    ** HAVING:        그룹 함수를 사용할 경우의 조건을 지정한다
       HAVING의 위치: GROUP BY의 뒤 ORDER BY의 앞에 지정한다
       COMPUTE:       각 그룹의 소계를 요약해서 보여준다
                      ORDER BY가 항상 선행해서 나와야 한다
조건절의 서브 쿼리
   ** SELECT 또는 INSERTY, UPDATE, DELETE 같은 문의 조건절에서 SELECT문을 또 사용하는 것이다
      SELECT문 안에 또 다른 SELECT문이 포함되어 있다고 중첩 SELECT문(NESTED SELECT)이라고 한다
   ** 데이타베이스에는 여러명이 엑세스하고 있기 때문에 쿼리를 여러개 나누어서 사용하면 데이타의 값이
      달라질수 있기때문에 트랜잭션 처리를 하지 않는다면 복수의 쿼리를 하나의 쿼리로 만들어 사용해야 한다
    
SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼2 = (SELECT 칼럼2 FROM 테이블명 WHERE 조건)
    
SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼1 IN (SELECT 칼럼1 FROM 테이블명 WHERE 조건)
   
   ** 서브 쿼리에서는 다른 테이블을 포함할 수 있다
      두개의 테이블에서 읽어오는 서브쿼리의 경우 서브 쿼리쪽에 데이타가 적은 테이블을 주 쿼리쪽에 데이타가
      많은 테이블을 지정해야 처리 속도가 빨라진다
    SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼1 IN (SELECT 칼럼2-1 FROM 테이블명2 WHERE 조건)
   ** FROM구에서 서브 쿼리를 사용할 수 있다
      사용시 반드시 별칭을 붙여야 하고 처리 속도가 빨라진다
    
SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 조건1 AND 조건2
    
SELECT 칼럼1, 칼럼2 FROM (SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 조건1) 별칭 WHERE 조건2
 데이타 편집

'SQL Server' 카테고리의 다른 글

오브젝트 - Table (테이블)  (0) 2013.02.27
추가,업데이트,삭제  (0) 2013.02.26
그룹화 함수  (0) 2013.02.26
함수  (0) 2013.02.26
연산자  (0) 2013.02.26
SELECT COUNT(*) FROM 테이블명               /* 전체 데이타의 갯수 가져오기 */
   
SELECT COUNT(칼럼) FROM 테이블명           /* NULL은 제외한 칼럼의 데이타 갯수 가져오기 */
   
SELECT SUM(칼럼) FROM 테이블명              /* 칼럼의 합계 구하기 */
   
SELECT MAX(칼럼) FROM 테이블명              /* 칼럼의 최대값 구하기 */

SELECT MIN(칼럼) FROM 테이블명              /* 칼럼의 최소값 구하기 */

SELECT AVG(칼럼) FROM 테이블명              /* 칼럼의 평균값 구하기 */
  
--GROUP BY문--
SELECT 칼럼 FROM 테이블명 GROUP BY 칼럼   
   
SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 GROUP BY 칼럼1
   
SELECT 칼럼1, COUNT(*) FROM 테이블명 GROUP BY 칼럼1
   
SELECT 칼럼1, 칼럼2, MAX(칼럼3) FROM 테이블명 GROUP BY 칼럼1, 칼럼2
    
** GROUP BY를 지정한 경우 SELECT 다음에는 반드시 GROUP BY에서 지정한 칼럼 또는
       그룹 함수만이 올 수 있다

'SQL Server' 카테고리의 다른 글

추가,업데이트,삭제  (0) 2013.02.26
조건  (0) 2013.02.26
함수  (0) 2013.02.26
연산자  (0) 2013.02.26
데이타 검색  (0) 2013.02.26
--1.수치 함수--
     ROUND(수치값, 반올림위치)            /* 반올림 및 자르기 */
     ABS(수치 데이타)                     /* 절대값 */   
     SIGN(수치 데이타)                    /* 부호 */
     SQRT(수치값)                         /* 제곱근 */
     POWER(수치값, n)                     /* n승 */
--2.문자열 함수 정리--
 
1)  Ascii() - 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer)
예) SELECT Ascii('abcd')
    >>  결과는 a의 아스키 코드값인 97 반환
 
2) Char() - 정수 아스키 코드를 문자로 반환(Char)
예) SELECT Char(97)
      >> 결과는 a 반환
 
3) Charindex() - 문자열에서 지정한 식의 위치를 반환
예)  SELECT Charindex('b','abcde')   >> 결과 : 2
     SELECT Charindex('b','abcde',2) >> 결과 : 2
     SELECT Charindex('b','abcde',3) >> 결과 : 0 
        --인수값이 3개일때 마지막은 abcde 에서의 문자열 검색 시작위치를 말하며
        --2인경우는 bcde 라는 문자열에 대해서 검색
        --3인 경우는 cde 라는 문자열에 대해서 검색 하게 된다.
 
4) Difference() - 두 문자식에 SUONDEX  값 간의 차이를 정수로 반환
예)  SELECT Difference('a','b')
 
5) Left() - 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환
예)  SELECT Left('abced',3)       결과 >> 3
 
6) Len() - 문자열의 길이 반환
예) SELECT Len('abced')         결과>>5
 
7) Lower() - 대문자를 소문자로 반환
예) SELECT Lower('ABCDE')    결과 >> abcde
 
8) Ltrim() - 문자열의 왼쪽 공백 제거
예)  SELECT Ltrim('   AB  CDE')    결과>> AB CDE
 
9)Nchar()  - 지정한 정수 코드의 유니코드 문자 반환
예)  SELECT Nchar(20)       결과  >>  
 
10) Replace -  문자열에서 바꾸고 싶은 문자 다른 문자로 변환
예) SELECT Replace('abcde','a','1')    결과>>1bcde
 
11) Replicate()  - 문자식을 지정한 횟수만큼 반복
예) SELECT Replicate('abc',3)              결과>> abcabcabc
 
12) Reverse() - 문자열을 역순으로 출력
예)   SELECT Reverse('abcde')             결과>> edcba
 
13) Right()  - 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )
예) SELECT Right('abcde',3)                 결과>> cde
 
14) Rtrim()  - 문자열의 오른쪽 공백 제거
예) SELECT Rtrim(' ab cde  ')               결과>>  ' ab cde'  -- 공백구분을위해 ' 표시
 
15)  Space()  -  지정한 수만큼의 공백 문자 반환
예)  SELECT Space(10)                  결과 >>   그냥 공백이 나옴 

16) Substring() - 문자/이진/텍스트 또는 이미지 식의 일부를 반환
예) SELECT Substring('abcde',2,3)   -- 결과>> bcd

17) Unicode() - 식에 있는 첫번째 문자의 유니코드 정수 값을 반환
예) SELECT Unicode('abcde')             결과>> 97

18) Upper() - 소문자를 대문자로 반환
예) SELECT Upper('abcde')         결과>> ABCDE
 --날짜및 시간함수 정리--
getdate()  >> 오늘 날짜를 반환(datetime)
 
1> DateAdd()   - 지정한 날짜에 일정 간격을 + 새 일정을 반환
예) SELECT Dateadd(s,2000,getdate())
 
2> Datediff()  - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환
예)SELECT DateDiff(d,getdate(),(getdate()+31))
 
3> Datename() -지정한 날짜에 특정 날짜부분을 나타내는 문자열을 반환
예) SELECT Datename(d,getdate())
 
4> Datepart() -지정한 날짜에 특정 날짜부분을 나타내는 정수를  반환
예) SELECT Datepart(d,getdate())
 ** 돌려주는값(약어)
      Year-yy, Quarter-qq, Month-mm, DayofYear-dy, Day-dd, Week-wk, 
      Hour-hh, Minute-mi, Second-ss, Milisecond-ms
      SELECT DATEADD(dd, 7, 날짜칼럼)  
>> Datename , Datepart 은 결과 값은 같으나 반환 값의 타입이 틀림.
 
5> Day() -지정한 날짜에 일 부분을 나타내는 정수를  반환
예) SELECT Day(getdate())    -- 일 반환
    
    SELECT Month(getdate())   -- 월 반환
      
    SELECT Year(getdate())     --  년 반환     

--4. 형변환 함수--
     CONVERT(데이타 타입, 칼럼)                 /* 칼럼을 원하는 데이타 타입으로 변환 */
    
     CONVERT(데이타 타입, 칼럼, 날짜형 스타일)  /* 원하는 날짜 스타일로 변환 */
     
     CAST(칼럼 AS 데이타 타입)                  /* 칼럼을 원하는 데이타 타입으로 변환 */ 
  
 ** 스타일
      1->mm/dd/yy, 2->yy.mm.dd, 3->dd/mm/yy, 4->dd.mm.yy, 5->dd-mm-yy,
      8->hh:mm:ss, 10->mm-dd-yy, 11->yy/mm/dd, 12->yymmdd
    
SELECT CONVERT(varchar(10), 날짜칼럼, 2)

'SQL Server' 카테고리의 다른 글

추가,업데이트,삭제  (0) 2013.02.26
조건  (0) 2013.02.26
그룹화 함수  (0) 2013.02.26
연산자  (0) 2013.02.26
데이타 검색  (0) 2013.02.26

+ Recent posts