티스토리 뷰
안녕하세요 :)
MySQL을 주제로한 세번째 포스팅은 쿼리문 연습 입니다.
이번 포스팅에서 다루어볼 네가지 쿼리문을 데이터 조작 언어 또는 DML이라고 합니다.
쿼리문 이전에 데이터 베이스를 조회하는 것은 SHOW databases;, 데이터 베이스 선택은 USE database;입니다.
이번에 해볼것은 임의의 자료를 쿼리문을 통해 생성하고 변경하고 삭제하고 조회하는 연습을 해보겠습니다.
먼저 기본적으로 쿼리문은 네가지가 있습니다. SELECT, INSERT, UPDATE, DELETE
저번 포스팅에 언급하였던것처럼 쿼리문은 예약어 이기 때문에 대문자로 표기하였습니다. 실제 프로그래밍시 소문자로입력하여도 정상적으로 작동은 합니다, 하지만 테이블 이름 열이름 등과의 구분을 위해 예약어를 사용하는것이 좋습니다.
제가 느낀 쿼리문은 마치 리눅스 명령어 같습니다.
어떠한 부분에서 그렇게 생각하였냐면 여러 옵션을 부착할수 있다는 점입니다.
앞으로 4가지 쿼리문을 소개드리며 어떠한 옵션이 있는지 또 어떻게 활용하는지 공부해 보겠습니다.
1. SELECT
기본 형태
SELECT * FROM 테이블;
FROM뒤의 데이터 베이스의 모든 열을 조회
만약 sample이라는 이름의 데이터 베이스에서 sampletbl이라는 테이블의 전체 열을 조회 한다면 아래와 같습니다.
위와 같은 상태에서 조회에 대한 여러 옵션을 줄수 있습니다.
만약 열 정보를 골라서 보고싶다면 골라보고싶은 열들의 이름을 ,(콤마)로 구분하여 SELECT 와 FROM사이에 입력해주면 됩니다.
위의 예제 테이블에서 ID와 ADDLESS만 골라서 조회해보겠습니다.
그렇다면 쿼리문은 SELECT ID,ADDLESS FROM sampletbl; 이겠죠! 확인해 보겠습니다
또 만약 열에 조건을 걸어 행을 골라서 보고싶다면 WHERE 옵션을 사용하면 됩니다.
만약 위에 열을 걸리낸 예제에서 ADDLESS가 대구인 데이터의 ID와 ADDLESS만 조회하고 싶다면
쿼리문은 SELECT ID,ADDLESS FROM sampletbl WHERE ADDLESS="대구"; 입니다.
기본적인 SELECT에 대한 내용은 여기까지 다루겠습니다. 오름 내림차순정렬등 여러 옵션이 또 붙을수 있지만 다음에 또 다루어 보겠습니다.
group by)
겹치는 데이터가 존재 할시 이를 통합시킬 때 사용한다 이때 집계 함수를 사용하게 된다.
만약 NAME이 겹치는 사람들끼리의 AGE 값을 더하고 싶다면 아래와 같다.
위를 보면 NAME 값이 jang이라는 사람이 둘 존재 하게 되는데 SUM(AGE)를 통해 나이를 더한값을 집계하여 위와 같이 나타낼수 있다.
이와 같은 집계함수로는 SUM(), MIN(), MAX(), COUNT(), AVG() 등이 있다. 각함수의 조건을
GROUP BY를 통해 엮어주면 된다 위에서는 같은 NAME을 기준으로 하였기 때문에 GROUP BY NAME을 사용하게 된 것이다.
2. INSERT
INSERT 는 데이터를 새로 추가할때 사용하는 쿼리문입니다.
방법은 크게 두가지로
1 열을 언급한 행 추가
2 열을 언급하지 않고 모든 열에 대한 데이터가 초기화된 행 추가
첫번째 방법은 데이터를 직접적으로 열과 엮어주며 추가할때 헷갈리지 않고 좋습니다.
INSERT INTO 테이블 (열이름1, 열이름2, ~) VALUES (데이터1, 데이터2, ~ );
이러한 방식을 채택하여 ki라는 ID의 기라는 NAME의 유성이라는 ADDLESS를 갖는행을 추가해보겠습니다.
조회한 결과는 다음과 같습니다.
두번째 방법은 열을 언급하지 않고 데이터를 모두 넣어주어 행을 추가하는것인데 첫번째보다 쉽습니다.
INSERT INTO 테이블 VALUES (데이터1, 데이터2, ~ );
jeon이라는 ID를 갖는 전 이라는 이름의 양주 라는 ADDLESS를 갖는 행을 추가해보겠습니다.
조회결과는 다음과 같습니다.
3. UPDATE
update는 이미 삽입된 데이터를 수정하는 역할 입니다.
만약 열 내의 모든 값을 하나의 통일된 값으로 바꾸고 싶다면 다음과 같습니다.
UPDATE 테이블 SET 열 = "데이터";
위의 테이블의 NAME에 해당하는 값을 모두 이름없음으로 update 해본다면 다음과 같습니다.
UPDATE sampletbl SET NAME = "이름없음";
만약 열 내에서 내가 원하는 행만 바꾸고 싶다면 WHERE옵션을 사용하는 것입니다.
UPDATE sampletbl SET NAME = "전" WHERE ID="jeon";
4. DELETE
delete는 삽입되어 있는 데이터를 삭제할때 사용합니다.
DELETE FROM 테이블;
테이블에 있는 모든 데이터를 삭제합니다.(예제로는 다루지 않을꺼에요 ㅎ...)
DELETE FROM 테이블 WHERE 열=데이터;
WHERE절에 맞는 데이터만 삭제합니다.
위의 테이블에서 lee의 행을 지워보겠습니다.
'Database > MySQL' 카테고리의 다른 글
MySQL - 파일을 데이터로 포함시킨 노래방DB 구현 (0) | 2021.05.09 |
---|---|
MySQL - 리눅스 환경에서 클라이언트 접속 (0) | 2021.05.08 |
MySQL - 기본개념, 실습 (0) | 2021.04.30 |
MySQL - 샘플데이터베이스 연동 (0) | 2021.04.30 |
MySQL - intro (0) | 2021.04.30 |