-
Primary Key를 숫자로 만드는 이유는 검색속도가 빨라져서이다. 문자열을 넣으면 검색속도가 느려진다.
테이블 삭제시 Foreign Key를 삭제후 Primary Key를 삭제해야한다.
테이블 생성시엔 반대.
기본적으로 자식데이터 있으면 부모데이터는 삭제 불가능.
ON DELETE CASCADE : 부모데이터가 지워지려 할때 자식데이터를 먼저 지운다.
ON DELETE SET NULL : 부모데이터가 지워질때 NULL로 세팅.
** 부모 테이블에 컬럼에 있는 값만 참조한 자식테이블 컬럼에 넣을 수 있다.
Select * from tab;
명령어는 데이터를 많이 잡아먹어서 가급적 자제하는게 좋다. 웬만하면 불러올 데이터들을 직접 입력하자.
WHERE 절은 숫자를 문자형이나 숫자형 둘다 입력해도 똑같이 숫자형으로 받아들인다.
별명(ALIAS) 을 쓸때는 컬럼명 뒤에 아무문자나 써도 되지만, 쉬운 구분을 위해 as 별명 으로 작성해도 좋고, 띄어쓰기는 인식하지 못하므로 " " 안에 띄어쓰기를 포함한 단어 입력시 인식할 수 있다.
별명을 쓸 때 FROM절이 가장 먼저 참조되므로. 먼저 참조되는곳인 FROM 뒤에 별명지정을 하고
이후 select , where 절에 별명.컬럼 으로 위치지정을 해준다.
다중칼럼 비교
WHERE (칼럼명1, 칼럼명2, 칼럼명3...) = ((칼럼1데이터, 칼럼2데이터,칼럼3데이터...));
AND가 여러번 필요할 때 고려하자
BETWEEN 절은 ~사이의 값을 인식. (적힌 값을 포함해서 계산한다)
NULL은 IS NULL, IS NOT NULL 이외에는 연산 불가능하다. 그러나 nvl함수로 null이면 0으로 연산 처리 가능하다.
select 10 + nvl(NULL, 0 ) from dual ; = 10.
IN = or 연산 여러번할때, 정해진 조건 안에 있는지 확인
%는 아무문자를 대체하는 기호이다.
like 연산자로 문자패턴 일치여부를 알아볼 수 있는데, like '%자바' 라고 검색하면 앞에 글자가 있고 뒤에 자바라고 나온 데이터를 표시한다.
모든 컬럼에 대해 순서에 맞게 데이터 입력시
INSERT INTO 테이블명 <<까지만 쓰고, 바로 VALUES ( )에 순서대로 값을 넣을 수 있다.
JOIN 조건을 쓸 때 왼쪽 조건을 데이터가 가장 많이 줄어드는 걸 쓴다