01.Mysql 기초 - 데이터 처리 언어(DML, Data Manipulation Language)

ID짱재·2021년 2월 16일
1

MySQL

목록 보기
3/8
post-thumbnail

🌈 Mysql Workbench에서 데이터베이스 처리하기

🔥 데이터 처리 언어(DML) 이란?

🔥 데이터 생성(Create)

🔥 데이터 읽기(Read)

🔥 데이터 수정(Update)

🔥 데이터 삭제(Delete)


1. 데이터 처리 언어(DML) 이란?

  • 데이터 처리 언어란 spl문에서 데이터 생성, 읽기, 수정, 삭제를 의미함
  • 이를 CRUD[Create(생성), Read(읽기), Update(갱신), Delete(삭제)]라 부름

2. 데이터 생성(Create)

  • 아래 1번 방법은 column명을 입력하지 않는 대신 모든 데이터 값을 컬럼 순서에 맞게 순차적으로 입력
  • 아래 2번 방법은 column명 중 AUTO_INCREMENT 값을 제외한 column명과 data값을 매핑하여 입력
  • 숫자는 그냥 적어도되지만, 문자는 따옴표('')로 묶어 입력

1) 방법1 : INSERT INTO [테이블명] VALUES(value1, value2, value3...)

  • 🔍 INSERT INTO model_info VALUES(1, 'i7', '7700', 'Kaby Lake');
  • 🔍 INSERT INTO model_info VALUES(2, 'i5', '6800', 'Ice Lake');
  • 🔍 INSERT INTO model_info VALUES(3, 'i7', '8900', 'Elder Lake');

2) 방법2 : INSERT INTO [테이블명] (column1, column2, column3...) VALUES (value1, value2, value3...)

  • 🔍 INSERT INTO model_info (name, model_num, model_type) VALUES('i3', '3300', 'Hi Lake');
  • 🔍 INSERT INTO model_info (name, model_num, model_type) VALUES('i9', '9900', 'Fire Lake');
  • INSERT INTO model_info (name, model_num, model_type) VALUES('i7', '7230', 'Yaho Lake');

3. 데이터 읽기(Read)

  • 데이터 전체를 조회할 수도 있고, 지정한 컬럼(필드) 추출해서 읽을 수도 있음
  • 읽어올 데이터의 필드명을 임시로 바꿔 표시할 수도 있고, 읽어올 때 데이터 정렬도 가능
  • 필드값에 비교연산자나 논리연산자를 통해 해당하는 데이터만 추출할 수 있음
  • 어떤 내용이 값에 포함되어진 것들만 추출할 수도 있고, 해당하는 결과물들 중 일부만 읽어올 수 있음

1) 데이터 전체 읽기 : SELECT * FROM [테이블명]

  • 🔍 SELECT * FROM model_info;

2) 특정 컬럼 추출해서 읽기 : SELECT [필드명1], [필드명2], ... FROM [테이블명];

  • 🔍 SELECT id, name, model_num FROM model_info;

3) 특정 컬럼 추출해서 읽으면서 표시할 컬럼명 변경하기 : SELECT [필드명1] AS [표시할필드명1], [필드명1] AS [표시할필드명1] FROM [테이블명];

  • 임시로 변경하여 읽어오는 것이기 때문에 원본 테이블은 수정되지 않음
  • 🔍 SELECT name AS cpu_name, model_num AS cpu_num FROM model_info;

4) 데이터 정렬해서 읽기 : SELECT * FROM [테이블명] ORDER BY [정렬시킬기준필드명][정렬 방식];

  • 정렬 방식 : DESC(내림차순) / ASC(오름차순)
  • 🔍 내림차순 : SELECT * FROM model_info ORDER BY id DESC;
  • 🔍 오름차순 : SELECT * FROM model_info ORDER BY id ASC;

