2014.01.21 09:02
 


 

1. 날짜에 대한 함수

 

○ GETDATE

  - 현재 날짜와 시간을 구한다.

  - SELECT GETDATE() --> 2007-12-12  22:21:35.056 이런식으로 나온다.

○ DATEADD

  - datapart 부분에 number 값을 더한다. (datepart, number, date)

○ DATEDIFF

  - 두 날짜 사이의 datepart 값

○ DATENAME

  - date 에 대한 datepart 를 이름으로 돌려준다.

  - SELECT DATENAME(dw, GETDATE()), DATENAME(mm, GETDATE()) --> 화요일, 12

○ DATEPART

  - date 에 대해 지정된 datepart 를 돌려준다.

  - SELECT DATEPART(mm, GETDATE()) --> 12

○ DAY

  - DATEPART(DAY, date) 와 같다.

○ MONTH

  - DATEPART(MONTH, date) 와 같다.

○ YEAR

  - DATEPART(YEAR, date) 와 같다.

 

* DATEPART 사용법

yy - year (1753~9999)

mm - month (1~12)

dd - day (1~31)

dw - weekday 요일 (1~7) 1 : 일요일

hh - hour (0~23)

mi - minute (0~59)

ss - second (0~59)

ms - millisecond (0~999)

 

'Database(디비) > MSSQL' 카테고리의 다른 글

MSSQL 날짜에 대한 함수  (0) 2014.01.21
MSSQL 문자에 대한 함수  (0) 2014.01.21
MSSQL 소수점 함수  (0) 2014.01.20
MSSQL Oracle NVL 기능과 동일한 함수  (0) 2014.01.08
MSSQL 암호화( pwdencrypt, pwdcompare )  (0) 2013.12.12
MSSQL SQL이란 무엇인가?  (0) 2013.12.06
 
 
Posted by 대학교닷컴 대학교닷컴
2014.01.21 09:01
 


 

1. 문자에 대한 함수

 

○ LEFT

  - 왼쪽에서부터 주어진 길이만큼의 잘라낸다.

○ LEN

  - 주어진 문자의 길이

○ LOWER

  - 소문자로 변환한다.

○ LTRIM

  - 왼쪽에 있는 빈칸을 삭제한다.

○ REPLACE

  - 문자열중에서 특정 문자를 지정한 문자로 바꾼다.

○ RIGHT

  - 오른쪽에서부터 주어진 길이만큼 잘라낸다.

○ RTRIM

  - 오른쪽에 있는 빈칸을 삭제한다.

○ SPACE

  - 빈칸을 지정한다.

○ STR

  - 숫자를 문자로 변환한다

○ STUFF

  - 지정한 만큼의 문자열을 지우고 새로 지정한 문자열을 삽입한다.

○ SUBSTRING

  - 지정한 길이만큼 문자열을 잘라준다.

○ UPPER

  - 대문자로 바꾼다.

 

'Database(디비) > MSSQL' 카테고리의 다른 글

MSSQL 날짜에 대한 함수  (0) 2014.01.21
MSSQL 문자에 대한 함수  (0) 2014.01.21
MSSQL 소수점 함수  (0) 2014.01.20
MSSQL Oracle NVL 기능과 동일한 함수  (0) 2014.01.08
MSSQL 암호화( pwdencrypt, pwdcompare )  (0) 2013.12.12
MSSQL SQL이란 무엇인가?  (0) 2013.12.06
 
 
Posted by 대학교닷컴 대학교닷컴
2014.01.20 20:52
 


 

MSSQL 소수점 함수

 

소수점 절사 함수 FLOOR()입니다.
사용법은 아래와 같습니다.

SELECT FLOOR(10.1234)

 


쿼리 실행 후 결과 : 10

 

1. 숫자에 대한 산술적 연산 함수

○ CEILING

  - 올림이다. 천장이란 뜻

○ FLOOR

  - 버림이다. 마루라는 뜻

○ RAND

  - 0과 1 사이의 임의의 부동 소수점 수. 랜덤한 숫자를 구할 때 쓴다.

○ ROUND

  - 반올림이다.

 

'Database(디비) > MSSQL' 카테고리의 다른 글

