DML 중 하나인 insert는 생성한 테이블에 자료를 삽입할 때 사용한다.

테이블의 컬럼에 맞게 데이터를 삽입해야 하며 삽입하고자 하는 데이터에 맞는 칼럼이 없을 경우 오류가 발생한다.

 

insert into [테이블명] [(컬럼명1[, 컬럼명2...])]
	values(data1[, data2...]);

위의 코드블럭과 같이 사용할 수 있다.

  1. insert into를 앞에 작성한 후 삽입을 하고자 하는 테이블 이름을 작성해 준다.
  2. 칼럼 명부분 작성 방법
    • 사용하지 않을 경우 : 선택한 테이블의 모든 칼럼에 데이터를 순서대로 넣겠다는 뜻이다.
    • 사용할 경우 : 1개에서 테이블의 컬럼 개수만큼 테이블 칼럼 이름을 사용할 수 있으며 NotNull값이 있으면 무조건 명시를 해줘야 한다.
  3. 칼럼명 작성 후 values를 붙여주고 소괄호를 열고 데이터를 입력해준다.
    • 데이터 입력 시에 앞에 작성한 칼럼과 순서에 맞게 데이터를 입력해줘야 원하는 대로 입력이 가능하다
    • 칼럼명과 데이터의 개수가 일치해야 한다
    • 널값을 주려면 NULL, '' 널을 직접 입력해주거나 화이트 스페이스를 넣어주면 된다.
    • 앞에 칼럼명을 작성하지 않은 경우에는 컬럼 순서에 맞게 데이터를 입력해주면 된다.
    • date타입은 insert시에 ''안에 20210614의 형식으로 넣어주면 auto casting 된다.

'DataBase > Oracle' 카테고리의 다른 글

6. Selec  (0) 2021.06.14
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10
2. SQL  (0) 2021.06.08
1. Key  (0) 2021.06.08

DDL 중 하나인 Create를 사용해 보자

※SQL은 코드 작성 시 대소문자를 구분하지 않습니다.

 

