개인 공부/TIL

TIL #220614 #DB #JAVA

kaleb 2022. 6. 14. 22:44
728x90

오늘도 TIL로 찾아왔습니다. 제가 부산에서 공부를 하고 있는데 부산은 오늘 비가와서 하루종일 down되었습니다.

덕분에 아주 피곤하네요. 고작 화요일인데 왜...?

진정하고 빨리 복습해봅시다!

 


오늘은 오전 DB 오후 JAVA로 수업이 진행되었습니다.

DB와 Java의 수업내용이 슬슬 많아지기 시작하는 것 같습니다. 빨리 빨리 복습!!!

 

오전 DB

 

트랜잭션

 

트랜잭션 제어어(Transaction Control Language) : 트랜잭션을 마무리 짓거나 관리할 수 있는 명령어 입니다.

  • Commit : 작업 중인 트랜잭션을 데이터베이스에 적용하고 마무리합니다.
  • Rollback : 작업 중인 트랜잭션의 내용을 취소하고 마무리합니다.
  • Savepoint : 진행 중인 트랜잭션에서 되돌아 갈 수 있는 지점을 생성합니다.

트랜잭션 시작 및 종료

  • 시작 : 첫 번째 DML 구문 실행 시 시작됩니다 (INSERT, UPDATE, DELETE, MERGE)
  • 종료 : DML의 경우 COMMIT 또는 ROLLBACK를 실행하는 경우 종료됩니다. DDL과 DCL의 경우 구문 실행시 자동 commit 됩니다. SQL PLUS 정상종료시 자동 Commit됩니다. 시스템 장애시 자동 Rollback 됩니다.

 

DDL(Data Definition Language) 데이터 정의어

: 데이터베이스의 오브젝트를 정의하는 문법입니다.

  • CREATE : 새로운 오브젝트를 생성해줍니다.
  • ALTER : 기존의 오브젝트를 변형해줍니다.
  • DROP : 기존의 오브젝트를 삭제해줍니다.
  • TRUNCATE : 테이블의 저장영역을 절단해줍니다.

오브젝트의 종류

  • Table : 데이터 저장의 기본 단위로 행 단위로 구성되어 있습니다.
  • View : 하나 또는 그 이상의 테이블들에 대한 논리적인 표현으로 가상의 테이블 입니다.
  • Sequence : 고유한 숫자 값을 생성해주는 오브젝트입니다.
  • Index : 일부 쿼리구문의 성능을 향상시켜주는 오브젝트 입니다.
  • Synonym : 동의어로, 오브젝트에 별도의 별명을 추가해주는 오브젝트입니다.

 

테이블 생성(CREATE TABLE)

  • Table 생성 조건으로 CREATE TABLE의 권한이 필요합니다.
  • Table 생성시 테이블명, 컬럼명, 데이터타입, 컬럼 사이즈가 지정되어야 합니다.
  • 옵션으로 제약조건을 추가할 수 있습니다.
    제약조건 : Primary Key, Foreign Key, Unique, Not Null, Check…

syntax :

CREATE TABLE 테이블이름 (
컬럼명 데이터타입 조건,
컬럼명 데이터타입 조건,
...
컬럼명 데이터타입 조건
);

 

테이터타입 종류

  • CHAR : 문자열 개수를 지정할 때 사용합니다.
  • VARCHAR : 가변길이의 문자열을 지정할 때 사용합니다.
  • VARCHAR2 : 가변길이의 문자열을 지정할 때 사용합니다.
  • NUMBER : 숫자에 사용되는 데이터 타입입니다. (MYSQL, MariaDB의 경우 INT로 사용)
  • DECIMAL : 숫자에 사용되는 데이터 타입입니다. 소수점 저장이 가능합니다.
  • DATE : 날짜에 사용되는 데이터 타입입니다.

 

제약조건

: 테이블의 데이터에 대해 의도한 데이터만 입력하도록 컬럼에 제약을 거는 규칙입니다.

  • NOT NULL : 값이 반드시 입력되어야 합니다.
  • UNIQUE : 해당 컬럼에 중복값을 허용하지 않습니다.
  • PRIMARY KEY : 기본키를 지정합니다.
  • FOREIGN KEY : 외래키를 지정합니다.
  • CHECK : 입력되는 데이터를 체크하여 특정 조건에 맞는 데이터만 입력 받습니다.
  • DEFAULT : 값이 없을 경우 디폴트로 지정된 값을 입력합니다.
  • INDEX : 인덱스를 지정할 때 사용합니다.

참고 :

[ORACLE, MYSQL, SQL] CREATE TABLE 테이블 생성하고 주키(기본키) 지정하기, 테이블생성법, 제약조건 설정(NOT NULL)

 

[ORACLE, MYSQL, SQL] CREATE TABLE 테이블 생성하고 주키(기본키) 지정하기, 테이블생성법, 제약조건 설정