MSSQL 날짜에 대한 함수  (0) 2014.01.21
MSSQL 문자에 대한 함수  (0) 2014.01.21
MSSQL 소수점 함수  (0) 2014.01.20
MSSQL Oracle NVL 기능과 동일한 함수  (0) 2014.01.08
MSSQL 암호화( pwdencrypt, pwdcompare )  (0) 2013.12.12
MSSQL SQL이란 무엇인가?  (0) 2013.12.06
 
 
Posted by 대학교닷컴 대학교닷컴
2014.01.08 16:50
 


 

MSSQL Oracle NVL 기능과 동일한 함수


isnull(field_name, "원하는 문자, 또는 숫자")

coalesce

 
 
Posted by 대학교닷컴 대학교닷컴
2013.12.12 13:25
 


 

암호화( pwdencrypt, pwdcompare )

 

CREATE TABLE [dbo].[test_encrypt](
 [ussn1] [varchar](50) NULL,
 [ussn2] [varbinary](max) NULL,     --자료형 확인
 )

 

decalre @ussn1 int

decalre @ussn2 int

 

set @ussn1 = 830325

set @ussn2 = 1111111

 

 

insert into  test_encrypt (ussn1, ussn2)

values (@ussn1,pwdencrypt(@ussn2))

 

select * from test_encrypt

where pwdcompare('1111111',ussn2) =1  --참이면 1

 

pwdencrypt 는 복호화가 없으며 값의 비교만 pwdcompare으로 가능.

 
 
Posted by 대학교닷컴 대학교닷컴
2013.12.06 10:47
 


 

SQL 이란 무엇인가?

 

SQL(S-Q-L 로 각 문자를 따로 발음하거나 붙여서 SEQUEL, 즉 시퀄이라고 발음 함)은 Structured Query Language(구조적 쿼리 언어)의 약자이다.

SQL 은 데이터베이스와의 통신을 위해 특별히 고안된 언어이다.

 

영어나 한국어, 또는 Java나 Visual Basic과 같은 프로그래밍 언어와는 달리 SQL 은 단지 몇 개의 단어로만 구성된다. 한가지 분명한 목적, 즉 데이터베이스에서 데이터를 읽고 데이터베이스에 데이터를 쓰기 위한 용도로 만들어졌기 때문이다.

 

SLQ이 가진 장점?

1. SQL은 특정한 데이터베이스 회사에서만 사용하는 점유물이 아니다. 대부분의 DBMS에서 SQL을 지원하므로 한 언어를 배워 모든 데이터베이스에서 활용할 수 있다.

 

2. SQL은 배우기 쉽다. 각 문은 이해가 쉬운 영어 문장과 닮아 있으면 많지도 않다.

 

3. 간단하지만 매우 강력한 언어이다. 효과적으로 각 요소를 사용하면 매우 복잡하고 정교한 데이터베이스 작업을 수행할 수 있다.

 
 
Posted by 대학교닷컴 대학교닷컴
2013.12.04 17:29
 


 

기존 데이터 컬럼에 있는 날짜 지우고 NULL 값 넣기

 

UPDATE 사용 방법입니다.

UPDATE ['테이블 명'] SET ['컬럼 명'] = '['수정할 데이터 값']' WHERE ['컬럼 명'] = ['기본 데이터 값']

 

select * from 테이블명

