[SQL] DDL, DML

BORAM KIM·2022년 8월 4일

DB

목록 보기
2/6
post-thumbnail

생성규칙

  • 문자, _ , $ , # 조합, 한글(비추)
  • 첫글자는 항상 문자로 작성
  • 예약어, 키워드 사용 불가
  • 길이제한 30이하

데이터 타입

  1. VARCHAR2(n) : 가변길이 문자 데이터 ( 4000byte )
  2. CHAR(n) : 고정길이 문제 데이터 ( 2000byte )
  3. NUMBER(p,s) : 전체 p 자리 중 소수점 이하 s 자리숫자
    ** NUMBER, NUMBER(n) 소수점 유무에 따라 3가지 방식
  4. DATE : 날짜형
  5. LONG : 가변길이 2GB
  6. BLOB : 가변길이 4GB
  7. CLOB : 단일바이트가변길이문자 (4GB)
    ** 한글 : 2~3 byte로 인식

DDL

Data Definition Language
데이터의 구조를 정의하는데 사용하는 명령어

CREATE(생성)
ALTER(수정)
DROP(삭제)
RENANE(이름변경)
TRUNCATE(내용만 삭제)

1. 생성

CREATE TABLE 테이블명(
컬럼명 데이터타입(크기),
컬럼명 데이터타입(크기),
컬럼명 데이터타입(크기)
);

2. 삭제

DROP TABLE 테이블명;

3. 수정

ALTER TABLE 테이블명
ADD( 컬럼명 데이터타입(크기));

ALTER TABLE 테이블명
MODIFY( 컬럼명 데이터타입(크기));

ALTER TABLE 테이블명
DROP COLUMN 기존컬럼명;

ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 변경컬럼명;

DML

Data Manipulation Language
데이터를 조회하거나 검색하기 위한 명령어
데이터를 변경(삽입,수정,삭제)도 포함

INSERT(삽입) / UPDATE(수정) / DELETE(삭제) / SELECT(조회)

1. 입력 : insert

INSERT INTO 테이블명 ( 컬럼명 )
VALUES ( 값 );

2. 조회 : update

UPDATE 테이블명
SET 컬럼 = 값
WHERE 조건식 *범위설정

3. 삭제 : delete

DELETE FROM 테이블명
WHERE 조건식 *범위설정

4. 조회(검색) : select

SELECT 컬럼명들
FROM 테이블명
WHERE 조건식 *조건에부합된결과만

* 조건식은 범위설정을 도와주는 중요한 포인트입니다.
습관적인실행을 시키는 버릇이 있을경우 잘못된경우 조건식이없는 케이스로 실행을 할 경우 모든 데이터가 고장이 납니다.
항상 update delete 문장의 경우는 where 문부터 작성합니다.
** 더 나아가서는 select조회문부터 작성하고 작성된 쿼리문에서 조건문만 가져옵니다.

* 데이터베이스 사용하는 이유는 데이터의 일관성, 데이터의 무결성
조회문은 데이터베이스의 실제 값에는 영향이 없는 쿼리문입니다.
값을 보여주는 쿼리문이기때문에 맘대로써도됩니다.
!! 주의사항 삭제, 수정 의 경우에는 정말로 주의하면서 사용해야합니다.

제약조건

데이터베이스의 테이블내 데이터를 입력할때 처음 초기에 설정한 값들의 범위에서만 데이터가 들어가도록해야 데이터를 사용할때 문제가 적다.
데이터를 입력 할때 특별한 조건을 걸 수 있다.

  1. NOT NULL : 해당 컬럼에 null 값을 허용하지 않는 제약조건
  2. UNIQUE : 유일하게 식별하는 값만 허용 > 중복 허용 안한다 * null 허용
  3. PRIMARY KEY : 기본키() + 모든 테이블에는 기본키가 하나 이상 있어야한다.
    ( UNIQUE + NOTNULL 합쳐진 경우 )
    ( null 값을 허용하지 않고 유일하게 식별가능한 값 )
    만약 기본키 제약조건을 가진 컬럼이 2개라면?
    2개의 컬럼의 내용이 유일하기만 하면 된다.(둘 다 같지만 않으면 된다)
  4. FOREIGN KEY : 다른 테이블의 PK를 참조 *PK : 기본키
  5. CHECK : 입력을 제한하여 받을 수 있다. 등록한 단어들만 입력가능
  6. (*) DEFAULT : 제약조건 X > 입력값이 없을때 채워지는 값으로 제약조건처럼 사용.

사용방법

제약조건은 보통 테이블을 만들때 같이 생성

컬럼 레벨 제약조건 방식

CREATE TABLE 테이블명 (
컬럼명 데이터타입 "제약조건"
);

테이블레벨 제약조건 방식

CREATE TABLE 테이블명 (
컬럼명 데이터타입,
CONSTRAINT 제약조건이름 "제약조건" 컬럼명
(FOREIGN KEY 의 경우)
REFERENCES 참조테이블(테이블의 기본키)
(CHECK 의 경우)
CONSTRAINT 제약조건이름 CHECK (컬럼명 IN ('값1','값2','값3'))
);
추천 : 모든 제약조건은 데이터베이스에 저장하는데, 의미있는 이름을 부여해야 사용하기 편리하다.
주의 ! NOT NULL 은 컬럼레벨로만 적용가능

테이블 생성 후 제약조건을 추가

ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건이름 "제약조건" (대상컬럼) REFERENCES 대상테이블명(컬럼명)

ALTER TABLE 테이블명
MODIFY 컬럼명 DEFAULT 값;

profile
예비개발자

0개의 댓글