into 생략 가능, 속성을 명시하지 않으면 테이블 생성시 정의한 컬럼순서와 동일한 순서로 입력함
insert into 테이블명 [속성명1..] values 값
서브쿼리의 결과를 테이블에 삽입함
한 번에 여러 튜플을 넣을 수 있음
insert into 테이블
(subquery)
from 테이블에 조건에 맞는 리스트를 대상테이블로 생성
select 컬럼리스트 into 대상테이블
from 테이블 where 조건
구조만 복사하고 튜플은 복사하고 싶지 않은 경우
where 조건에 항상 거짓이 되는 조건을 기술함
select * into 대상테이블명
from 복사할테이블 where 1 > 2
exec sp_help 테이블명
insert into 테이블명 values (속성값들), (속성값들)
테이블에 저장된 데이터를 수정하기 위한 조작어
update 테이블명 set 속성 = 값 [where 조건]
update 테이블명 set 속성1 = 값1, 속성2 = 값2.. [where 조건]
서브쿼리를 이용한 수정
update 테이블명 set 속성1=(select ~ from ~ where)
[where 조건]
자동 커밋 트랙잭션
명시적 트랜잭션
묵시적 트랜잭션
set implicit transactions {on|off}
트랜잭션 내의 savepoint 지정
- 트랜잭션 내의 저장점명을 다르게 하면 여러 개의 savepoint를 지정할 수 있음
save tran 저장점명
저장점 위치로 취소
<, >, <=, >=, !=, between, and
ex)
select e1.ename from employee e1, employee e2
where e1.salary > e2.salary
서브 쿼리의 결과가 여러 개의 속성들로 구성되어 주쿼리의 조건과 비교하는 서브 쿼리
개별적으로 비교한 뒤 and 연산을 이용해 최종 결과를 출력함
ex)
where dno in (select dno from employee where eno = 101)
and salary in (select salary from employee where eno = 101)
메인 쿼리절과 서브쿼리 간에 검색 결과를 교환하는 서브쿼리
서브쿼리의 where 절에 메인 쿼리의 테이블과 연결함
where table1.속성 비교연산자 (select 속성리스트
from table2
where table2.속성 비교연산자 table1 속성)
특정 속성을 기준으로 테이블 전체를 그룹으로 나누기 위한 절
select 절에는 집단연산자나 group by에 사용한 속성명만을 사용할 수 있음
select~from~where~group by 속성명
select~from~where~group by 속성명1, 속성명2,...
각 그룹에 대한 제약 조건을 기술할 때 사용
group by의 종속절이므로 group by없이는 사용 불가
select~from~where~group by 속성명 having 조건
group by절에서 그룹핑 후 각 그룹에 대한 부분합을 구하는 연산자
(group by절에 n개의 속성명이 있으면 n+1개의 그룹핑 조합이 나옴)
select~from~where~group by 속성명 with rollup
group by절에서 그룹핑 후 각 그룹의 조합에 따른 부분합을 구하는 연산자
(group by절에 n개의 속성명이 있으면 2n개의 그룹핑 조합이 나옴)
select~from~where~group by 속성명 with cube
질의 결과는 ORDER BY절을 이용하여 정렬할 수 있음
ORDER BY 정렬 기준에서 특정 등수 / 비율까지만 보고 싶은 경우
select top(n) 속성명
..
order by 속성명
동률이 있을 때 모두 보고싶은 경우
select top(n) with ties 속성명
..
order by 속성명
정렬 기준 특정 비율까지만 보고싶은 경우
- 상위 n%까지만 출력
select top(n) percent [with ties] 속성명
...
order by 속성명
각 튜플에 등수를 표시함
rank 함수 over (order by 속성명 [asc|desc])
동률에 대하여 동일 등수 배정
비연속식 등수 배정
select 속성명, rank() over(order by 속성명 [asc|desc])
연속식 등수 배정
select 속성명, dense_rank() over(order by 속성명 [asc|desc])
동률에 대하여 임의 등수 배정
- ROW_NUMBER() 함수
select 속성명, ROW_NUMBER() over(order by 속성명)
전체 튜플을 n개로 균등 분할하여 순위 지정
select 속성명, NTILE(n) over(order by 속성명)
PARTITION BY 속성명
- 튜플들을 속성값에 따라서 그룹핑함
- 각 그룹에 대하여 순위 함수를 적용함
rank() over (partition by 속성명1 order by 속성명2 [asc|desc])
# 속성명1 대로 분류하고 그 내에서 속성명2 기준 오름차순,내림차순 정렬
그룹별 특정 등수의 정보를 보고 싶은 경우
- where 절을 같이 활용
rank() over (partition by 속성명1 order by 속성명2 [asc|desc]) as 속성명
..
where 속성명 = 등수
그룹 별 집단 함수의 적용
select 집단함수 ~ group by ~
select 집단함수() over(partition by 속성명)