where 1=1
and user_id in ( '조건1, '조건2')


select top 10 * from 테이블명

where 1=1
and crd_ord_code in ('조건1','조건2')

 

begin tran
update 테이블명

set pmt_wdate = NULL
where crd_ord_code = '조건1'
rollback

 

 

 

 
 
Posted by 대학교닷컴 대학교닷컴
2013.11.26 13:18
 


 

SQL 서브쿼리에 대해

 

SELECT 에 사용되는 서브쿼리의 특징과 주의점

SELECT 절에 사용하는 서브쿼리는 스칼라 서브쿼리라고 합니다.

SELECT 절에 기술하였으므로 결과에 대한 검색이됩니다.

따라서 해당 서브쿼리의 반환 행의 개수도 반드시 0 또는 1이어야 합니다.

보통 스칼라서브쿼리의 경우  기준정보 성격의 마스터테이블에 주로 활용합니다.

이는 보통 코드에 맞는 명칭을 검색할때 주로 사용한다고 보시면 됩니다.

 

FROM 에 사용되는 서브쿼리의 특징과 주의점

FROM절에 사용하는 서브쿼리는 인라인뷰라고 합니다.

보통 Query의 재정의라고 하는데요. 원시정보에 대해 어떤 결과를 만들기 위해서

원시데이터를 가공하여 새로운 형태의 정보를 만들어 내어 이를 기준으로

FROM절을 재정의하여 만들어 나가게 됩니다.

아래처럼 예처럼 단순하게 부분적인 컬럼 발취나 * 를 통한 인라인뷰는 큰 효과를 얻을수 없습니다.

FROM ( SELECT * FROM 테이블 )

FROM ( SELECT 이름,전화 FROM 테이블 WHERE 조건절)

 

WHERE 에 사용되는 서브쿼리의 특징과 주의점

보통 Filter Subquery라고 합니다.

상수값이 아닌 어떤 그룹에 속하는 2이상의 정보를 조건으로 활용하고자 할때 사용됩니다.

조건식에 in 이나 Exists 등의 구문에 주로 활용됩니다.

주의사항은 불필요한 Sacan으로 I/O 속도 저하를 가져올수 있습니다.

특히 Exists 구문에 할용된 서브쿼리의 경우 SELECT 절에 특정 컬럼을 정의하실 필요없습니다.

예) 바른예

~~

FROM 테이블1 a

WHERE Exists ( SELECT'*'

                 FROM 테이블2 b

                WHERE b.컬럼 = a.컬럼 )

예) 틀린예

~~

FROM 테이블1 a

WHERE Exists ( SELECT*

                 FROM 테이블2 b

                WHERE b.컬럼 = a.컬럼 )

 

from절을 이용하여 카운트 구하기
select X.ord_code
,  isnull (A ,0 )  +   isnull (B ,0 )  +  isnull (C ,0 )  AS TOT
,  isnull (A ,0 ) A
,  isnull (B ,0 ) B
,  isnull (C ,0 ) C

from Xtendus.DT_Frm_order X ,
(
 select ord_code, count(*) as A
 from Xtendus.DT_Frm_order_item
 where 1=1
 and ord_state = '0'
 group by ord_code
)  A ,
(
 select ord_code, count(*) as B
 from Xtendus.DT_Frm_order_item
 where 1=1
 and ord_state = '1'
 group by ord_code
)  B  ,
(
 select ord_code, count(*) as C
 from Xtendus.DT_Frm_order_item
 where 1=1
 and ord_state = '2'
 group by ord_code
) C
WHERE  X.ord_code *= A.ord_code
and X.ord_code *= B.ord_code
and X.ord_code *= C.ord_code


 

 
 
Posted by 대학교닷컴 대학교닷컴
2013.11.20 09:36
 


 

with (nolock) 란?


SQL Server의 기본 격리 수준(isolation level)은 read committed 입니다. 그래서 데이터를 읽을 때는 공유 잠금이 유지됩니다. 그러므로, 쉽게 설명하자면 SELECT문이 실행 중인 동안에 같은 row혹은 table에 insert나 update하는 작업은 block됩니다. 거꾸로 같은 row, data page 혹은 테이블에 데이터를 insert, update하는 동안 SELECT문은 block되게 됩니다. 이렇게 되면 데이터베이스 성능이 현저히 떨어지게 됩니다. 그러므로 일반적으로 단순 조회 쿼리에는 with (nolock)문을 추가하여 사용합니다.

 

ex) SELECT * FROM MEMBER with (nolock)

 


 

 
 
Posted by 대학교닷컴 대학교닷컴
2013.11.01 15:26
 


 

MS-SQL 날짜 변환 함수

 

1. SYSDATE -> GETDATE()
 
SQL Server에서 DB 서버의 현재 시간을 구하는 함수는 GETDATE() 입니다
 
2. TO_CHAR -> CONVERT(varchar,datetime,number)
 
SELECT CONVERT(varchar,reg_date,23) AS regDate FROM test_table;
 
위와 같이 변환할 수 있구요
 
