본문 바로가기
SQL

SQL_테이블, DML

by 유서담 2023. 12. 6.

테이블

 

  • 데이터베이스에서 데이터의 실질적인 저장소 역할을 수행
  • 2차원 표(테이블)의 형태로 데이터를 저장한다
  • 하나의 데이터베이스는 여러 개의 테이블이 존재한다

 

테이블의 구성요소

 

  • 다른 행과 와전히 독립적이다
  • 행의 순서는 중요하지 않으며, 행은  특정한 정보의 모든 데이터를 나타낸다

 

  • 데이터의 속성을 나타낸다 (데이터의 이름, 데이터의 자료형)
  • 같은 열은 같은 종류의 값을 가진다
  • 열은 서로 다른 이름을 가지고 있다
  • 하나의 테이블에 이름이 같은 열은 존재할 수 없다

 

 

DML

 

  • 데이터 조작어다
  • 데이터의 추가, 조회, 변경, 삭제 명령어

 

데이터 조회(SELECT)

 

 

테이블의 모든 행, 모든 컬럼을 조회

  SELECT *
  FROM   테이블명;

 

 

테이블의 특정 행, 특정 컬럼을 조회

  SELECT 컬럼명, 컬럼명, ...
  FROM   테이블명;

 

 

테이블 조회의 예시

테이블 모든 행, 모든 열 조회 및 특정 행, 특정 열 조회

 

 

 

산술식 사용하기

  • SELECT절, WHERE절, GROUP BY절, HAVING절 등에서 산술연산자를 사용할 수 있다
  • 숫자와 날짜 데이터를 대상으로 만 사용할 수 있다

SELECT절에서 산술식을 사용한 예시

 

중복 제거하기 

  • 동일한 컬럼값을 가진 행이 한 번만 조회된다
  SELECT DISTINCT 컬럼명, ...
  FROM 테이블;

 

DISTINCT 사용예시 ( 중복 제거 사용예시)

 

 

 

별칭(Alias) 사용하기

  • SELECT절과 FROM 절에서는 별칭을 정의할 수 있다
  • 별칭이 특수문자, 공백을 포함하고 있을때는 " " 안에 적는다
  SELECT 컬럼명 as 별칭, 컬럼명 as "별칭", 연산식 as 별칭, ...
  FROM  테이블명

  SELECT 컬럼명 별칭, 컬럼명 "별칭", 연산식 별칭, ...
  FROM   테이블명

 

별칭(Alias) 사용 예시

 

 

 

행의 제한(데이터 필터링)

  • WHERE절을 사용한다
  • 제시된 조건식을 만족하는 행만 조회된다
  SELECT 컬럼명, 컬럼명,....
  FROM 테이블
  WHERE  조건식;

 

데이터필터링(WHERE)을 사용 예시

 

 

 

논리연산자

  • 두 개이상의 조건식으로 데이터를 제한할 수 있다
  • AND, OR, NOT
  SELECT 컬럼명, 컬럼명,....
  FROM   테이블명
  WHERE 조건식 AND 조건식;
  
  SELECT 컬럼명, 컬럼명,....
  FROM   테이블명
  WHERE 조건식 OR 조건식;
  
  SELECT 컬럼명, 컬럼명,....
  FROM   테이블명
  WHERE 조건식 AND (조건식 OR 조건식);

 

WHERE절에서 논리연산자 사용 예시

 

 

 

기타 연산자

  • BETWEEN 값 AND 값 : 컬럼의 값이 하한값과 상한값 범위내면 TRUE다.
  SELECT 컬럼명, 컬럼명, ....
  FORM 테이블명
  WHERE 컬럼명 BETWEEN 값 AND 값;

 

WHERE절에 BETWEEN 사용 예제

 

 

 

IN (값, 값, 값, ... ) : 컬럼의 값이 제시된 값들 중 하나와 일치하면 TRUE다

 

OR와 흡사하다는 것을 알 수 있다

  SELECT 컬럼명, 컬럼명, ....
  FROM 테이블명
  WHERE 컬럼명 IN (값, 값, ...);

 

