본문 바로가기
[2020]KIC 캠퍼스 복습/SQL(3,4)

[수업 D-12] SQL Select

by 두블두블 2020. 7. 29.

2020.07.28 (화) 3주차 2일

 

오늘은 수업 이론 부분을 간략히 정리함. 

8월 22일에 시행되는 정보처리기사 필기과정을 신청했다. 접수하기 힘들더라; 심지어 아이디도 알고보니 없어서

다시 만들고 시작하니 좀 더 오래걸려서 피말렸다. 재수없으면 자리 다차서 당진?까지 가야한다고 누가 그랬는데 ㅋㅋㅋ

 

여튼 자리는 많이 남아서 제물포 중학교 1시에 시험을 치른다. 


[정리]

-- 테이블을 작성할 때 
무결성 제약조건 : 외부에서 입력된 자료를 막고자 입력 제약 조건을 걸 수 있다. 
기본키 제약조건 (PRIMARY KEY, PK)  제약조건 : 중복 자료 입력 방지, NULL 허용하지 않음 ascending sort

-- Check 제약조건 : 특정 칼럼값 검사 

-- unique 제약 조건 : 특정 칼럼값 중복 방지 

-- 외부키 (참조키, foreign key, fk ) : 다른 테이블의 칼럼값을 참조한다. (fk의 대상은 pk가 대다수다.)
   on delete coscode : 참조 대상 테이블의 행이 삭제되는 경우, 참조되는 테이블의 종속행을 모두 삭제

   * 테이블을 drop할 땐 fk를 한 테이블 지우고, 그 담에 pk의 기준인 테이블을 drop해야 한다. 

 

-- index 색인) 검색속도를 향상시키기 위해 검색이 빈번한 칼럼에 색인 부여
   pk 칼럼은 자동으로 색인이 부여된다. 
   index를 사용해야 하는 경우 : 렠코드 수가 많을 때, Join이 자주 발생할 때, null이 많이 포함된 검색
   index를 자제해야 하는 이유 : 입력, 수정, 삭제가 빈번한 테이블

-- now(), sysdate()

 

-- 테이블 관련 create table ... alter table... drop table ,,, rename 옛 이름 to 새 이름

SELECT * FROM cc;
ALTER TABLE cc RENAME kbs;
SELECT * FROM kbs;
ALTER TABLE kbs RENAME cc;
SELECT * FROM cc;

-- 칼럼추가 
ALTER TABLE cc ADD(Job_id INT(6));
SELECT * FROM cc;

-- 칼럼명 변경 
ALTER TABLE cc CHANGE job_id job_num INT;
SELECT * FROM cc;

-- 칼럼 타입 변경
ALTER TABLE cc MODIFY job_num VARCHAR(5);
DESC cc;

-- 칼럼 삭제 
ALTER TABLE CC DROP COLUMN job_num;
SELECT * FROM cc;
DROP talbe aa;
DROP TABLE cc;
DROP TABLE profestor;
DROP TABLE test;


[수업내용 정리]

0. DB의 활용순서?

[입력자료 검사 자바에서 DATA검사 INSERT 문장 작성 및 수행 → 집약조건 통과 →DB생성]

이 때, '결함없는 데이터'을, '무결성'이라는 목적을 위해 SQL에선 Constraint를 건다.

 

1. ★Select

카페에 준비한 sample data로 주구장창 쓸듯. 음 굳이 비유하면 JAVA의 프린트 같은 느낌 From은 끌어오는 테이블 지정

 

 

2. Constraint: 제약조건

DB Server는 많은 외부소스(cmd, HediSQL, Languages)로부터 데이터를 받는다. 

 

 

1)   primary key 

2)  Check 제약조건 : 특정 칼럼값 검사 

3)  unique 제약 조건 : 특정 칼럼값 중복 방지 

4) default : 특정 칼럼에 초기값 부여, 널 입력을 방지

 

3.  index 색인) 검색속도를 향상시키기 위해 검색이 빈번한 칼럼에 색인 부여
-- pk 칼럼은 자동으로 색인이 부여된다. 
-- index를 사용해야 하는 경우 : 렠코드 수가 많을 때, Join이 자주 발생할 때, null이 많이 포함된 검색
-- index를 자제해야 하는 이유 : 입력, 수정, 삭제가 빈번한 테이블

 

 


※ 오늘 배우고 느낀 것 

 

1. 뭔가 null을 관리하고, 채우고, 무시하고, 포함하고 이런게 중요한 SQL의 SKILL일것같은데....?

잘모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

2. fK는 나중에 Join 으로 대체되는 느낌적인 느낌