[데이터베이스 SQL 완전정복 목차] 안녕하세요 ㅎㅎ 오랜만에 돌아온 데이터베이스 관련 포스팅이예요. 오늘은 SQL에서 간단한 테이블 생성 방법과 주키를 등록하는 방법을 알아봅시다. 단순한 SQ

jhnyang.tistory.com

 

Column-level 과 Tabel-level

  • Column-level 문법 : 해당 컬럼에 CONSTARINT를 통해서 바로 제약조건을 설정하는 방법입니다.

Syntax :
테이블명약자_컬럼명약자_제약조건유형약자

Ex)

CREATE TABLE test1 (
    id         NUMBER(10)
        CONSTRAINT t1_id_nn NOT NULL, 
    name       VARCHAR2(30) NOT NULL, 
    job        VARCHAR2(20), 
    email      VARCHAR2(20), 
    phone      VARCHAR2(20)
        CONSTRAINT t1_ph_nn NOT NULL, 
    start_date DATE
);
// 

 

  • Table-level 문법 : 테이블 데이터타입 선언이후 CONSTRAINT를 통해 제약조건을 설정합니다.

Syntax :

테이블명약자_컬럼명약자_제약조건유형약자(컬럼명)

CREATE TABLE test3 (
    id         NUMBER(10), 
    name       VARCHAR2(30)
        CONSTRAINT t3_name_nn NOT NULL, //column-level
    job        VARCHAR2(20), 
    email      VARCHAR2(20), 
    phone      VARCHAR2(20)
        CONSTRAINT t3_ph_nn NOT NULL
        CONSTRAINT t3_ph_uk UNIQUE, //column-level
    start_date DATE, 
    CONSTRAINT t3_email_uk UNIQUE ( email ), //tabel-level
    CONSTRAINT t3_id_pk PRIMARY KEY ( id ) //tabel-level

);

 

참고 :

제약조건문법(컬럼레벨/테이블레벨), 제약조건 5가지, 버퍼에 있는 자주 사용할 쿼리구문을 저장하는 방법

 

제약조건문법(컬럼레벨/테이블레벨), 제약조건 5가지, 버퍼에 있는 자주 사용할 쿼리구문을 저장

제약조건명 생성시 문법 2가지제약조건명 생성시 oracle에서 권장하는 이름작성 방법이 두가지(컬럼레벨문법과 테이블레벨문법)가 있다.

sowon-dev.github.io


 

오후 JAVA

Enum : 이놈!

열거형이라고도 하며 서로 연관된 상수들의 집합을 의미합니다.

 

Syntax :

[접근제한자] enum 열거타입명 {…}

  • 코드가 단순해지며, 가독성이 좋습니다.
  • 인스턴스 생성과 상속을 방지하여 상수값의 타입안정성이 보장됩니다.
  • enum class 를 사용하여 새로운 상수들의 타입을 정의함으로 정의한 타입 이외의 타입을 가진 데이터값을 체크할 수 있습니다.
  • 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명히 알 수 있습니다.

Ex)

enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }

public class Enum01 {

    public static void main(String[] args) {

        Rainbow[] arr = Rainbow.values();

        for (Rainbow rb : arr) {

            System.out.print(rb + " ");
        }
    }
}
// RED ORANGE YELLOW GREEN BLUE INDIGO VIOLET

 

Interface :

다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서 다른 클래스 사이의 중간 매개 역할까지하는 일종의 추상 클래스로 다중상속을 지원해줍니다.

Syntax :

접근제어자 interface 인터페이스 이름 {

[public static final] 타입 상수이름 = 값;
  …
 public abstract 메소드 이름(매개변수);
}

인터페이스의 모든 필드는 public static final이어야 하며 모든 메소드는 public abstract 이어야 합니다. 따라서 제어자는 생략이 가능합니다.

 

Ex)

  public static void main(String[] args) {

        Cat c = new Cat();

        Dog d = new Dog();

        c.cry(); //냐옹냐옹!
        d.cry(); //멍멍!
    }
}

interface Animal { 
	public abstract void cry(); 
}

class Cat implements Animal {

    public void cry() {

        System.out.println("냐옹냐옹!");
    }
}

class Dog implements Animal {

    public void cry() {

        System.out.println("멍멍!");
    }
}

 

참고 :

코딩교육 티씨피스쿨

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

반응형

'개인 공부 > TIL' 카테고리의 다른 글

TIL #Java 인터페이스 #DB ALTER, DROP, VIEW  (0) 2022.06.20
TIL #220615 #JSP 게시판 만들기 #Network DNS  (0) 2022.06.15
TIL #220613 #JSP # JAVA  (0) 2022.06.13
TIL #220608 #JSP # DB  (0) 2022.06.08
TIL #220607 #DB # JAVA  (0) 2022.06.07