ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] SQL 기초 (CREATE TABLE, INSERT INTO, SELECT, ALTER TABLE, UPDATE, DELETE FROM)
    SQL & Database 2021. 9. 30. 19:13

    Introduction to SQL

    -Relational DB 데이터를 저장하기 위한 프로그래밍 언어

    -intergrity: 무결성

    -Web frameworks DB 응용프로그램에서 널리

     

    Relational Databases

    -하나 이상의 테이블로 DB 구성하는 것이 RDBMS

    -DB 데이터 타입 INTEGER, TEXT, DATE, REAL (실수)

     

    Statesments 구문

    CREATE TABLE table_name (
        column_1 data_type,
        column_2 data_type,
        column_3 data_type
    );

    -Columns 이름과 data type으로 이루어져 있음. 때로는 값으로 들어감

    -여기서 CREATE TABLE 하는 부분을 clause 라고 한다.

    -- 테이블의 모든 행(row)을 가져온다.
    SELECT * FROM table;
    
    -- 새로운 테이블을 생성한다.
    CREATE TABLE students (
        column_1 data_type,
        column_2 data_type,
    );
    
    -- 테이블에 있는 행을 업데이트 한다.
    UPDATE table
    SET column_1 = new_value
    WHERE id = 3;

     

    CREATE

    CREATE TABLE celebs (
        id INTEGER,
        name TEXT,
        age INTEGER
    ); -- 이미 있는 테이블 이름으로 만들면 에러가 난다.

     

    INSERT

    INSERT INTO celebs (id, name, age)
    VALUES (1, 'Justin Bieber', 22);
    
    -- 여러 행을 한번에 INSERT 하는 방법
    INSERT INTO table (col1, col2, col3)
    VALUES
    (row1_val1, row1_val2, row1_val3),
    (row2_val1, row2_val2, row2_val3),
    (row3_val1, row3_val2, row3_val3);

     

    SELECT

    SELECT name FROM celebs;

    - SELELCT statement query라는 것을 나타내는 절 (clause)

    - '*' 모든 column 나타내는 wildcard

    - SELECT 항상 result set 하는 새로운 테이블을 return 한다

    - 기본적으로 table 이미 있던 순서대로 나타난다. ORDER BY 변경 가능

    ALTER

    ALTER TABLE celebs
    ADD COLUMN twitter_handle TEXT;

    -ALTER TABLE change 만들 있게 하는 clause .

    -NULL SQL에서 missing 또는 unknown 데이터를 나타내는 특별한

    -COLUMN 새로 추가 되면 일단 null 값이 박힌다.

    -새로운 column 항상 마지막에 붙는다. 중간에 삽입할수 없음.

    -하지만 select 원한는 순서대로 불러 있음

    UPDATE

    UPDATE celebs
    SET twitter_handle = '@mincheol'
    WHERE id = 4;

    -update 이미 있는 기록을 변경함

    -ALTER columns 수정하고 UPDATE rows를 수정한다. Row update 있고 삭제 추가는 못한다.

     

    DELETE

    --IS NULL은 null값이 들어 있을 경우 true를 반환한다.
    DELETE FROM celebs
    WHERE twitter_handle IS NULL;
    -- 이렇게 하면 조건에 걸리는게 많아도 처음 5개만 삭제한다.
    DELETE FROM table
    WHERE condition
    LIMIT 5;

     

    Constraints

    CREATE TABLE celebs (
        id INTEGER PRIMARY KEY,
        name TEXT UNIQUE,
        date_of_birth TEXT NOT NULL,
        date_of_death TEXT DEFAULT 'Not Applicable'
    );

    -column data type 정한 다음에 추가하는 info.

    -특정 restriction 부합하지 않는 inserted date reject

    -Primary key columns row uniquely identify하기 위해 사용. 이미 있는 넣으려 에러 생김

    -Unique columns primary key 비슷. 하지만 여러게 columns unique 있음

    -NOT NULL 적힌 column 반드시 값을 가져야함. 값이 없는 것을 넣으면 에러가

    -DEFAULT column 값이 없을 경우 자동으로 설정한 값이 들어감

    -테이블에 contraints 넣는 이유: 데이터의 reliability (신뢰성)   consistency (일관성), invalid data 방지하기 위해. Missing data를 방지. Null값이 들어가기 보다는 디폴트로 0 들어가게 . Uniqueness를 함. Id identifier column 중복되면 안됨.

     

    정리

    CREATE TABLE  -- 테이블 생성
    INSERT INTO   -- 새로운 행 추가
    SELECT        -- 데이터 검색
    ALTER TABLE   -- 테이블 변경
    UPDATE        -- 행 수정
    DELETE FROM   -- 행 제거

     

    Review

    자주 쓰이는 SQL 명령어: DROP TABLE, ANALYZE (Table 통계  나타냄)

Designed by Tistory.