데이터베이스 및 테이블 만들기

강콩콩·2023년 5월 13일
0

SQL

목록 보기
5/6
post-thumbnail

본 글은 Udemy의 '데이터 역량 강화를 위한 SQL 부트캠프' 강의를 듣고 정리한 글입니다.
본 글은 강의를 수강한 입장에서 복습을 더 쉽게 하기 위한 글입니다.

데이터 역량 강화를 위한 SQL 부트캠프

데이터베이스 및 테이블 만들기

데이터 유형

기본키 및 외래키

  • PK : integer unique key
  • 다른 table의 pk, 혹은 값이 fk로 들어와 있을 수 있다
    • contraint에서 확인 가능
  • dependancy에서 확인 가능

제약 조건

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
    • 행의 모든 값 특정 값 만족
  • EXCLUSION
    • 2개 row가 비교될 때, 모든 비교결과가 True가 아니어야.

CREATE TABLE

  • SERIAL

CREATE TABLE tbl(
col1 TYPE col_contraint,
col2 TYPE col_contraint);

CREATE TABLE players(
player_id SERIAL PRIMARY KEY,
age SMALLINT NOT NULL);
  • REFERENCES tbl_name(col_name)

INSERT

INSERT INTO tbl_name(col_1, col_2, time)
VALUES
('one', 'two', CURRENT_TIMESTAMP)

UPDATE

UPDATE tbl_name
SET col_1 = val_1
col_2 = val_2
WHERE condition;
  • update join
    • 다른 table에서 값 가져와서 update
UPDATE account_job
SET hire_date = accuount.created_on
FROM account
WHERE account_job.user_id = account.user_id
  • RETURNING : 적용된 결과 확인

DELETE

DELETE FROM tbl_1
WHERE id=1

DELETE FROM tbl_1
USING tbl_2
WHERE tbl_1.id = tbl_2.id

DELETE FROM tbl_1 # 다 지우기

ALTER TABLE

ALTER TABLE tbl_name
ALTER COLUMN col_name DROP/SET contraint(e.g. NOT NULL, UNIQUE)
  • change structure
  • add col
  • drop col
  • set/drop constraint
  • set type

ALTER TABLE

DROP TABLE

ALTER TABLE tbl_name
DROP COLUMN IF EXISTS col_name

CHECK 제약 조건

  • 조건 맞춤화 제약
CREATE TABLE tbl_1(
id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
birth_date DATE CHECK (birth_date > '1900-01-01'),
hire_date DATE CHECK (hire_date > birth_date),
salary INTEGER CHECK (salary > 0)
profile
MLOps, ML Engineer. 데이터에서 시스템으로, 시스템에서 가치로.

0개의 댓글