컨텐츠 내 위젯


SQL문 정리 프로그래밍 상식

===== 정의어 DDL  ==========================================

1.CREATE 문 (TABLE, VIEW.....)

CREATE TABLE 테이블명 {
   이름: CHAR(8),
   나이: INT,
   지역코드: CHAR(8),
   생년월일:DATE,
   성별: CHAR(8),
   PRIMARY KEY(이름), UNIQUE(생년월일),
   FOREIGN KEY(지역코드) REFERENCES 대한민국지역(지역코드)
   ON DELETE SET NULL,
   ON UPDATE CASCADE,
   CHECK (나이 >= 19)
}

- 테이블명에 해당하는 테이블을 생성한다. (CREATE)
- 테이블은 이름, 나이, 지역코드, 생년월일의 속성을 가진 튜플들로 구성된다. 
- 기본키는 이름이고, 생년월일은 중복되지 않는다.(PRIMARY KEY, UNIQUE)
- 외래키는 지역코드이며 대한민국지역 테이블의 지역코드를 참조한다. (FOREGIN KEY, REPRENCES)
- 내용 삭제시 참조한 테이블의 내용을 NULL로 만든다. (ON DELETE SET NULL)
- 내용 수정시 참조한 테이블 또한 같이 수정된다. (ON UPDATE CASCADE)
- 내용 추가 및 수정시엔 반드시 나이가 19살 이상이어야 한다. (CHECK)



2. ALTER 문 (TABLE 만 가능)

ALTER TABLE 학생 ADD 학년 VARCHAR(3);
학생 테이블에 학년이란 문자변수형을 가진 속성을 추가한다.

ALTER TABLE 학생 MODIFY 학년 '1학년' NOT NULL
학생 테이블에 학년속성의 기본값을 1학년으로 하고 NULL이 될 수 없도록 한다.

ALTER TABLE 학생 ADD FOREIGN KEY (지역코드) REFERENCES 대한민국지역(지역코드) ON DELETE CASCAED
학생 테이블에 지역코드라는 대한민국지역의 지역코드를 참조하는 왜래키를 추가하는데 삭제 할때 둘 다 삭제되도록 한다.



3. DROP 문 (TABLE, VIEW...)

DROP TABLE 학생 [CASCADE | RESRICT | SET NULL | SET DEFAULT]

*** 참조 제약조건 정리
CASCAED :: 둘 다 영향이 가도록 한다
RESRICT:: 금지시킨다
SET NULL :: 원본 쪽을 NULL 로 만든다
SET DEFAULT :: 원본 쪽을 기본값으로 만든다.
*** 참조 제약조건 정리



===== 조작어 DCL  ==========================================

4. SELECT 문

SELECT 학생 WHERE 점수>= 90 FROM 성적표 GROUP BY 나이;
- 성적표에서 점수가 90점 이상인 학생을 나이별로 데이터를 묶는다.
  ** 이걸 테이블로 표현하기엔 어중간한데 묶인 데이터 자체는 메모리에 존재하지만 이걸 한번에 눈으로 표시하진 않는다. 그냥 데이터 덩어리 라고 생각하면 된다.

SELECT 학생, AVG(점수) AS 평균 WHERE POINT >= 90 FROM 성적표 GROUP BY 나이 ORDER BY DESC;
- 각 나이별로 점수가 90점 이상인 학생들 중 평균을 모아 '평균'속성을 가진 테이블로 내림차순으로 나타낸다. 

SELECT 학생, AVG(점수) AS 평균 WHERE POINT >= 90 FROM 성적표 GROUP BY 나이 HAVING 성별='여자' ORDER BY DESC;
- 각 나이별로 점수가 90점 이상인 학생들 중 평균을 모은 다음 그 모은것들 중 여자만 골라 '평균'속성을 가진 테이블로 내림차순으로 나타낸다. 
  ** WHEN 그룹화 하기 전, HAVING 그룹화 한 다음 그 그룹별로.

** 확장 조건

'%' 와일드카드(모든문자)
'_' 와일드카드(한자리문자)
DISTINCT 중복제거
EXISTS 결과가 존재하면 참
<> 같지 않다
UNION 합집합 중복제거
UNION ALL 합집합 중복허용



5. INSERT 문

INSERT INTO 성적표(이름, 학과) VALUES('홍길동','사회복지과')



6. DELETE 문

DELETE FROM 성적표 WHERE 이름='홍길동';



7. UPDATE 문

UPDATE 성적표 SET 학과='유아교육과' WHERE 이름='성춘향';



===== 제어어 DML  ==========================================

8. GRANT/ REVOKE 문

GRANT 권한종류 ON 테이블명 TO 사용자명 [WITH GRANT OPTION]
사용자에게 테이블의 어떠한 권한종류를 부여한다 [써 있을 경우 권한을 남한테 줄 수 있다]


덧글

댓글 입력 영역