블로그 내의 모든 예시와 실습은 VMware workstation16.2.3, Centos7을 활용 합니다.

데이터 조작어(DML, Data Manipulation Language)

  • data를 조작하기 위해 사용하는 언어
  • data의 삽입, 수정, 삭제, 조회 등의 동작을 제어
  • INSERT(데이터 생성), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 조회)

  • 데이터베이스와 테이블이 미리 만들어져 있어야 한다.
    • DB : mytest01
    • Table : test01_member

DATA 생성1

  • table의 모든 column에 data를 입력할 경우
  • 입력한 data는 반드시 column의 순서와 개수가 일치해야 한다.
  • mariadb> insert into (테이블명) values (입력데이터,…);

dml1

  • no 는 auto_increment 옵션에 의해 값이 자동으로 입력되므로 빈 값만 전달한다.
  • 문자형은 ‘(싱글쿼터)나 “ (더블쿼터)로 묶어서 입력하고 숫자형은 값만 입력한다.
  • now():현재 날짜와 시간을 알아오는 mysql 내장 함수이다.

DATA 생성2

  • 특정 컬럼을 지정해서 데이터를 입력할 경우
  • 앞에 입력한 컬럼명과 입력데이터의 순서와 개수가 일치해야 한다.
  • mariadb> insert into (테이블명) (컬럼명, …) values (입력데이터, …);

dml2

DATA 생성3

  • 특정 컬럼을 지정해서 데이터를 입력할 경우
  • mariadb> insert into (테이블명) set (컬럼명) = (입력데이터) [,…];

dml3

DATA 조회1

  • 테이블 내 모든 데이터 조회
  • 테이블에 저장된 컬럼 순서대로 조회
  • maradb> select * from (테이블명);

dml4

DATA 조회 2

  • 특정 컬럼을 지정해서 조회
  • 컬럼 순서는 테이블에 저장된 순서가 아닌 조회할 때 지정한 순서로 조회된다.
  • mariadb> select (컬럼명[,…]) from (테이블명);

dml5

DATA 조회3

  • 조건을 지정해서 원하는 데이터만 조회
  • 조건은 기본 연산자를 이용해 지정 가능
  • 조건이 여려개인 경우 논리연산자(and,or)를 이용해 하나의 결과 값으로 만들어 줘야 한다.
  • mariadb>select (컬럼명 [,…]) from (테이블 명) where (조건);

  • 조건 1개 일치하는 데이터 조회

dml6

  • 조건 3개 일치하는 데이터 조회

dml7

  • 조건을 3개 이상 지정하는 경우 연산자 우선순위르 ㄹ잘 고려해야 한다.
  • and가 or 보다 우선순위가 높다
  • 먼저 연산하고 싶은 조건에 () 를 입력한다.
  • 조건과 비슷한 데이터 조회(like 연산자)
    • 메타 문자
      • % : 자리 수 제한 없이 모든 문자를 의미
      • _ : 한 자리 수의 모든 문자를 의미

dml8

DATA 수정

  • where 로 조건을 지정하지 않으면 테이블 내 모든 레코드의 값이 변경된다.
  • mariadb> update (테이블명) set (컬럼명) = (수정데이터) [, …] [where (조건)];

dml9

DATA 삭제

  • where로 조건을 지정하지 않으면 테이블 내 모든 데이터가 삭제된다.
  • mariadb> delete from (테이블명) [where (조건)];

dml10


  • 모든 데이터를 삭제 delete from test01_member;

DATA 조회 - 데이터 자르기

시작하기전에 사용자를 5개정도 더 만들어준다.

  • 테이블 내 조회된 데이터가 반환할 레코드 지정
  • mariadb>select * from (테이블 명) limit [개수];
  • mariadb>select * from (테이블 명) limit [개수] offset (위치);
  • mariadb>select * from (테이블 명) limit (위치),(개수);

dml11

DATA 조회 - 정렬

  • 테이블 내 조회된 데이터를 지저오딘 컬럼을 기준으로 정렬
  • mariadb>select * from (테이블 명) order by [정렬 기준 컬럼] [DESC | ASC];

dml12

DATA 조회 - DISTINCT

  • 컬럼이나 레코드 조회 시 중복된 행 제거
  • 주고 중복이 제거된 (UNIQUE)컬럼이나 레코드를 조회하는 경우 사용 된다.
  • mysql>select distinct * from [테이블 명]

dml13

DATA 조회 - 그룹핑

  • 지정된 컬럼을 기준으로 데이터를 그룹핑
  • select * from [테이블명] group by [컬럼명];

dml14


겹치는 겻이 없어서 이렇게 나오지만 겹치는 것이 있으면 유용하다.

DATA 조회 - HAVING 절

  • GROUP BY 절과 함께 사용
  • <b<WHERE 절에서는 집계 함수를 사용할 수 없음</b>
  • HAVING 절은 집계 함수를 가지고 조건 비교 시 사용
  • mariadb>select * from (테이블명) group by [컬럼명] having[조건];