블로그 내의 모든 예시와 실습은 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 (입력데이터,…);
- no 는 auto_increment 옵션에 의해 값이 자동으로 입력되므로 빈 값만 전달한다.
- 문자형은 ‘(싱글쿼터)나 “ (더블쿼터)로 묶어서 입력하고 숫자형은 값만 입력한다.
- now():현재 날짜와 시간을 알아오는 mysql 내장 함수이다.
DATA 생성2
- 특정 컬럼을 지정해서 데이터를 입력할 경우
- 앞에 입력한 컬럼명과 입력데이터의 순서와 개수가 일치해야 한다.
- mariadb> insert into (테이블명) (컬럼명, …) values (입력데이터, …);
DATA 생성3
- 특정 컬럼을 지정해서 데이터를 입력할 경우
- mariadb> insert into (테이블명) set (컬럼명) = (입력데이터) [,…];
DATA 조회1
- 테이블 내 모든 데이터 조회
- 테이블에 저장된 컬럼 순서대로 조회
- maradb> select * from (테이블명);
DATA 조회 2
- 특정 컬럼을 지정해서 조회
- 컬럼 순서는 테이블에 저장된 순서가 아닌 조회할 때 지정한 순서로 조회된다.
- mariadb> select (컬럼명[,…]) from (테이블명);
DATA 조회3
- 조건을 지정해서 원하는 데이터만 조회
- 조건은 기본 연산자를 이용해 지정 가능
- 조건이 여려개인 경우 논리연산자(and,or)를 이용해 하나의 결과 값으로 만들어 줘야 한다.
-
mariadb>select (컬럼명 [,…]) from (테이블 명) where (조건);
- 조건 1개 일치하는 데이터 조회
- 조건 3개 일치하는 데이터 조회
- 조건을 3개 이상 지정하는 경우 연산자 우선순위르 ㄹ잘 고려해야 한다.
- and가 or 보다 우선순위가 높다
- 먼저 연산하고 싶은 조건에 () 를 입력한다.
- 조건과 비슷한 데이터 조회(like 연산자)
- 메타 문자
- % : 자리 수 제한 없이 모든 문자를 의미
- _ : 한 자리 수의 모든 문자를 의미
- 메타 문자
DATA 수정
- where 로 조건을 지정하지 않으면 테이블 내 모든 레코드의 값이 변경된다.
- mariadb> update (테이블명) set (컬럼명) = (수정데이터) [, …] [where (조건)];
DATA 삭제
- where로 조건을 지정하지 않으면 테이블 내 모든 데이터가 삭제된다.
- mariadb> delete from (테이블명) [where (조건)];
- 모든 데이터를 삭제 delete from test01_member;
DATA 조회 - 데이터 자르기
시작하기전에 사용자를 5개정도 더 만들어준다.
- 테이블 내 조회된 데이터가 반환할 레코드 지정
- mariadb>select * from (테이블 명) limit [개수];
- mariadb>select * from (테이블 명) limit [개수] offset (위치);
- mariadb>select * from (테이블 명) limit (위치),(개수);
DATA 조회 - 정렬
- 테이블 내 조회된 데이터를 지저오딘 컬럼을 기준으로 정렬
- mariadb>select * from (테이블 명) order by [정렬 기준 컬럼] [DESC | ASC];
DATA 조회 - DISTINCT
- 컬럼이나 레코드 조회 시 중복된 행 제거
- 주고 중복이 제거된 (UNIQUE)컬럼이나 레코드를 조회하는 경우 사용 된다.
- mysql>select distinct * from [테이블 명]
DATA 조회 - 그룹핑
- 지정된 컬럼을 기준으로 데이터를 그룹핑
- select * from [테이블명] group by [컬럼명];
겹치는 겻이 없어서 이렇게 나오지만 겹치는 것이 있으면 유용하다.
DATA 조회 - HAVING 절
- GROUP BY 절과 함께 사용
- <b<WHERE 절에서는 집계 함수를 사용할 수 없음</b>
- HAVING 절은 집계 함수를 가지고 조건 비교 시 사용
- mariadb>select * from (테이블명) group by [컬럼명] having[조건];