아래는 Date형 변환시 Convert 함수의 사용예입니다.
 
CONVERT(VARCHAR(20), GETDATE(), 0) /*07 15 2010 1:54PM */
CONVERT(VARCHAR(20), GETDATE(), 1) /*07/15/15 */
CONVERT(VARCHAR(20), GETDATE(), 2) /*10.07.15 */
CONVERT(VARCHAR(20), GETDATE(), 3) /*15/07/15 */
CONVERT(VARCHAR(20), GETDATE(), 4) /*15.07.10 */
CONVERT(VARCHAR(20), GETDATE(), 5) /*15-07-10 */
CONVERT(VARCHAR(20), GETDATE(), 6) /*15 07 10 */
CONVERT(VARCHAR(20), GETDATE(), 7) /*07 15, 10 */
CONVERT(VARCHAR(20), GETDATE(), 8) /*13:54:20 */
CONVERT(VARCHAR(20), GETDATE(), 9) /*07 15 2010 1:54:20: */
CONVERT(VARCHAR(20), GETDATE(), 10) /*07-15-10 */
CONVERT(VARCHAR(20), GETDATE(), 11) /*10/07/15 */
CONVERT(VARCHAR(20), GETDATE(), 12) /*100715 */
CONVERT(VARCHAR(20), GETDATE(), 13) /*15 07 2010 13:54:20: */
CONVERT(VARCHAR(20), GETDATE(), 14) /*13:54:20:790 */
CONVERT(VARCHAR(20), GETDATE(), 20) /*2010-07-15 13:54:20 */
CONVERT(VARCHAR(20), GETDATE(), 21) /*2010-07-15 13:54:20. */
CONVERT(VARCHAR(20), GETDATE(), 22) /*07/15/15 1:54:20 PM */
CONVERT(VARCHAR(20), GETDATE(), 23) /*2010-07-15 */
CONVERT(VARCHAR(20), GETDATE(), 24) /*13:54:20 */
CONVERT(VARCHAR(20), GETDATE(), 25) /*2010-07-15 13:54:20. */
CONVERT(VARCHAR(20), GETDATE(), 100) /*07 15 2010 1:54PM */
CONVERT(VARCHAR(20), GETDATE(), 101) /*07/15/2010 */
CONVERT(VARCHAR(20), GETDATE(), 102) /*2010.07.15 */
CONVERT(VARCHAR(20), GETDATE(), 107) /*15/07/2010 */
CONVERT(VARCHAR(20), GETDATE(), 104) /*15.07.2010 */
CONVERT(VARCHAR(20), GETDATE(), 105) /*15-07-2010 */
CONVERT(VARCHAR(20), GETDATE(), 106) /*15 07 2010 */
CONVERT(VARCHAR(20), GETDATE(), 107) /*07 15, 2010 */
CONVERT(VARCHAR(20), GETDATE(), 108) /*13:54:20 */
CONVERT(VARCHAR(20), GETDATE(), 109) /*07 15 2010 1:54:20: */
CONVERT(VARCHAR(20), GETDATE(), 110) /*07-15-2010 */
CONVERT(VARCHAR(20), GETDATE(), 111) /*2010/07/15 */
CONVERT(VARCHAR(20), GETDATE(), 112) /*20100715 */
CONVERT(VARCHAR(20), GETDATE(), 113) /*15 07 2010 13:54:20: */
CONVERT(VARCHAR(20), GETDATE(), 114) /*13:54:20:807 */
CONVERT(VARCHAR(20), GETDATE(), 120) /*2010-07-15 13:54:20 */
CONVERT(VARCHAR(20), GETDATE(), 121) /*2010-07-15 13:54:20. */
CONVERT(VARCHAR(20), GETDATE(), 126) /*2010-07-15T13:54:20. */
CONVERT(VARCHAR(20), GETDATE(), 127) /*2010-07-15T13:54:20. */
CONVERT(VARCHAR(20), GETDATE(), 130) /* 2 ???? ?????? 1431 */
CONVERT(VARCHAR(20), GETDATE(), 131) /* 2/04/1431 1:54:20: */


 

 
 
Posted by 대학교닷컴 대학교닷컴

티스토리 툴바