WHERE절에 IN 사용 예제

 

 

 

LIKE 패턴 : 컬럼의 값이 제시된 패턴과 일치하면 TRUE다

패턴문자 설명
 '%' 0개 이상의 일련의 임의의 문자를 나타낸다
 ' _ ' 임의의 문자 하나를 나타낸다

 

  SELECT 컬럼명, 컬럼명, ....
  FROM 테이블명
  WHERE 컬럼명 LIKE '%패턴%'
  
  /*
  
  이름 LIKE '이_'; 성이 이씨고, 이름이 한 글자인 사람
  이름 LIKE '이%'; 성이 이씨인 사람
  책제목 LIKE '%자바%'; 제목에 '자바'가 포함되어 있는 모든 책

LIKE 사용 예제

 

 

 

IS NULL, IS NOT NULL

  • IS NULL : 컬럼의 값이 NULL인 행이면 TRUE 출력
  • IS NOT NULL : 컬럼의 값이 NULL이 아니면 TRUE 출력
  SELECT 컬럼명, 컬럼명, ....
  FROM 테이블명
  WHERE 컬럼명 IS NULL

  SELECT 컬럼명, 컬럼명, ....
  FROM 테이블명
  WHERE 컬럼명 IS NOT NULL;

 

IS NULL, IS NOT NULL 사용 예시

 

 

 

행의 정렬(ORDER BY)

  • ORDER BY 절은 SELECT문의 맨 마지막에 써야한다
  • ASC는 오름차순, DESC 오름차순. (생략하면 자동으로 오름차순으로 정렬한다)
  SELECT 컬럼명, 컬럼명, ....
  FROM 테이블명
  [where 조건식]
  [order by {컬럼명|표현식} [ASC|DESC]]
  
  -- ASC : 오름차순 정렬
  -- DESC : 내림차순 정렬

 

ORDER BY절 사용 예시

 

 

 

데이터 추가 (INSERT INTO)

  • 테이블에 데이터를 추가한다
  -- 값이 저장될 컬럼명을 직접 나열하는 방식
  -- 생략된 컬럼에는 NULL값이 저장된다.
  INSERT INTO 테이블명 (컬럼명, 컬럼명, 컬럼명)
  VALUES (값, 값, 값);
  
  -- 컬럼명을 생략하는 방식
  -- 모든 컬럼의 값을 전부 적어야 한다.
  -- 테이블의 컬럼 순서와 동일한 순서로 값을 적어야 한다.
  INSERT INTO 테이블명
  VALUES (값, 값, 값);

 

  insert into contacts(name, tel, fax)
  values('홍길동', '010-1111-111', '02-1111-1111')

 

  insert into contacts
  values('홍길동', '010-1111-111', '서울', 'hong@gmail.com', NULL, sysdate)

 

INSERT INTO 사용 예시

 

 

 

데이터 변경 ( UPDATE )

  • 테이블에 저장된 데이터를 변경
  UPDATE 테이블
  SET
    컬럼명 = 값,
    컬럼명 = 값,
    컬럼명 = 값
  [WHERE 조건식]
    
  -- WHERE 조건식이 없으면 모든 행에서 해당 컬럼의 값을 변경한다.
  -- WHERE 조건식이 있으면 조건식을 만족하는 행에서만 해당 컬럼의 값을 변경한다.

 

UPDATE 사용 예시

 

 

 

데이터 삭제 ( DELETE )

  • 테이블에 저장된 데이터를 삭제
  DELETE FROM 테이블명
  [WHERE 조건식]
  -- WHERE 조건식이 없으면 테이블의 모든 행이 삭제된다.
  -- WHERE 조건식이 있으면 조건식을 만족하는 행만 삭제한다.

 

테이블의 모든 데이터 삭제하기

  DELETE FROM 테이블명

 

제시된 조건과 일치하는 행을 삭제하기

  DELETE FROM 테이블명
  WHERE 조건식

 

DELETE 사용 예시