CRUD

  • Create(데이터 추가, row 추가)와 Read(가져오기 +  필터링, 정렬, 데이터수 제한)는 중요하다
  • Update(수정)와 Delete는 없을 수 도 있다.


Create & READ: INSERT문과 SELECT문

참고 사이트 : https://www.w3schools.com/sql/sql_insert.asp

image


우리가 만들어야할 table예시

image



  • table구조 확인하는 명령어 : DESC topic;
    image

  • AUTO_INCREMENT되는 id칼럼을 입력해주지 않으면, 값은 자동으로 +1 될 것이다.
  • 먼저, row를 삽입하는 것이므로,
    INSERT INTO topic () VALUES(); 형태를 작성하고, 앞()에는 칼럼명, 뒤 ()에는 value값을 입력할 준비를 한다.
    image

  • 칼럼-value를 하나씩 채워나간다.
    image
    image

  • create라는 날짜시간 칼럼에서는 직접 값을 입력해도 되지만, NOW()라는 함수를 통해 현재 날짜가 자동입력되도록 한다.
    image

  • table의 내용물(모든 칼럼)을 확인하는 명령어 : SELECT * FROM topic;
    image

    나머지도 다 입력하여 SELECT * FROM table;로 확인한다.
    image



READ

  • 일부 칼럼만 보기 : * 대신 컬렴명을 적어준다.
    mysql> SELECT id, title, created, author FROM topic;
    image


  • mysql select syntax를 구글에서 검색하여 나온 공식문서의 syntax설명을 보자.
    image
    공식 문서에서 SELECT문을 보면,
    [ ]는 생략가능하다는 뜻, select_expr = projection = 표현되어야할 칼럼들을 의미한다.

  • 만약, SELECT 다음에 FROM 테이블명이 없다면?
    해당 projection을 컬럼으로 하는 어떤 데이터가 보여진다.
    image


  • FROM table명 다음에 올 수 있는 WHERE 칼럼명=value; -> 엑셀의 칼럼 필터링같이, 특정칼럼 = 값의 형태로 author = 'egoing'인 것만 골라 올 수 있다.
    mysql> SELECT id, title, created, author FROM topic WHERE author='egoing';
    image


  • FROM -> WHERE 다음에 올 수 있는 ORDER BY = 칼럼명 ASC/DESC ;오름/내림차순 정렬을 할 수 있다.
    SELECT id, title, created, author FROM topic WHERE author='egoing' ORDER BY id DESC;image


  • row의 개수를 제한할 때는 LIMIT row수;를 달아준다.
    mysql> SELECT id, title, created, author FROM topic WHERE author='egoing' ORDER BY id DESC LIMIT 2;
    image

+ Recent posts