백엔드/Oracle

45 - SQL : DML

두개의 문 2023. 6. 30. 11:36
 사원정보 테이블 생성 : CREATE문 

 

 

CREATE TABLE 테이블명 (
          컬럼1  데이터타입  [NOT] NULL  제약조건,
          컬럼2  데이터타입  [NOT] NULL  제약조건,
          컬럼3  데이터타입  [NOT] NULL  제약조건,
          PRIMARY KEY(기본키로 삼을 컬럼명)
);

- 테이블명 : 테이블 생성 시 사용할 이름

 

 - 컬럼1 : 실제 데이터가 들어가는 컬럼의 이름 

 

 - 데이터타입 : 컬럼의 데이터 유형

   • 문자형 

     ➊ CHAR(n) : 고정길이 무조건 n자 까지 / 최대 2000자

     ❷ VARCHAR2(n) : 가변길이 n자 까지 / 최대 4000자

   • 숫자형

      : NUMBER[ p, s ] : p, s는 생략 가능 

        ( p : 전체 유효 자리수, s : 소수점 이하 유효 자리수 )  

   • 날짜형

      : BC 4712년 1월 1일 ~ 9999년 12월 시 분 초 까지도 입력하면 자동 변환 

 

 - [NOT] NULL 

     ➊ NULL 

      • 데이터가 없음을 의미 

      • 자바 ) 참조하는 주소 없음

     ❷ NOT NULL

       반드시 데이터가 들어가야  

 

 - [제약조건] : 필요하면 컬럼의 데이터를 제한할 수 있음

 - PRIMARY KEY : 데이터를 유일하게 식별할 수 있는 키 값 컬럼을 설정 

                                복합 컬럼를 사용할 경우, 사용

 


 - 테이블은 데이터를 보관하는 저장소 

   테이블의 구조는 로우가 컬럼을 구성?

 - 테이블 이름과 컬럼명은 최고 30자를 넘지 않도록 하는 것을 권장 

 - _(언더스코아) 문자 숫자 사용 가능 

   단, 첫글자는 반드시 문자를 권장 

 - 한글을 컬럼 등의 객체 이름으로 사용은 가능하나, 권장하지 않음 

   언제 에러가 날 지 알 수 없음 

 - 단어와 단어 사이는 ‘_’를 사용하는 것을 권장 

 - 기본적으로 대소문자 구분을 안하는 DBMS가 많음 

예) employee, product, emp_id, employee_id


 

 

※ PRIMARY KEY : 컬럼의 속성으로 작성하기 보다는 아래에 따로 언급하는 것을 권장 

 

 

• 테이블 생성된 것 확인 가능 

 

 

 

  생성된 테이블 확인해보기 : SELECT문 

 

 

 

 

 테이블에 데이터 추가 : INSERT문 
INSERT INTO 테이블명 ( 컬럼 리스트 )
              VALUES ( 값 리스트 ) ;

 • 컬럼 리스트와 값 리스트는 서로 일치하는 데이터형이어야 함 

 • 값은 명시적으로 적용 

 • 각 컬럼과 값의 구분기호는 ,(comma)를 사용 

  컬럼과 값의 명시한 순서가 동일해야  

 ※ Oracle에서는 다중 INSERT문 허용 안됨 

 

 

 

 

 

 

• 생성된 테이블 데이터 확인 결과 

 

 

 - PRIMARY KEY의 경우, null 값 허용 불가 / 중복 허용 불가 

 - ORACLE : auto_increment 특성 없음 

 

 

 

 - 동일한 데이터를 다시 추가했을때 : 무결성 제약 조건에 위배됨 

  • PRIMARY KEY 무결성 : 이미 emp_id 5 데이터가 추가되어있음      

 

  • emp_id 6으로 변경 실행데이터 삽입됨 

 

 

 - INSERT 구문의 확장

    INSERT INTO 테이블명 VALUES (값 리스트) ;

   → 컬럼 리스트가 빠진 경우는 모든 컬럼을 다 사용하겠다는 의미 

       ∴ 값 리스트는 모든 컬럼 리스트와 동일해야 함 

 • 컬림 리스트는 테이블 생성 시, 사용한 컬럼 순서를 따라야 함 

   값 리스트 및 데이터형도 이 순서와 일치해야 함 

 • 기본 형식

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

     이 구문이 가독성, 유지/보수 측면에서 더 도움이 됨 

        기본 구문 사용하는 권장 

 

 

- 오라클의 Update Query 기본 설정 

 • 트랜잭션이 기본으로 걸려있음

 • UPDATE Query를 실행하시면 반드시 COMMIT 명령을 내려주기 

 • JDBC 경우, auto_commit 실행  

 

 

 

데이터 삭제 : DELETE문 

 

 DELETE FROM 테이블명 WHERE 조건 ;

   ➊ DELETE FROM 에서 ‘FROM’의 경우, 생략 가능  

    단, 가독성을 위해 생략하지 않는 것을 권장 

   ❷ WHERE 조건절의 경우, 절대 생략하지 않도록 주의 

 

 

 

  • 다음 예시는 모두 동일한 기능 

DELETE FROM employee WHERE 1 = 1;                    // WHERE 조건절이 true이므로 모든 데이터 삭제
DELETE FROM employee;
TRUNCATE TABLE employee;

 

 

 

  • emp_id = 6 자료 삭제해보기 

 

 

• 테이블에서 확인 가능 

 

 


 지하철 승객 인원 통계 테이블 생성 

 

 - 테이블 생성 시, 요구사항 

 

 • board_time(탑승시간) : 탑승한 시간대를 적는것으로 제한 

   9시 - 10시 사이 : 9

   10 - 11 사이 : 10

 

 

 - 테이블에 추가할 데이터 

 

 - 생성된 테이블 

'백엔드 > Oracle' 카테고리의 다른 글

Oracle : SQL - 내장 함수  (0) 2023.07.07
Oracle : SQL ( SELECT -2 )  (0) 2023.07.06
Oracle : SQL ( SELECT - 1 )  (0) 2023.07.05
44 - Oracle : SQL 기본  (0) 2023.06.29
Oracle 사용자 계정 및 샘플 테이블 생성  (0) 2023.06.27