5) 조건에 일치하는 데이터만 검색(추출)하기 : 비교연산자, 논리연산자

  • 비교연산자 : SELECT * FROM [테이블명] WHERE [필드명][비교연산자(=,>,<)] '값'
    • 🔍 id값 5인 데이터 검색 : SELECT * FROM model_info WHERE id = 5
    • 🔍 id값 3보다 작은 데이터 검색 : SELECT * FROM model_info WHERE id < 3
    • 🔍 id값 3보다 큰 데이터 검색 : SELECT * FROM model_info WHERE id > 3
  • 논리연산자 : SELECT * FROM 테이블명 WHERE [필드명][비교연산자(=,>,<)] '값' [논리연산자(or, and)][필드명] [비교연산자(=,>,<)] '값';
    • 🔍 id값 0보다 크거나 2보다 작은 : SELECT * FROM model_info WHERE id > 0 OR id < 2;
    • 🔍 id값 1이고, name값이 'i7'인 데이터 검색 : SELECT * FROM model_info WHERE id = 1 AND name = 'i7';

6) 조건에 부분 일치하는 데이터만 검색(추출)하기 : SELECT * FROM [테이블명] WHERE [필드명][LIKE문];

  • LIKE문은 정규식처럼 원하는 값이 포함되는 값만을 추출할 수 있음
  • % 제한없는 값이 위치할 수 있고, _는 1글자 갯수를 제한하는데 표현함
  • LIKE문
    • X으로 시작되는 값을 모두 찾을 경우 : LIKE 'X%';
    • X으로 끝나는 값을 모두 찾을 경우 : LIKE '%X';
    • X가 포함된 값을 모두 찾을 경우 : LIKE '%X%';
    • X 기준으로 글자수 제한하여 일치하는 값을 찾을 경우 : LIKE '__X__';
  • 🔍 SELECT * FROM model_info WHERE model_type LIKE '%Lake';
  • 🔍 SELECT * FROM model_info WHERE model_type LIKE 'Hi%';
  • 🔍 SELECT * FROM model_info WHERE model_type LIKE '_ce_';

7) 읽어올 결과들 중 일부만 데이터 가져오기 : [LIMIT]

  • READ문에 맨 마지막에 위치해야 함(일겅올 결과들에 갯수 제한을 주기 때문)
  • 🔍 전체 데이터 중 10개만 가져오기 : SELECT * FROM [필드명] LIMIT 10;
  • 🔍 전체 데이터 중 100번째부터 10개만 가져오기 : SELECT * FROM [필드명] LIMIT 100, 10;

8) 조건의 조합 순서 : 검색 조건 + 정렬 조건 + 제한 조건

  • 조합 순서 : SELECT FROM WHERE ORDER BY LIMIT
  • 🔍 전체 데이터 중 10개만 가져오기 : SELECT * FROM [필드명] LIMIT 10;
  • 🔍 전체 데이터 중 100번째부터 10개만 가져오기 : SELECT * FROM [필드명] LIMIT 100, 10;

4. 데이터 수정(Update)

  • 데이터 갱신은 테이블에 저장된 데이터를 수정하는 것
  • 일반적으로 WHERE 조건문과 함께 쓰임(특정한 조건에 맞는 데이터만 수정하는 경우가 많음)
  • 왜냐하면 한 컬럼의 모든 데이터를 바꾸는 일은 실수일 가능성이 높아 막아둠

1) 데이터 수정 : UPDATA [테이블명] SET [필드명] = '바꾸고자하는 값' WHERE [필드명] = 값

  • id값이 3인 레이블의 name필드와 model_num필드를 'i5', '5500'으로 수정
    • 🔍 UPDATE model_info SET name = 'i5', model_num = '5500' WHERE id = 3;

5. 데이터 삭제(Delete)

  • 일반적으로 WHERE 조건문과 함께 쓰임(특정한 조건에 맞는 데이터만 삭제하는 경우가 많음)
  • 🔥 전체를 다 지우는 방법을 UPDATE처럼 막아두진 않았으나, 사고로 이어질 수 있기 때문에 주의

1) 데이터 삭제 : DELETE FROM [테이블명] WHERE [특정 컬럼] = '값';

  • id값이 3인 로우(레이블)를 지워라
    • DELETE FROM model_info WHERE id = 3;
profile
Keep Going, Keep Coding!

0개의 댓글