티스토리 뷰

SQL

SQL Command(+PostgreSQL)

Alledy 2019. 5. 6. 22:08

PostgreSQL

  • Postgresql 설치 및 시작

    // 설치, 홈브류가 업데이트된 상태여야 한다. (brew update) 
    brew install postgresql
    
    // 시작 
    brew services start postgresql 
    
    // 중지
    brew services stop postgresql 
    
  • db 설치

    createdb 'test' 
    psql 'test' // psequal 
    
  • 테이블 생성

    /* 테이블 생성 */
    CREATE TABLE table_name (column_1 datatype, column_2 datatype);
    
    /* 예시 */
    CREATE TABLE users (name text, age smallint, birthday date);
    
    /* 확인 */
    test=# \d
    
    /* exit */
    test=# \q
    
  • INSERT

    /* INSERT */
    INSERT INTO table_name (column_1, column_2) VALUES (val_1, val_2);
    
    /* 예시 */
    INSERT INTO users (name, age, birthday) VALUES ('Hazel', 29, '1991-11-11');
    

    Psequel Content에 들어가면 확인할 수 있다.

  • Grab content

    SELECT name, age, birthday FROM users;
    
    SELECT * FROM users;
    

    주의할 점은 ;을 반드시 써야한다는 것.

  • ALTER TABLE

    ALTER TABLE table_name ADD column datatype;
    
  • UPDATE

    UPDATE table_name SET column = val WHERE column = val;
    
    UPDATE users SET scores = 60 WHERE name = 'Hazel';
    
    UPDATE users SET scores = 70 WHERE name = 'Hazel' OR name = 'Kim';
    

    주의할 점은 AND를 쓰면 업데이트가 되지 않는다는 점. Hazel과 Kim의 스코어를 모두 70점으로 업데이트하고 싶다면 OR을 사용해야 한다.

  • Conditional grab

    /* 이름이 A로 시작하는 사람 */
    SELECT * FROM users WHERE name LIKE 'A%'; 
    
    /* 이름이 m으로 끝나는 사람 */
    SELECT * FROM users WHERE name LIKE '%y'; 
    

    case sensitive

    /* 오름차순 정렬(작은 것부터 큰 것으로) */
    SELECT * FROM users ORDER BY scores ASC; 
    
    /* 내림차순 정렬(큰 것부터 작은 것으로) */
    SELECT * FROM users ORDER BY scores DESC; 
    
  • Function

    SELECT AVG(scores) FROM users;
    
    SELECT SUM(age) FROM users;
    
    SELECT COUNT(name) FROM users;
    
  • Joining a Table

    /* login 테이블 생성 */
    CREATE TABLE login (
        ID serial NOT NULL PRIMARY KEY, 
      secret VARCHAR (100) NOT NULL,
      name text UNIQUE NOT NULL
    );
    

    login 테이블의 기본키는 ID로 설정하였다. 기본키를 설정하면 별도로 다른 스키마가 생성되었음을 볼 수 있다.

/* value 삽입 */
INSERT INTO login(secret, name) VALUES ('abc', 'Hazel');
/* JOIN */
SELECT * FROM users JOIN login ON users.name = login.name;

users 테이블의 의 기본키는 name이고, login 테이블의 기본키는 id이다. login 테이블의 name은 외래키로서 users의 기본키를 참조하게 된다.

  • 삭제

    /* 행 삭제 */
    DELETE FROM users WHERE name = 'Sally';
    
    /* 테이블 삭제 */
    DROP TABLE login; 
    

'SQL' 카테고리의 다른 글

[Oracle SQL] 다중행 함수, 그룹화 group by, having  (0) 2019.05.17
[Oracle SQL] DECODE, CASE  (0) 2019.05.16
[Oracle SQL] 숫자함수, 날짜함수  (0) 2019.05.16
[Oracle SQL] 문자 함수  (0) 2019.05.16
SQL 기본  (0) 2019.05.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함