[SQL] sql문
# RENAME TO
RENAME OLD_TABLE TO NEW_TABLE
# DROP TABLE
ALTER TABLE (테이블명)
DROP COLUMN (삭제할 컬럼명);
ALTER TABLE EMP
DROP COMM;
# TRUNCATE TABLE
DROP TABLE 과는 달리, 테이블 자체가 삭제되는 것이 아니라 테이블 구조를 유지한 채 내용(모든 행)을 삭제
재사용이 가능한 형태로 내용물만 제거한다.
TRUNCATE TABLE PLAYER ;
DROP TABLE 은 테이블 자체가 삭제되기 때문에 테이블 구조를 확인할 수 없지만, TRUNCATE는 테이블은 있되 데이터만 삭제하는 기능이다.
DML로 분류하기도 하지만, 처리방식이나 Auto commit 특성을 가져 DDL로 분류한다.
TRUNCATE 는 부하가 적다. 하지만 Auto commit 되기 때문에 삭제 후 복구가 되지 않으므로 주의가 필요하다.
# DELETE FROM
DELETE FROM 테이블명
DROP | TRUNCATE | DELETE | |
명령어 종류 | DDL | DDL( 일부 DML성격가짐) | DML |
Rollback여부 | Rollback 불가능 | Rollback 불가능 | Commit 이전 Rollback가능 |
Commit | Auto Commit | Auto Commit | 사용자 Commit |
삭제방식 | 테이블 정의자체를 완전히 삭제 | 테이블을 최초 생성된 초기상태로 만듬 | 데이터만 삭제 |
처리속도 | 빠름 | 빠름 | 느림 |
>> DROP TABLE 과 TRUNCATE TABLE 은 로그를 남기지 않는다.
# INSERT INTO
- COLUMN명에 따른 VALUE 값 넣기
INSERT INTO 테이블명 (컬럼명,컬럼명)
VALUES (해당 컬럼에 넣을 VALUE,해당 컬럼에 넣을 VALUE)
- COLUMN 명 순서에 따른 VALUE값 넣기
INSERT INTO (테이블명)
VALUES (VALUE,VALUE,VALUE)
# UPDATE SET
UPDATE 테이블명
SET 수정할 컬럼명 = 수정할 새로운 값
# [ 중복제거 ] DISTINCT / GROUP BY
- DISTINCT 를 사용한 중복제거
SELECT DISTINCT
a.deptno
, b.dname
FROM emp a
, dept b
WHERE a.deptno = b.deptno
AND a.sal > 1500
- GROUP BY를 사용한 중복제거
SELECT a.deptno
, b.dname
FROM emp a
, dept b
WHERE a.deptno = b.deptno
AND a.sal > 1500
GROUP BY a.deptno, b.dname
# Delete ( / Modify ) Action :
- Cascade : Master 삭제 시 Child 같이 삭제
- Set Null : Master삭제 시 Child 해당 필드 Null
- Set Default : Master 삭제 시 Child 해당 필드 Default 값으로 설정
- Restrict : Child 테이블에 PK값이 없는 경우만 Master 삭제 허용
- No Action : 참조 무결성을 위반하는 삭제 / 수정 액션을 취하지 않음
# Insert Action :
- Automatic : Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력
- Set Null : Master 테이블에 PK가 없는 경우 Child 외부키를 Null값으로 처리
- Set Default : Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
- Dependent : Master 테이블에 PK가 존재할 때만 Child 입력 허용
- No Action : 참조무결성을 위반하는 입력 액션을 취하지 않음
# WHERE
- WHERE절은 FROM 절 다음에 위치
- WHERE절에서 NULL값을 사용하는경우 IS NULL / IS NOT NULL을 사용해야한다.
- 조건식구성
- 컬럼명 : 보통 조건식의 좌측에 위치
- 비교연산자
- 비교 컬럼명 : JOIN 사용시
# 비교연산자
- 연산자 우선순위
- 괄호로 묶은연산
- 부정연산자(NOT)
- 비교연산자 ( =,>,>=,<,<= ) , SQL 비교연산자 ( BETWEEN a AND B, IN, LIKE, IS NULL )
- 논리연산자 중 AND - OR 순으로 처리
- 부정비교연산자 종류
- !=
- ^=
- <>
- NOT 컬럼명 = (~와 같지 않다.)
- NOT 컬럼명 > (~ 보다 크지않다.)
# NULL 의 연산
- NULL 값과의 연산(+,-,*,/ 등) 은 NULL을 리턴
- NULL 값과의 비교연산은 거짓(FALSE)를 리턴
- 특정값보다 크다, 적다라고 표현할 수 없음
- ORACLE에서 ' ' 는 NULL로 입력되고 IS NULL로 검색
-SQL SEVER 에서는 ( WHERE 컬럼명 = ' ' ) 로조회