SQL Server에서 테이블의 데이터를 삭제하기 위해서는 DELETE 문을 사용하면 된다. SQL Server에서는 DELETE 문에서 조인을 하여 데이터를 삭제할 수 있으며, 서브쿼리를 사용하여 삭제할 데이터 범위를 조회하여 데이터를 삭제할 수도 있다. MERGE 문을 사용하면 INSERT, UPDATE, DELETE를 동시에 수행할 수 있다. 목차 기본적인 DELETE 방법 다른 테이블과 조인하여 DELETE 방법 서브쿼리를 사용하여 DELETE 방법 기본적인 DELETE 방법 DELETE FROM dbo.dept WHERE deptno = 40 부서(dept) 테이블에서 부서코드(deptno) "40"에 해당하는 행을 삭제하는 예제이다. DELETE dbo.dept WHERE deptno = 40..
SQL Server에서 테이블이 데이터를 수정하기 위해서는 UPDATE 문을 사용하면 된다. SQL Server에서는 UPDATE 문에서 FROM 절을 사용할 수 있어서 다른 테이블과 조인을 하여 업데이트를 할 수 있다. 조인을 사용하지 않을 경우 서브쿼리를 사용하여 여러 개의 데이터를 업데이트하면 된다. SELECT 해서 UPDATE 하는 방법은 조인 또는 서브쿼리를 사용하면 된다. 목차 기본적인 UPDATE 방법 다른 테이블과 조인하여 UPDATE 방법 서브쿼리를 사용하여 UPDATE 방법 기본적인 UPDATE 방법 UPDATE dbo.dept SET dname = 'SALES TEAM' , loc = 'TEXAS' WHERE deptno = 30 부서명(dname)과 지역명(loc)을 업데이트하는 ..
SQL Server에서 데이터를 입력하기 위해서는 INSERT 문을 사용한다. SQL Server 2008부터 여러 행을 입력할 수 있는 기능이 추가되었으며, SELECT 해서 INSERT 하는 방법으로도 여러 건의 데이터를 입력할 수 있다. INSERT와 UPDATE를 동시에 수행하기 위해서는 MERGE 문을 사용하거나 프로시저를 생성하여 사용하면 된다. 목차 기본적인 INSERT 방법 동시에 여러 행 INSERT 방법 SELECT 결과 INSERT 방법 기본적인 INSERT 방법 INSERT INTO dbo.dept (deptno, dname, loc) VALUES (50, 'IT TEAM', 'SEOUL') INSERT INTO [테이블명] ([칼럼1], [칼럼2], [칼럼3] ...) VALUES..
오라클에서 시퀀스(Sequence)의 세부 정보 및 시퀀스 리스트를 조회하기 위해서는 시스템 테이블을 사용하면 쉽게 조회할 수 있다. 시퀀스 최댓값, 캐시 사용 여부, 마지막 채번 값 등을 확인할 수 있으며 아래의 3가지 시스템 테이블을 사용할 수 있다. all_sequences 사용자 계정이 접근 가능한 모든 시퀀스 조회 user_sequences 사용자 계정에 생성된 모든 시퀀스 조회 dba_sequences 관리자(DBA) 권한으로 모든 시퀀스 조회 시퀀스 조회 방법 시퀀스명으로 조회 (세부 정보) SELECT * FROM all_sequences WHERE sequence_name = 'EMP_SEQ' 시퀀스명으로 시퀀스의 세부 생성 정보 및 현재 마지막 채번 값을 확인할 수 있다. 유저명으로 조..
SQL Server에서 칼럼의 NOT NULL 제약조건을 추가하여 NULL을 입력하지 못하게 하거나, NULL을 허용하도록 하기 위해서는 ALTER TABLE~ALTER COLUMN~ 구문을 사용하면 된다. 신규 칼럼을 추가할 때 NOT NULL 제약조건을 부여하여 추가할 수 있지만, 이미 존재하는 칼럼의 속성을 바꿀 때는 아래를 참고하면 된다. 목차 칼럼 NOT NULL 제약 조건 추가, 제거 칼럼 NOT NULL 추가 시 주의사항 칼럼 NOT NULL 제약 조건 추가, 제거 NOT NULL 추가 ALTER TABLE dbo.emp ALTER COLUMN ret_yn VARCHAR(1) NOT NULL ALTER TABLE [테이블명] ALTER COLUMN [칼럼명] [데이터타입] NOT NULL 테..
SQL Server에서 테이블의 칼럼 위치를 변경하기 위해서는 SSMS 관리 툴을 사용해야 한다. 오라클이나 MySQL처럼 쿼리문으로 칼럼의 위치를 변경할 수 없다. 칼럼의 위치를 변경하기 전에 디자이너 옵션을 변경 후 작업을 수행하는 것이 좋다. (도구 메뉴 → 옵션 → 디자이너 → 테이블을 다시 만들어야 하는 변경 내용 저장 안 함 해제) 목차 테이블 칼럼 위치 변경 방법 디자이너 설정 변경 방법 (오류 해결) 테이블 칼럼 위치 변경 방법 1. 변경할 테이블에서 마우스 오른쪽 메뉴 "디자인" 클릭 2. 위치를 변경할 칼럼을 클릭해서 드래그하여 이동시킨다 3. 상단 디스켓 모양의 "저장 버튼"을 눌러서 저장한다 디자이너 옵션을 변경하지 않았다면, 아래의 오류 메시지가 발생할 수 있다. 변경 내용을..
SQL Server에서 테이블 인덱스 정보를 조회해야 할 경우가 있다. sp_helpindex 시스템 저장 프로시저와 sys.indexes 시스템 테이블을 활용하면 인덱스 정보를 쉽게 조회할 수 있다. 아래의 2가지 방법을 사용하면 인덱스명과 인덱스 칼럼을 확인할 수 있으니 참고하면 된다. 목차 시스템 저장 프로시저로 인덱스 조회 (sp_helpindex) 시스템 테이블로 인덱스 조회 (sys.indexes) 시스템 저장 프로시저로 인덱스 조회 (sp_helpindex) EXEC sp_helpindex 'emp' EXEC sp_helpindex [테이블명] 시스템 저장 프로시저를 사용하면 인덱스명과 인덱스 칼럼을 빠르고 간편하게 조회할 수 있다. 시스템 테이블로 인덱스 조회 (sys.indexes) SE..
SQL Server에서 쿼리 문의 실행 계획을 보면 잘못된 인덱스를 타서 조회 속도가 느린 경우가 간혹 발생한다. 이럴 경우 인덱스 힌트를 강제로 부여하여 실행 계획을 바꾸면 조회 속도가 빨라지는 경우가 있다. 인덱스 힌트를 강제로 부여하는 방법은 권장하는 방법이 아니며 옵티마이저에 의한 최적의 실행 계획으로 쿼리문이 실행되도록 하는 것이 좋다. 목차 인덱스 힌트 사용법 쿼리문 실행 계획 보는 법 인덱스 힌트 사용법 SELECT * FROM emp WITH (INDEX(emp_idx01)) WHERE hiredate BETWEEN '1981-01-01' AND '1981-12-31' FROM [테이블명] WITH (INDEX([인덱스명])) 인덱스 힌트를 사용했을 경우와 사용하지 않았을 경우 쿼리문 실행..
SQL Server에서 인덱스를 생성하기 위해서는 CREATE INDEX 문을 사용한다. 인덱스를 생성한 후 변경하는 명령은 없으며 인덱스를 삭제 후 다시 생성하는 방법을 사용해야 한다. 인덱스는 클러스터형과 비클러스터형 인덱스가 있으며, 클러스터형 인덱스는 테이블에 하나만 생성이 가능하며, 비클러스터형 인덱스는 여러 개를 생성할 수 있다. 일반적인 인덱스 생성은 비클러스터형 인덱스를 생성한다고 생각하면 된다. 목차 인덱스 생성, 삭제 방법 인덱스 변경 방법 인덱스 조회 클러스터형, 비클러스터형 인덱스 인덱스 생성, 삭제 방법 인덱스 생성 CREATE INDEX emp_idx01 ON dbo.emp (hiredate) CREATE INDEX [인덱스명] ON [테이블명] ([칼럼1], [칼럼2], [칼럼..
SQL Server에서 기본 키(PRIMARY KEY)를 생성하거나 변경하기 위해서는 ALTER TABLE 문을 사용하여 제약조건을 생성하거나 삭제 후 재생성하면 된다. PK로 지정할 칼럼은 꼭 NOT NULL 속성을 가져야 하며, PK 칼럼을 변경해야 할 경우 속성 변경은 불가능하며 삭제 후 다시 생성해야 한다. 목차 PK 생성 방법 PK 변경 방법 (삭제 후 재생성) PK 삭제 방법 PK 조회 방법 PK 생성 방법 ALTER TABLE dbo.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno) ALTER TABLE [테이블명] ADD CONSTRAINT [PK제약조건명] PRIMARY KEY ([칼럼1], [칼럼2], [칼럼3] ...) PK로 지정할 칼럼은 속성이 NO..