DataBase/SQL 20

[SQL] 컬럼 속성 변경

ms-sqlserver에서 table 또는 필드 속성변경은 alter문을 사용하여 합니다. alter table table명 alter column 필드명 datatype ex) test table의 fld필드를 varchar -> int로 변경 alter table test alter column fld int 참고) 실제 입력 되어있는 자료중 int형식으로 변경할 수 없는 경우 (''aaa''값과 같이)에는 sqlserver는 에러를 냅니다. alter table table명 add 필드명 datatype ex) test table의 fld1을 varchar 데이타타입 8자리로 추가하는 경우 alter table test add fl..

DataBase/SQL 2013.02.13

[SQL] ISNULL()함수 사용법

NULL을 지정된 값으로 변환한다. 지난 번에 Oracle에서 이와 같은 기능을 하는 NVL을설명한 적이 있는데, NVL과 동일한 기능을 수행하는 SQL 함수가 ISNULL 이다. SQL Server에서는 ISNULL ( check_expression , replacement_value ) Oracle에서는 NVL ( check_expression , replacement_value ) [출처] SQL 함수의 모든것 3- 변환 함수(ISNULL / NVL) |작성자 사랑지기 참고로 ISNULL도 뷰가 존재하지 않는 대상에 대해서는 0으로 값을 치환하지 못하기 때문에,ISNULL(MAX(컬럼), 0) 과 같이 집계함수를 같이 사용하면 없는 값에 대해서 뷰를 만들어 반환을가능하게 해준다. 집계함수의 사용은 ..

DataBase/SQL 2013.02.13

[SQL] DISTINCT와 PARTITION BY구문 사용법

흠... 예를 들어서 회원의 거주 지역 테이블이 있다고 가정해보면 다음과 같은 테이블이 존재 할 수 있다. 거주지-----서울경기경기서울경남전남경기 7개의 행이라면 지역을 파악하는데 어려움이 없지만, 기본적으로 DB에 저장되는 회원의수는 수 만이 넘어갈 것이기에 이 경우는 Order by 절을 사용한다고 해도 답이 안나온다. 이 경우 SELECT DISTINCT 거주지 FROM 테이블;과 같이 하면, 다음과 같은 결과를 얻을 수 있다. 거주지------서울경기경남전남 이와 같은 효과로 GROUP BY로 낼 수 있다.SELECT 거주지 FROM 테이블 GROUP BY 거주지;와 같이 한다면 말이다. 이 차이점은... 흠 좀 더 알아봐야 겠다. PARTITION BY는 DISTINCT를 무시한다.해서, 테이..

DataBase/SQL 2013.02.13

[SQL] between구문 사용법

작업을 하다가 생각나는 것을 바로바로 포스팅 하다 보니 참 두서가 없다. select 문을 사용하던 중, 일정 범위 내의 값을 가져와야 하는 상황이 있었다.그럴때 사용할 수 있는 문법이 between 이다. 예시) SELECT 컬럼1, 컬럼2 FROM TEST_TABLE WHERE ID = 1111 AND 컬럼1 BETWEEN 9 AND 13; 또는 SELECT 컬럼1, 컬럼2 FROM TEST_TABLE WHERE 컬럼1 BETWEEN 100 AND 300; 이런 식으로 사용할 수 있다.

DataBase/SQL 2013.02.13

[SQL] Group by 컬럼 사용 팁

쿼리를 작성하다가 다음 같은 오류를 만났다. SQL Error : ORA-00979 : GROUP BY 표현식이 아닙니다[출처] Group by 팁 - 에러 : SQL Error : ORA-00979 : GROUP BY 표현식이 아닙니다.|작성자 최환수 이 오류는 집계 함수를 사용할 때, 집계 함수에 쌓이지 않는 컬럼들은 전부 group by 리스트에있어야 하는데 ... 이 중에 빠진게 있다는 말이 되겠다. ( 집계 합수 : sum(), count()... 등등 ) 다음의 예를 들어 보면 쉽게 이해가 될 것이라 사료된다. SELECT a.ID, a.column1, sum(NVL(b.VALUE, 0))FROM TEST_TABLE a LEFT JOIN TEST_TABLE b ON ( a.ID= b.ID AN..

DataBase/SQL 2013.02.13

[SQL] select쿼리 사용시 유용한 like구문 사용법

select 필드1 from 테이블 where 필드2 like '단어%' 라고 실행을 하면 앞자리에 단어가 포함된 값을 찾아 온다. example1 쿼리 - select 유저이름, 전화번호 from 유저정보테이블 where 유저이름 like '홍%' 결과 홍길동 010-xxx-xxxx 홍아무개 010-xxx-xxxx example2 쿼리 - select 유저이름, 전화번호 from 유저정보테이블 where 유저이름 like '%길%' 결과 홍길동 010-xxx-xxxx 김길동 010-xxx-xxxx 다음과 같은 결과를 얻을 수 있다.

DataBase/SQL 2013.02.13