Skip to content

DML

< SQL DML (데이터 CRUD) >

  • Create(데이터 생성, 입력)

    INSERT INTO 테이블명 VALUES(값1, 값2);: 테이블 전체 컬럼에 대응하는 값을 모두 넣기. 전체 레코드를 순서대로 입력.

    이때 문자열((VARCHAR))은 quotation mark(('))를 이용해야 한다.

    INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES(값1, 값2);: 테이블 특정 컬럼에 대응하는 값만 넣기.

    이때 지정되지 않은 컬럼은 디폴트 값 혹은 NULL 값이 들어감.


  • Read(데이터 읽기, 검색)

    • 기본구조: SELECT

    SELECT * FROM 테이블명;: 테이블 전체 컬럼의 데이터 모두 읽기.

    *: 전체라는 뜻.

    SELECT 컬럼1, 컬럼2 FROM 테이블명;: 테이블 특정 컬럼의 데이터만 읽기.

    SELECT 컬럼1 AS 바꿀컬럼명, 컬럼2 AS 바꿀컬럼명 FROM 테이블명;: 테이블 특정 컬럼의 데이터를 검색하되, 표시할 컬럼명도 다르게 하기.

    ORDER BY 정렬기준컬럼명 DESC/ASC;: 데이터를 내림차순/오름차순 정렬해서 읽기.

    • 조건문

    WHERE 컬렴명 >/=/< 값;: 조건문에 맞는 데이터만 검색.

    뒤에 OR/AND과 같 논리 연산자도 사용 가능.

    WHERE 필드명 LIKE;: 조건에 맞는 데이터만 검색.

    LIKE '김%';: '김'으로 시작하는 모든 값.

    LIKE '%김%';: '김'이 들어간 모든 값.

    LIKE '김__';: '김'으로 시작되고 뒤에 2글자가 붙는 값. 앞도 가능.

    LIMIT 100, 10;: 결과중 100번째 다음부터, 10개만 가져오기.

    LIMIT 10;: 결과중 처음부터 10개만 가져오기.


  • Read_additional

    • COUNT

    SELECT COUNT(*) FROM tb;: 전체 row의 수 반환.

    SELECT COUNT(column) FROM tb;: 특정 column의 row 수를 반환.

    결측값은 count 되지 않음.

    • 통계: SUM, AVG, MAX, MIN

    SELECT SUM(column) FROM tb;

    SUM(): column 값의 합계.

    AVG(): column 값의 평균.

    MAX(): 최대 column 값.

    MIN(): 최소 column 값.

    • GROUP BY

    SELECT AVG(column) FROM tb GROUP BY gender;: 그룹을 지어서, 데이터를 분석.

    GROUP BY: WHERE 뒤에서 각 그룹별 통계 확인.

    • HAVING

    SELECT column FROM tb GROUP BY column HAVING COUNT(*)>=100;: GROUP BY의 column에 대한 조건 비교.

    • DISTINCT

    SELECT DISTINCT cloumn FROM tb;: 중복된 column 값을 출력하지 않음.

    • AS

    SELECT COUNT(*) AS abc FROM tb;: 결과값의 이름 변경.

    tb a: Table 이름 다음 한칸 띄고 새로운 이름을 쓰면, 구문 안에서 AS와 유사한 역할.

    • INNER JOIN

    JOIN: 두 개 이상의 Table로부터 필요한 데이터를 연결해 하나의 포괄적인 구조로 결합시키는 연산.

    FROM tb1 INNER JOIN tb2 ON 매칭조건;: Join하는 Table의 ON 조건이 일치하는 결과만 출력.

    매칭조건 예시: tb1.COLUMN = tb2.COLUMN

    • OUTER JOIN(참고)

    INNER JOIN과 달리 조건에 없는 값은 null로 다 붙임.

    LEFT나 RIGHT와 같이 쓰이며, 각 방향에 있는 테이블을 기준으로 함.

    • SubQuery

    SubQuery: SQL문 안에 포함된 (SQL)문. JOIN과 유사.

    SELECT column FROM tb1 WHERE column 비교 (SELECT column FROM tb2 WHERE 조건);: tb1의 column 값과 tb2의 column 값을 비교.

    비교: IN, >, <, = 등.

    SELECT column FROM (SELECT column FROM tb1);: 다른 Table에서 몇 개 값만 가져오기.


  • Update(데이터 수정, 갱신)

    조건문 없는 전체 데이터 수정은 실수로 판단하여 막고 있음. WHERE 조건문과 같이 쓰임.

    UPDATE 테이블명 SET 기존컬럼명 = '수정컬럼명' WHERE 특정컬럼 >/=/< '값';: 특정한 조건에 맞는 데이터만 수정.

    다수의 컬럼 값 수정 가능.


  • Delete(데이터 삭제)

    DELETE FROM 테이블명 WHERE 특정 컬럼 >/=/< '값';: 특정한 조건에 맞는 데이터만 삭제.

    DELETE FROM 테이블명;: 테이블에 저장된 모든 데이터 삭제.