DML

배쨈·2023년 8월 17일
0

SQL

목록 보기
2/9

DML

Data Manipulation Language : 데이터베이스 의 데이터를 조작하는 명령

DDL에서 정의한대로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회 한다.

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

SELECT

SELECT co1, co2, ... 
FROM table 
WHERE col1 = 'condition';

별칭 붙이기
table 혹은 col Name에 Alias을 붙여줄 수 있다.
여러 개의 테이블을 JOIN하거나 서브쿼리가 있을 때, 용이하다.

SELECT B.BANDNAME, BM.MEMBER_NAME
FROM BAND B, BAND_MEMBER BM
WHERE B.BAND_CODE = BM.BAND_CODE;

BAND 테이블 명을 B로, BAND_MEMBERBM으로 FROM절에서 별칭을 붙였다.


문자함수

  • CHR(ASCII CODE)
    아스키코드 입력 시, 매핑되는 문자를 알려주는 함수

  • LOWER('문자열')
    대문자 문자열을 소문자로 변환해준다
  • UPPER('문자열')
    문자열을 대문자로 변환

  • LENGTH('문자열')
    문자열의 길이를 반환한다

  • SUBSTR('문자열', 시작점[,길이])
    문자열의 원하는 부분만 잘라서 반환
    길이를 명시하지 않았을 때, 시작점부터 끝까지 반환
    SELECT SUBSTR('BANSEOJJAM',7,2) FROM DUAL;
    -> JJ

  • REPLACE('문자열','변경 전 문자열'[,'변경 후 문자열'])
    변경 후 문자열을 명시하지 않는다면, 변경 전 문자열을 제거한다.

  • LTRIM('문자열'[,특정문자])
    문자열의 왼쪽 공백을 제거한다
    특정문자 명시 시, 왼쪽부터 한 글자씩 특정 문자와 비교하여 특정문자가 포함되어 있으면 제거, 포함 안됐으면 진행을멈춘다.
    SELECT LTRIM('BANSEO',''SEO') FROM DUAL;
    BAN이 출력된다.

  • RTRIM('문자열'[,특정문자])
    문자열의 오른쪽 공백을 제거한다
    특정문자 명시 시, 오른쪽부터 한 글자씩 특정 문자와 비교하여 특정문자가 포함되어 있으면 제거, 포함 안됐으면 멈춘다.

  • TRIM([위치][특정 문자][FROM]'문자열')
    옵션이 하나도 없을 경우, 왼쪽 오른쪽 공백 제거

옵션 [위치]

  • LEADING : 지정한 문자와 동일한 선행문자 제거
    SELECT TRIM(LEADING 'B' FROM 'BBANSEOB') FROM DUAL;
    -> ANSEOB

  • TRAILING : 지정한 문자와 동일한 후행문자 제거
    SELECT TRIM(TRAILING 'B' FROM 'BANSEOB') FROM DUAL;
    -> BANSEO

  • BOTH
    SELECT TRIM(BOTH 'B' FROM 'BANSEOB') FROM DUAL;
    -> ANSEO

숫자함수

  • ABS(숫자)
    절대값 반환

  • SIGN(숫자)
    숫자의 부호를 반환해준다. 1 OR -1

  • ROUND(숫자[,자릿수])
    지정된 소수점 자릿수까지 반올림하여 반환
    기본값 : 0
    • SELECT ROUND (163.76,1) FROM DUAL;
      -> 163.8

날짜함수

  • SYSDATE
    현재의 연, 월, 일, 시, 분, 초를 반환해준다.

  • EXTRACT (특정 단위 FROM 날짜 데이터)

INSERT

테이블에 데이터를 입력
INSERT INTO VALUES

INSERT INTO 테이블명 (
      컬럼명1, 컬럼명2 ... )
      VALUES (
      데이터1, 데이터2 ... )
  • 컬럼명의 개수와 VALUES의 개수가 일치해야 한다.
  • 명시되지 않은 컬럼에는 NULL값이 대입

UPDATE

UPDATE SET

 UPDATE 테이블명
        SET 컬럼명 = 새로운 데이터 (
        WHERE 수정할 데이터에 대한 조건
        ) ;
  • 저장된 데이터를 수정하고 싶을때 사용 -> update!
  • 수정하고 싶은 컬럼이 많은 경우, SET절에 ,로 이어서 명시 SET 컬럼명1 = 데이터, 컬럼명2 = 데이터 ...
  • WHERE절로 조건을 명시하지 않으면, 모든 행ROW가 변경되니 주의해야 한다.

DELETE

DELETE FROM

DELETE FROM 테이블명 (
       WHRER 수정할 데이터에 대한 조건
       ) ; 
  • 이미 저장된 데이터를 삭제하고 싶을때 사용
  • WHERE절로 조건을 명시하지 않으면, 모든 ROW가 변경 되니 주의해야 한다.
  • COMMIT ROLLBACK 가능

    ?) TRUNCATE와의 차이

    WHERE절 없이 전체의 데이터를 삭제하고 싶을 때, DDL의 TRUNCATE를 사용한다.
    • ROLLBACK 불가능
    • 로그를 쌓지 않는다. 시스템 부하가 적다.
profile
빵상빵상

1개의 댓글

comment-user-thumbnail
2023년 8월 17일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기