DataBase 37

[SQL] ALTER TABLE

어려운 것도 아닌데 자꾸 깜박해서 여기에 적어 놓는다. SQL 에서는 이렇게. 1. 추가. ALTER TABLE 테이블 명 ADD 컬럼명1-1 속성을 줄때 ALTER TABLE 테이블 명 ADD 컬럼명 INT DEFAULT 0 NOT NULL -> INT형으로 NULL을 허용하지 않고 기본값은 0이라는 컬럼을 추가한다. 2. 삭제 ALTER TABLE 테이블 명 DROP 컬럼명 3. 제약조건 추가. ALTER TABLE 테이블 명 ADD CONSTRAINT 제약조건(EX : PRIMARY KEY 컬럼명) 4. 제약조건 제거 ALTER TABLE 테이블 명 DROP CONSTRAINT 제약조건(EX : PRIMARY KEY 컬럼명) 5. 컬럼명 수정 EXEC SP_RENAME '테이블명.기존컬럼명', '변..

DataBase/SQL 2013.02.13

[SQL] SELECT INTO (임시 테이블 만들기) 사용법

사용법 SELECT * FROM tableName SELECT * INTO temp_tableName(새로만들 테이블) FROM tableName 위에 사용법으로 테이블을 만들게 되면 영구적으로 테이블이 생기게 된다. 물론 DROP 명령으로 지워주면 되긴 하지만 잠시만 쓰고 지울 것이라면 굳이 영구 테이블을 만들지 않고 임시테이블을 만들어 사용하면 된다. 임시 테이블은 전역임시 테이블, 세션 임시 테이블 두개로 나뉜다. 만드는방법사용할 수 있는 범위삭제되는 시기일반 테이블CREATE TABLE다른 세션에서도DROP TABLE세션 임시 테이블 #tablename 해당 세션에서만 세션이 끊어질 때 전역 임시 테이블 ##tablename 다른 세션에서도 세션이 끊어질 때 tempdb의 일반 테이블 CREATE..

DataBase/SQL 2013.02.13

[SQL] 동적쿼리

금번 작업을 하면서 고민을 하게 만드는 요청을 받았다. 요청 사항을 정리하면 1. 정렬 DB에서 한다.1-1. 정렬할 대상(컬럼)은 서버로 부터 전달 받는다.1-2. 정렬할 대상(컬럼)에 대해서 오름/내림 차순에 대한 결정도 서버로 부터 받는다. 2. 일정 갯수만을 반환한다.2-1. 페이지 개념을 적용한다. 2-2. 정렬된 값에서 요청 받은 페이지의 약속된 열만큼을 반환해야 한다. ※ 이 글을 읽는 분들은 더 좋은 해답이 있다면 언제든 조언을 부탁드립니다. 일단 서버로 부터 받는 인자는 @정렬기준(대상컬럼) TINYINT, @정렬방법(오름/내림) TINYINT, @페이지크기 INT, @페이지넘버 INT를 받는다. 동적쿼리는 문자열을 만들어서 그것을 실행(EXEC) 하는 것이기 때문에 지역 변수들은 NVA..

DataBase/SQL 2013.02.13

[SQL] IN구문 사용기

얼마전 어느 정도 분량의 데이터를 삽입해줘야 하는 상황이 발생했다.문제는.... 1. 대상 테이블이 IDENTITY가 걸려 있다. 2. 이미 기존에 들어가 있는 데이터가 존재한다. 3. 넣어야 할 데이터가 다른 DB(ORACLE)에 존재한다. 잠시 생각해 보니 DB가 오라클에서 MS로 변경된 걸 모르고 오라클에 신규 데이터를삽입한 사람의 멱을 잡을 수 없으니 일단 변경된 리스트를 받는 선에서 끝내기로 하고어떻게 손쉽게 할 수 있을까를 생각하니. 쓸만한 것이 IN 구문. ※ 더 손쉬운 방법이 있다면 이 글을 보시는 분이라면 누구든 알려주세요. IN 구문의 사용법은 간단하다 다음과 같은 문법을 가진다. SELECT * FROM 테이블명 WHERE 조건을 걸 대상 컬럼 IN ( '값1', '값2', '값3',..

DataBase/SQL 2013.02.13

[SQL] DB복구후 DB와 사용자 매핑

1. 사용자 생성 Microsoft SQL Server Management Studio 실행> 데이터베이스 > 보안 > 로그인 (속성) > 새로그인 - 로그인이름 (계정)- 'SQL Server 인증' 의 암호- '암호정책 강제 적용' 체크 안함- '암호만료 강제 적용' 체크 안함- 기본데이터베이스 : 사용할 DB선택[확인] 선택 ※ 참고 : DB에 권한을 가진 사용자가 있습니다. > 데이터베이스 > [DB명] > 보안 > 사용자에서 확인이 가능하며 이 사용자명으로 생성하시면 됩니다. 만약 이곳에 사용자가 없을 경우 임의로 사용자를 아무거나 만듭니다. 사용자 이름 : neulwon // 접근 허용할 계정 로그인 이름 : neulwon // 접근 허용할 계정 기본 스키마 : dbo 이사용자가 선택한 스키마..

DataBase/SQL 2013.02.13

[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

[Oracle Database] MSSQL 날짜 변환

오라클에서는 TO_CHAR()을 사용해서 문자열로 변환이 가능했다. 상당히 유용하며,날짜를 변환할때 많이 사용했었다. TO_CHAR(SYSDATE,'YYYY-MM-DD') -> 2013-01-14TO_CHAR(SYSDATE,'YYYY/MM/DD') -> 2013/01/14 TO_CHAR(SYSDATE,'YYYYMMDD') -> 20130114 MSSQL에서는 CONVERT(VARCHAR(10),GETDATE(),120) -> 2013-01-23 CONVERT(VARCHAR(10),GETDATE(),111) -> 2003/01/23 CONVERT(VARCHAR(8),GETDATE(),112) -> 20030123 와 같이 사용할 수 있다. 120, 111, 112은 날짜 표현으로 위와 같은 방식으로 날짜를..

DataBase/Oracle 2013.02.13