INSERT, UPDATE, DELETE, ALTER, DROP, CHECK

Daeun Kim·2022년 11월 11일
0

SQL

목록 보기
15/31
  1. INSERT
    INSERT는 표에 열을 삽입하는 함수
    열값은 테이블이 가지고 있는 제약조건을 만족시켜야 한다.
INSERT INTO 테이블(열1,열2)
VALUES(열1값,열2값)

INSERT INTO account(username,password,email,create_on)
VALUES('Jose','password','Jose@mail.com',CURRENT_TIMESTAMP)

INSERT INTO account_job(user_id,job_id,hire_date)
VALUES (1, 1, CURRENT_TIMESTAMP)

기타키가 연결되어 제약조건으로 작용하는 경우 (3번예), 입력한 값이 연결되어 있는 테이블에 없는 값이라면 에러로 표시된다.

  1. UPDATE
    테이블의 값을 바꾸는 구문
SET 열1=값1,열2=값2
WHERE 조건

UPDATE 테이블1
SET 기존 열이름 = 테이블2.새 열이름
FROM 테이블2
WHERE 테이블1.id=테이블2.id

UPDATE account_job
SET hire_date = account.created_on
FROM account
WHERE account_job.user_id = account.user_id

열1/열2의 값을 바꿀 수 있지만, 해당값이 조건을 만족해야 바꿔지도록 하기도 하고, 조건없이 원하는 값을 입력하기도 한다.
2번째 처럼 JOIN을 활용해 열값을 바꿀 수도 있다.

UPDATE account
SET 열1 = 열3
RETURNING 열1,열2

DATE account
SET last_login =CURRENT_TIMESTAMP
RETURNING email, last_login

RETURNING을 활용하여 영향받은 열을 확인할 수도 있다.
위와 값이 입력시 열1을 열3 값으로 바꾸고 열1과 2 값을 바꾸는 동시에 바뀐 열을 아래에 노출한다.

  1. DELETE
    표에서 행을 삭제할 때 쓰는 구문
DELETE FROM 테이블
WHERE row_id = 1

DELETE FROM 테이블1
USING 테이블2
WHERE 테이블1.id=테이블2.id

DELETE FROM 테이블 => 전부 삭제

RETURNING을 활용하여 영향받은 열을 확인할 수도 있다.
위와 값이 입력시 열1을 삭제하고 삭제한 행 내용을 아래에 노출한다.

  1. ALTER
    이미 존재하는 테이블의 구조를 바꾸는 구문
    열 이름 바꾸기, 기본값 정하기 등
새 열 추가
ALTER TABLE 테이블 이름
ADD_COLUMN 새 열 이름

테이블 이름 변경
ALTER TABLE 테이블 이름
RENAME TO 신규 테이블 이름

열이름 바꾸기
ALTER TABLE new_info
RENAME COLUMN person TO people

특정 열의 NOT NULL 제약조건 해제하기
ALTER TABLE new_info
ALTER COLUMN people DROP NOT NULL
  1. DROP
    표에서 열을 완전히 삭제하는 구문, 해당 열과 관련된 제약조건 등도 한번에 삭제된다.
입력한 열이름과 일치하는 열이 있다면 삭제
ALTER TABLE 테이블이름
DROP COLUMN OF EXISTS 열이름

두개이상의 열 삭제
ALTER TABLE 테이블이름
DROP COLUMN 열이름1,
DROP COLUMN 열이름2
  1. CHECK 제약조건
    열 값 제약조건으로 특정 조건을 거는 제약조건값. 열 내 값이 # 이상일 것 등이 있음.
CREATE TABLE example (
ex_id SERIAL PRIMARY KEY, 
age SMALLINT CHECK (age>21), 
parent_age SMALLINT CHECK (parent_age>age)
)
profile
공부하는 것들을 적는 블로그.

0개의 댓글