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번예), 입력한 값이 연결되어 있는 테이블에 없는 값이라면 에러로 표시된다.
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 값을 바꾸는 동시에 바뀐 열을 아래에 노출한다.
DELETE FROM 테이블
WHERE row_id = 1
DELETE FROM 테이블1
USING 테이블2
WHERE 테이블1.id=테이블2.id
DELETE FROM 테이블 => 전부 삭제
RETURNING을 활용하여 영향받은 열을 확인할 수도 있다.
위와 값이 입력시 열1을 삭제하고 삭제한 행 내용을 아래에 노출한다.
새 열 추가
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
입력한 열이름과 일치하는 열이 있다면 삭제
ALTER TABLE 테이블이름
DROP COLUMN OF EXISTS 열이름
두개이상의 열 삭제
ALTER TABLE 테이블이름
DROP COLUMN 열이름1,
DROP COLUMN 열이름2
CREATE TABLE example (
ex_id SERIAL PRIMARY KEY,
age SMALLINT CHECK (age>21),
parent_age SMALLINT CHECK (parent_age>age)
)