[MySql] DML-INSERT, SELECT, UPDATE, DELETE

hyun·2022년 9월 12일
0

SQL

목록 보기
4/7

📚 DML (Data Manipulating Language)

  • 데이터의 삽입, 조회, 수정, 삭제 등에 쓰이는 쿼리를 DML이라 한다.

예제에 앞서, students라는 테이블을 아래처럼 만들었다.

CREATE TABLE students( id INT PRIMARY KEY, name VARCHAR(10), sex VARCHAR(6));

삽입 (INSERT)

  • 테이블에 새로운 레코드(행)을 삽입한다.

INSERT 예제

INSERT INTO students VALUES(2019104796, 'Hyun Go', 'MALE');

아직 다루진 않았지만 SELECT 문을 통해 데이터를 조회하면 다음처럼 데이터가 잘 들어간 것을 볼 수 있다.

후의 예제를 위해서 데이터를 하나 더 추가하겠다.

INSERT INTO students VALUES(202013231, 'Hyun Park', 'MALE');

조회 (SELECT)

  • 테이블에서 조건에 맞는 데이터를 조회한다.
  • 조건문은 WHERE 절을 통해 넣을 수 있다.
  • GROUP BY를 통해 열을 그룹으로 묶을 수 있다.
  • HAVING을 통해 그룹화한 열에서 조건을 적용할 수 있다.
  • ORDER BY를 통해 정렬하여 조회할 수 있다.

SELECT 예제

모든 행

가장 간단하게 students 테이블의 모든 행을 출력해보자.

SELECT * FROM students;


특정 행 (WHERE)

다음은 이름이 Hyun Park인 데이터를 조회해보자.

SELECT * FROM students WHERE name="Hyun Park";


Hyun Park의 데이터만 잘 가져온 것을 확인할 수 있다.

다음은 Hyun Go의 id를 조회해보자.

SELECT id FROM students WHERE name="Hyun Go";


그룹화 (GROUP BY)

다음은 테이블에 남녀 데이터를 좀 채우고, 성별로 GROUP해서 출력해보자.

성별로 그룹했을 때의 유니크한 값이 출력되는 것을 확인할 수 있다.


HAVING

아래는 HAVING을 통해서 male 조건만 출력해본 사진.


정렬 (ORDER BY)

DESC는 descending의 줄임말, ASC는 Ascending의 줄임말이다.
따라서 DESC는 내림차순, ASC는 오름차순이다.

SELECT * FROM table ORDER BY column;


id 값을 ASC로 정렬한 결과이다.
반대로 DESC로 정렬하면 다음처럼 된다.


이렇게 SELECT문을 통해 조건에 맞는 행의 필요한 데이터를 조회할 수 있다.

수정(UPDATE)

  • 기존에 존재하는 레코드(행)의 데이터를 수정할 때 사용한다.

UPDATE 예제

아뿔싸, 알고 보니 Park Hyun은 여자였다.
그녀의 성별을 제대로 수정해주자.
WHERE를 통해 조건문을 설정하는 것은 동일하다.
만약 테이블의 모든 데이터에 처리를 해주려면 WHERE를 쓰지 않으면 된다.

UPDATE students
SET sex="FEMALE"
WHERE name="Hyun Park";

이렇게 데이터가 잘 수정된 것을 볼 수 있다.


삭제(DELETE)

  • 행을 삭제할 때 쓰는 쿼리.

DELETE 예제

우선 여자인 데이터를 테이블에서 삭제해본다고 하자.

DELETE FROM students WHERE sex="FEMALE";

데이터가 잘 삭제되었다.

조건문 없이 모든 데이터를 삭제할 수도 있다.

DELETE FROM students;

모두 삭제된 것을 볼 수 있다.

0개의 댓글