본문 바로가기
Programming/MariaDB

Maria DB 이론_ 05. 레코드

by yoon9i 2024. 3. 6.
/*
    <레코드>

    ◎ 레코드(Record)는 테이블에 소속된 실제 데이터를 의미한다.
    ◎ 레코드 하나는 하나의 행(Row)을 의미한다.

    <삽입하기>

    ◎ 테이블에 레코드를 추가하는 것을 삽입(Insert)이라고 한다.

        INSERT INTO `스키마`.`테이블` ([`대상 열`,..]) VALUES (값,...);

        -위 쿼리에서 콤마로 구분한 한 개 이상의 대상 열의 순서에 맞게 콤마로 구분한 값 한개 이상이 순서에
         맞게 쌍을 이루어야 한다.
        -하나의 INSERT 쿼리로 여러 레코드를 한 번에 삽입하기 위해 아래와 같이 콤마 로 구분하여 값 세트(Set)
         를 여러개 작성할 수 있다.

         INSERT INTO `스키마`.`테이블` ([`대상 열`,...]) VALUES
            (값,...),
            (값,...),
            (값,...),...;

    <조회하기>

    ◎ 테이블에 존재하는 레코드를 조회(선택)하기 위해 아래와 같이 명령한다.

        SELECT [ALL | DISTINCT]? `열 이름,...`
        FROM `스키마`.`테이블`
        [JOIN ...]
        [WHERE [조건]]?
        [GROUP BU `통계 취합 기준 열`,... [HAVING[통계에 의한 각 결과의 조건]]?]?
        [ORDER BY `정렬 기준 열`,... [ASC|DESC]?]?
        [LIMIT [레코드 개수]?];

        - 조회하고자 하는 열 이름을 명시하지 않고 전체 열을 순서대로 조회하기 위해 열 이름 대신 * 로 대신할수 있다.
          (실무에선 잘 안씀)
        - WHERE : 레코드를 선택하는 기준을 주기 위해 사용한다. 기술된 조건에 부합하는 레코드만 선택된다.
        - GROUP BY : 통계 함수(가령, COUNT(), AVG() 등)를 사용할 때 레코드를 묶어낼때 참고할 값을 가지는
                     기준 열을 나열한다. GROUP BY 없이 통계함수를 사용할 경우 SELECT 에 의해 선택되는
                     레코드 전체를 통계 대상으로 한다.
        - ORDER BY : 레코드 선택 결과를 후행하는 정렬 기준 열 이 가지는 값에 따라 정렬하고자 할 때 사용한다.
                     생략시 기본키(Primary Key)가 있다면 기본키 기준 오름차순 정렬을, 없다면 삽입순 대로 선택된다.
            -> ASC : 오름차순 정렬(Ascending,생략시 기본값)
            -> DESC : 내림차순 정렬(Descending)
        - LIMIT : 선택할 레코드의 개수를 제한한다. 생략시 선택 결과를 제한하지 않고 전체 결과를 반환한다.

        - JOIN
            -> JOIN 은 SELECT 를 하고 있는 대상 테이블이 가지고 있지 않은 데이터를 다른 테이블에서 가져오기
               위해 사용한다.
            -> 주로 외래 키 관계인 것들 간에 JOIN 을 하지만, 반드시 그렇게 해야하지는 않다.
            -> JOIN 을 위한 구조는 아래와 같다.

                [LEFT | RIGHT | INNER] JOIN `대상 스키마`.`대상 테이블` ON [JOIN 조건]

                - LEFT JOIN 혹은 LEFT OUTER JOIN
                : JOIN 키워드를 대상으로 왼쪽(SELECT 대상인 테이블)이 가지는 데이터를 기준으로한다.
                - RIGHT JOIN 혹은 RIGHT OUTER JOIN
                : JOIN 키워드를 대상으로 오른쪽(JOIN 대상인 테이블)이 가지는 데이터를 기준으로 한다.
                - INNER JOIN
                : SELECT 대상인 테이블과 JOIN 대상인 테이블이 모두 가지고 있는 데이터를 기준으로 한다.
                - CROSS JOIN
                : 생략
                - Full Outer Join
                : MariaDB 는 Full Outer Join 을 지원하지 않음으로 두 SELECT 결과를 UNION 하여 결합한다.

        - UNION
            -> UNION 은 열의 개수가 같은 두 SELECT 의 결과를 하나로 합치기 위해 사용한다. 두 SELECT 가 가지는
               열의 개수가 상이할때에는 사용할 수 없음으로 유의한다.

        - Sub Query
            -> 서브 쿼리(Sub Query) 는 현재 SELECT 하고 있는 열로써 새로운 SELECT 를 하기위해 사용한다.
            -> 서브쿼리의 결과는 반드시 한 개의 열을 가지고 있어야 한다.
            -> 사용하기는 편리하지만 JOIN 보다 속도가 느림으로 불가피한 상황이 아니면 사용하지 않는다.


    <수정하기>

    ◎ 레코드를 수정하기 위헤 아래와 같이 명령한다.

        UPDATE `스키마`.`테이블`
        SET [`값을 변경할 열 이름` = [새로운 값]],...

        위 명령어는 해당 테이블의 모든 레코드의 열 값을 수정하겠다는 의미임으로 임의로 안전 장치를 해에잫지 않는 이상
        실행되지 않는다. 아래와 같이 수정하고자 하는 레코드를 특정지을수 있는 별도의 조건을 부여해야만 한다.

        UPDATE `스키마`.`테이블`
        SET [`값을 변경할 이름` = [새로운 값]],...
        WHERE 조건

        조건에 부합하는 레코드 중 수정될 레코드의 개수를 아래와 같이 LIMIT 키워드를 이용하여 제한 할수 있다.

        UPDATE `스키마`.`테이블`
        SET [`값을 변경할 이름` = [새로운 값]],...
        WHERE [조건]
        LIMIT [개수];


    <삭제하기>

    ◎ 레코드를 삭제하기 위해 아래와 같이 명령한다.

        DELETE FROM `스키마`.`테이블`;

        위 명령어는 해당 테이블의 모든 레코드를 삭제하겠다는 의미임으로 안전 장치를 해제하지 않는 이상 실행
        되지 않는다. 아래와 같이 삭제하고자 하는 레코드를 특정지을 수 있는 별도의 조건을 부여해야만 한다.

        DELETE FROM `스키마`.`테이블`
        WHERE [조건];

        조건에 부합하는 레코드 중 삭제될 레코드의 개수를 아래와 같이 LIMIT 키워드를 이용하여 제한할수 있다.

        DELETE FROM `스키마`.`테이블`
        WHERE [조건]
        LIMIT [개수];
        #위 순서는 고정임으로 유의할것








*/

'Programming > MariaDB' 카테고리의 다른 글

Maria DB 이론_ 07. 함수  (0) 2024.03.06
Maria DB 이론_ 06. 연산자  (0) 2024.03.06
Maria DB 이론_ 04. 테이블 및 열  (0) 2024.03.06
Maria DB 이론_ 03. 스키마  (0) 2024.03.06
Maria DB 이론_ 02. 사용자  (0) 2024.03.06