create table [테이블 이름] (
	[컬럼이름] [Type(Size)] [세부속성] [기본값] [,...],
	[constraint] [기본키 설정명] primary key (컬럼 이름[, 컬럼이름...]//하나만 사용해도 됨),
    [constraint] [외래키 설정명] foreign key (컬럼 이름[, 컬럼이름...]//하나만 사용해도 됨)
    	references [테이블 이름] ([컬럼 이름][, 컬럼이름...]//하나만 사용해도 됨)
);

primary key의 경우 하나의 칼럼을 입력하면 입력한 칼럼이 PK가 되고 여러 개를 입력하면 여러 개가 하나로 묶여 PK가 된다.  FK 역시 같다.

하지만 primary key는 테이블 내에 하나만 존재해야 하므로 여러번 설정을 못해주는 반면 FK는 여러 테이블에서 참조를 받아올 수 있다.

 

constraint란 제약조건을 이야기 한다.

설정 명이라는 부분이 있는데 key를 정한 곳의 변수라고 생각을 하면 된다.

후에 작성할 포스트에 나오겠지만 테이블 간 제약을 해제할 때 사용될 수 있는 게 설정 명이며 다른 설정명과 중복될 수 없다. 중복되지 않게 네이밍을 하는 팁은 하단에 사용 예제에 작성해놓겠다

 

칼럼의 이름을 작성 시 주의할 사항이 있다. 띄어쓰기는 허용되지 않으며 단어와 단어 사이에 공백 대신 _ 언더바를 이용한다

 

create table test (
  test_id char(4),
  test_name varchar2(30),
  test_job varchar2(30),
  con_id number(3),
  CONSTRAINT pk_test primary key(test_id),
  constraint fk_test foreign key (test_id) references result(result_id)
);

//기본키, 외래키 설정명을 중복되지 않게 하려면 위의 설정명과 같이 PK_[해당 테이블명]
//으로 표기하면 중복될 일이 없다. 테이블은 중복이 될 수 없기 때문이다.

 

'DataBase > Oracle' 카테고리의 다른 글

6. Selec  (0) 2021.06.14
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
4. DML(Data Manipulation Language) - insert  (0) 2021.06.14
2. SQL  (0) 2021.06.08
1. Key  (0) 2021.06.08

Structured Query Language의 줄임말로 직역하면 구조적 질의 언어이다

 

-특징

  • CRUD를 할 수 있다
  • 관계형 데이터 베이스의 장점이다
  • 표준화가 되어 거의 대부분의 DBMS에서 동일하게 적용된다(조금씩 다름)
  • 비절차 언어이다 : non-Procedural Language
    • 절차 언어 : PL/SQL
  • SQL종류
    • 대화형 : DBMS에서 제공하는 유틸리티 프로그램을 이용하여 사용자가 직접 SQL문을 입력하고 실행 결과를 확인하는 방식
    • 내장 : 프로그램 안에 포함되어서 사용되는 방식

 

-관계형 데이터 베이스를 대상으로 데이터 조작을 수행하는 명령

  • DML; Data Manipulation Language : 데이터 조작어
    • insert, update, delete / 데이터를 컨트롤
  • DCL; Data Control Language : 데이터 제어어
    • grant, commit, rollback, savepoint / 권한 등을 컨트롤
  • DDL; Data Definition Language : 데이터 정의어
    • create, drop, alter / 테이블 등을 컨트롤
  • Query : 데이터 조회어
    • select / 제일 중요, 정보 열람 등

'DataBase > Oracle' 카테고리의 다른 글

6. Selec  (0) 2021.06.14
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
4. DML(Data Manipulation Language) - insert  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10
1. Key  (0) 2021.06.08

데이터베이스에서 Key라는 개념에 대해 설명하려 한다

Key는 기본키, 후보 키, 대체키, 복합 키, 외래 키가 있으며 각각 어떤 특징을 가지고 있는지 보도록 하자

    • 기본키(Primary Key)
      • Null 값이 허용되지 않음
      • 중복을 허용하지 않음
      • 해당 테이블을 대표하는 키
    • 후보 키(Candidate Key)
      • Primary Key + Alternate Key
    • 대체키(Alternate Key)
      • 후보 키 중 기본키로 선택되지 않은 나머지 키
      • Primary Key를 대신할 수 있는 키
    • 복합 키(Composite Key)
      • 하나의 칼럼이 후보 키의 역할을 하지 못하고 기본키가 두 개 이상의 칼럼이 합쳐져야 후보 키의 역할을 하는 경우
    • 외래 키(Foreign Key)
      • 상위 테이블의 PK가 하위 테이블에 PK혹은 일반 데이터가 되면 FK라고 한다
      • 식별과 비식별 관계로 나눌 수 있다
        • 식별 : life cycle이 부모와 자식이 같음 / 부모가 없어지면 자식이 같이 없어짐
        • 비식별 : life cycle이 부모와 자식이 다름 / 부모가 없어져도 자식은 남아 있음
      • 부모 테이블의 기본키는 자식 테이블에 외래 키로 전이된다
      • 두 테이블 간에 외래 키에 의한 참조 관계에 있을 때 두 테이블 간 데이터 불일치가 발생하는 상황이 되면 DBMS는 3가지 조치를 취할 수 있다
        • 제한(Restrict) : 삭제 연산을 거절하는 조치 / 제일 많이 사용된다
        • 연쇄(Cascade) : 관련 데이터를 모두 삭제 / 권장하지 않는다
        • Null 값으로 대체(Nullify) : 관련 데이터를 Null 값으로 대체 / 권장하지 않는다

'DataBase > Oracle' 카테고리의 다른 글

6. Selec  (0) 2021.06.14
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
4. DML(Data Manipulation Language) - insert  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10
2. SQL  (0) 2021.06.08

+ Recent posts