어제까지 열심히 가공했던 테이블을 직접 생성하고 삭제하고 변경하고 등등 가지고 노는 법

 

1.생성방법

  CREATE TABLE  테이블명 (

         컬럼명1 자료형1 NOT NULL ,       ==>  NULL값 허용하지 않겠다는 말

         컬럼명2 자료형2 CONSTRAINT PK_NO_BBS PRIMARY KEY,     

                                                               => CONSTRAINT 생략가능! 2컬럼이PK가 되는거! 

                    ....

         컬럼명N 자료형N []  );                 => 자바와는 다르게 변수를 앞에두고 자료형을 뒤에쓴다! 

요게 테이블 뼈대를 만드는 공식같은 거

   

    테이블 명 규칙

문자로시작하기, 30자 내로 지정하기, 동일한 이름을 사용할 수 없고 예약어도 안됨 (여기까진 자바랑 똑같음)

자바랑 다르게 대소문자를 구별하지 않는다!

 

    제약조건

위에 NOT NULL , CONSTRAINT  요런걸 제약조건이라고 함  ! 제약조건에 종류와 역할에 대해 알아보자

1. NOT NULL : NULL값을 절대로 허용하지 않는다.

2. UNIQUE : 값의 중복을 허용하지 않는다

  .

3. PRIMARY KEY : NOT NULL 이랑  UNIQUE 조건이 합쳐진 개념! 참조무결성을 유지하기 위한 제한조건이라는데 말이 너무 어렵고 쉽게말해서 표에서 값을 찾아야 하는데 쉽게 찾기 위한 기준이 되는 KEY 임! 다른것들과는 구별되는 유일무이한 독자적인 것이어야 함 

앞에서 PK,FK 하면서 말했듯 하나의 데이블에는 하나의 PK만 존재한다. 단 여러개의 컬럼을  묶어서 하나의 PK로 만들 수는 있다.(복합 키) 어쨌든 합치면 하나의 PK로서 작동 함

설명 빠졌는데 중복안되는 컬럼인데 NULL중복은 가능하다!
두개의 컬럼을 PK로 묶은거

 

4.DEFALUT : DEFAULT는 데이터 입력 시 아무것도 입력하지 않았을 때 자동적으로 입력해 주는 값 진짜 말 그대로 디폴트!  얘는 따로 제약명을 지정할 수 없다. (예를들면 게시판 글 작성할 때 자동으로 당일날짜 출력할 때 활용됨)

5. FOREIGN KEY : 테이블과 테이블을 연결하는 제약조건 (약간 JOIN과 비슷한 ??)  부모-자식 테이블로 연결하는 기능이기 때문에 FOREIGN 생성 시 부모의 컬럼과 자료형이 일치해야 한다.!  그냥 JOIN 으로 연결해 놓으면 부모 테이블도 함부로 삭제가 안된다(반드시 연결되어있는 자식 자료를 먼저 삭제 해야함) FOREIGN KEY 생성하면 ON DELETE CASCADE(부모레코드 삭제시 해당 자식 레코드도 강제로 삭제 됨) 혹은 ON DELETE SET NULL(부모 레코드 삭제 시 해당 자식 레코드는 NULL값으로 변경 됨) 조건을 부과 할 수 있다. 

 

 

위랑 연결해서 봐야함

+DROP TABLE MEMBER;  ---- 자식이 참조하고 있는 자료가 있어서 테이블삭제 안됨
 DROP TABLE MEMBER CASCADE CONSTRAINT;   -- 강제삭제

 

 

6.CHECK : 컬럼 안에 값의 틀을 제한 하는 조건  해당 컬럼에 잘못된 데이터가 입력 되지 않도록 유지하기 위한 제약조건이다.   예를들면 주민등록번호는 앞에 6자리 - 뒤에 7자리  이런 형태로 를 맞춰서 데이터에 저장되어야 하는 것! 제약 조건은  WHERE절의 QUERY조건과 동일하게 주면 됨

 

제약조건에 관한 나머지 ..ECT...

- 모든 제약조건에 이름을 부여 할 수 있다.(단,DEFAULT제약조건은 제외)  
 EX) CONSTRAINT 제약조건명 제약조건
-제약조건명 볼 때  이거 사용 (제약조건이 뭐가 있는지 쫙 나옴 사전같은거 외우지는 않아도  됨)
   SELECT * FROM user_cons_columns

제약조건 거는건 저렇게 두가지 방법으로 가능함! 컬럼 옆에 붙이거나 맨 뒤에 붙이거나!!

'학원 > DB(오라클),SQL문' 카테고리의 다른 글

10/18 23-3 시퀀스  (0) 2022.10.18
10/18 23-2 테이블 변경  (1) 2022.10.18
10/17 22-2 쿼리  (0) 2022.10.17
10/17 22-1 JOIN  (0) 2022.10.17
오라클 INNER JOIN 수정  (0) 2022.10.17

+ Recent posts