SQLP 2-3 관리구문 문제풀이

박준우·2024년 7월 22일

CREATE TABLE 문과 제약조건 설정


create table 테이블명 
	(속성명 데이터타입 [DEFALT 기본값] [NOT NULL],[PRIMARY KEY(col1, col2)]
    										  [UNIQUE (col1, B)] -- 후보기
    										  [FOREIGN KEY(A, B)]
											      REFERENCES 참조T(참조속성)
												  [ON DELETE 옵션][ON UPDATE 옵션]
      										  [CONSTRAINT PK명 PRIMATY KEY (PK속성)]
                                              [CHECK(조건문)]
문제유형  1. on update/delete                  
on update : 참조(1쪽원본) 테이블 값이 수정되었을 때 기본(M쪽)이 해야할 action지정
on delete : 참조(1쪽원본) 테이블 값이 삭제되었을 때 기본(M쪽)이 해야할 action지정

옵션: no action, cascade, set null, defalt
cascade :참조테이블속성이 변경되면 기본테이블 속성도 같이 변경
set null: 참조테이블 속성이 변경되면 기본테이블 속성도 null로 변경
defalt: 참조테이블 속성이 변경되면 기본테이블 속성도 defalt값으로 변경

문제유형 2. 테이블 명 특수문자는 _ $ #만 사용가능

문제유형 3. UNIQUE 카는 NULL이 허용된다. 

문제유형 4. PK는 1개만 존재하나 구성속성은 2개이상이 가능하다.

문제유형 5. FK는 NULL이 허용된다. 

문제유형 6. SQLSERVER는 ALTER TABLE시 복수컬럼을 변경할 수 없다. 
오라클 ex)
ALTER TABLE T1 MODIFY COLUMN (col1 varchar2 not null, col2 varchar2)
이 때 "반드시 모든 제약조건을 다시 명시"해야한다. (일부만 하면 그 일부로 변환된다.)

문제유형 7. 제약조건 설정 예시(1) Create table 이용, [RANDOM pk명, 지정 pk명] (2) alter 이용 
(1) random pk명 사용
create table (ID VARCHAR2(10), PRIMARY KEY )

(2) 지정 pk명 사용(PK_1)
create table (ID VARCHAR2(10), 
			  constraint PK_1 PRIMARY KEY(ID))
(3) alter table 사용(PK_1)
alter table ID column add constraint PK_1



PK, FK와 참조무결성(참조동작)

삭제구문

삭제구현
CASCADE부모삭제시 자식도 삭제
SET NULL부모삭제시 자식 NULL
SET DEFALT부모삭제시 자식 DEFALT
RESTRICT자식에게 PK값이 없을 때만 삭제허용

입력구문

입력구현
AUTOMATICPK가 없을 때 자동 PK테이블에 데이터 생성 후 FK를 입력
DEPENDENTPK가 존재할 때만 FK에 데이터 입력 가능
SET NULLPK가 없을 때 자식 NULL처리
SET DEFALTPK가 없을 때 자식 DEFALT로 입력

키의 종류

1. PK, 2. FK, 3. 슈퍼키(unique존재 모두[pk, unique]) 4. 후보키(unique)

TOP (N)쿼리 사용법

가장 높은것 3개 골라내는 것.

select top(3) with ties col1, col2
from 성적
order by 승리건수 desc;

1. with ties
3위가 3명이면 , 중복된 3명도 출력 => 5건 출력

2. order by
order by를 빠뜨리면, 결과는 같아도, 출력순서가 다르다.
profile
DB가 좋아요

0개의 댓글