ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] 기본 문법 - (2)
    카테고리 없음 2024. 4. 14. 18:00
    728x90
    반응형

    1. INSERT INTO

    테이블에 새로운 레코드를 추가할 때 사용함
    아래처럼 2가지 방법으로 할 수 있음

    INSERT INTO tableName (column1,column2 ...) 
    VALUES (value1, value2 ...);

    INSERT INTO tableName 
    VALUES (value1, value2 ...);

     

     

    특정 column에만 데이터를 추가할 수도 있음

    INSERT INTO tableName (특정 column1 , 특정 column2...)
    VALUES (value1, value2 ...);

     

    그러면 해당 column에만 데이터가 추가되고 나머지 값은 null로 됨

     

    2. IS NULL / IS NOT NULL

    특정 column이 null 값을 가지고 있는지 테스트할 때 IS NULL을 사용한다고 한다

     

    SELECT columnNames
    FROM tableName
    WHERE columnName IS NULL

     

    특정 column이 null 값을 가지지 않는지 테스트할 때는 IS NOT NULL을 사용한다고 한다

    SELECT columnNames
    FROM tableName
    WHERE columnName IS NOT NULL

     

    ex: 

    SELECT UserName, PhoneNumber, Address

    FROM User

    WHERE Address IS NULL; 

     

    SELECT UserName, PhoneNumber, Address

    FROM Users

    WHERE Address IS NOT NULL;

     

    3. UPDATE

    기존 레코드를 수정할 때 사용함

     

    UPDATE tableName
    SET column1 = value1, column2 = value2...
    WHERE condition

     

    ex: UPDATE Users

    SET UserName = 'test22', Address = '서울시 마포구 ...'

    WHERE UserID = 102;

     

    UPDATE를 사용하면서 주의할 점은 WHERE을 사용해서 업데이트할 레코드를 지정하지 않으면 테이블의 모든 레코드가 업데이트 되기 때

    문에 반드시 WHERE을 써서 업데이트 할 것만 업데이트 시켜야한다

     

    ex: 

    UPDATE Users

    SET UserName = 'a';

    => 이렇게 WHERE을 생략한 순간 Users 테이블의 모든 UserName이 'a'로 변경된다... 조심

     

    4. DELETE

    테이블에 있는 기존 레코드를 삭제할 때 사용함

    DELETE FROM TableName WHERE condition;

    UPDATE와 마찬가지로 WHERE을 생략하면 테이블의 모든 데이터가 지워지므로 WHERE을 붙여 특정 레코드만 삭제되게 하기

     

    ex: 

    DELETE FROM Users WHERE UserName = 'james';

     

    만약 테이블을 삭제하지 않고 테이블 안의 모든 데이터를 삭제시키고 싶다면 WHERE을 생략하고 테이블이름만 작성하면 됨

    이렇게 삭제한 경우에는 테이블 구조, 인덱스, 속성 등은 유지됨

    DELETE FROM TableName;

    ex: 

    DELETE FROM Users;

     

     

    그런데 여기서 궁금해졌다

    DELETE와 비슷한 DROP, TRUNCATE가 있는데 각각 어떻게 다를까?

     

    DELETE

    - 원하는 개별 row만 삭제 가능

    - WHERE문이 없다면 테이블의 모든 행 삭제되지만 테이블구조, 인덱스 등은 유지

    - 삭제 후 롤백 O

     

    TRUNCATE

    - 항상 데이터를 한꺼번에 삭제함 (특정 row 삭제 x)

    - 데이터만 삭제되고 테이블의 구조, 인덱스 등은 유지됨

    - DELETE보다 빠름

    - 삭제 후 롤백 X

     

    DROP

    - 테이블 자체를 삭제함

    - 테이블과 관련된 구조, 인덱스, 데이터 등이 완전히 제거됨

    - 삭제 후 롤백 X

     

    5. LIMIT

    반환할 레코드의 수를 지정하는데 사용되는 키워드

     

    SELECT columnName(s)
    FROM tableName
    WHERE condition
    LIMIT number; 

     

    OFFSET을 더해서 특정 부분의 레코드부터 가져올 수 있음

     

    SELECT columnName(s)
    FROM tableName
    WHERE condition
    LIMIT number OFFSET number;

    ex:

    SELECT * FROM Users

    LIMIT 5 OFFSET 3;

     

    => 5개의 레코드를 반환하고 4번째 레코드(OFFSET3) 에서부터 시작해 5개를 반환할 거임

     

    6. MIN, MAX

    선택한 column에서 가장 작은 값, 가장 큰 값을 리턴함

     

    MIN(columnName)
    FROM tableName
    WHERE condition;

    MAX(columnName)
    FROM tableName
    WHERE condition;

    ex: 

    SELECT MIN(Price)

    From Products;

    반응형
Designed by Tistory.