#1 기본 테이블 생성
CREATE TABLE acount(
# SERIAL에 대해서 더욱 공부하자
user_id SERIAL PRIMARY KEY,
# unique로써 중복값이 없게끔
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(250) UNIQUE NOT NULL,
create_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
)
#2 기본테이블에 REFERENCE 하는 테이블 및 추가테이블 생성
1)
CREATE TABLE acount_job(
user_id INTEGER REFERENCES acount(user_id),
job_id INTEGER REFERENCES job(job_id),
hire_date TIMESTAMP
)
2)
CREATE TABLE job(
job_id SERIAL PRIMARY KEY,
job_name VARCHAR(200) UNIQUE NOT NULL
)
3)
CREATE TABLE information(
info_id SERIAL PRIMARY KEY,
title VARCHAR(500) NOT NULL,
person VARCHAR(50) NOT NULL UNIQUE
)
4)
CREATE TABLE employees(
emp_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
birthdate DATE CHECK (birthdate > '1900-01-01'),
hire_date DATE CHECK (hire_date > birthdate),
salary INTEGER CHECK (salary > 0)
)
#3 만들어놓은 테이블에 자료 집어넣기
1)
# 내가 잘못알고 있는게 아니라면 컬럼에 한에서는 굳이 쓸필요없다.
# 해당 테이블의 모든 컬럼에 맞는 자료를 입력하는 것이라면
# 따라서 첫번째줄의 필요한 줄은 INSERT INTO acount
# 정도가 될 것 같다.
INSERT INTO acount(username, password, email, create_on)
# 자료구조가 ‘TIMESTAMP’일때 정말 중요한 기능이 CURRENT_TIMESTAMP
VALUES ('Jose', '0000', 'jose@gmail.com', CURRENT_TIMESTAMP)
2)
INSERT INTO job(job_name) VALUES ('president')
3)
INSERT INTO acount_job(user_id, job_id, hire_date)
VALUES (1,1,CURRENT_TIMESTAMP)
4)
INSERT INTO job(job_name)
VALUES ('Cowboy')
5)
INSERT INTO employees(
first_name, last_name,
birthdate, hire_date, salary)
VALUES('Jose', 'Portilla', '1990-11-03',
'2010-01-01', 100)
6)
INSERT INTO employees(
first_name, last_name,
birthdate, hire_date, salary)
VALUES('Sammy', 'Smith', '1990-11-03',
'2010-01-01', 200)
#4 기본적으로 입력되어 있는 값들을 UPDATE
1)
UPDATE acount
SET last_login = CURRENT_TIMESTAMP
2)
UPDATE acount
SET last_login = create_on
3)
UPDATE acount_job
SET hire_date = acount.create_on
FROM acount
4)
UPDATE acount
SET last_login = CURRENT_TIMESTAMP
RETURNING email, create_on, last_login
#4 기본적으로 입력되어있는 값들을 DELETE
DELETE FROM job
WHERE job_name = 'Cowboy'
RETURNING job_id, job_name
#5 alter는 기본 뜻 자체가 ‘바꾸다’라는 뜻이다. alter 섹션
1)
ALTER TABLE information
RENAME TO new_info
2)
ALTER TABLE new_info
RENAME COLUMN person TO people
3)
ALTER TABLE new_info
ALTER COLUMN people DROP NOT NULL
4)
# 컬럼명 변경
ALTER TABLE teachers
RENAME COLUMN student_id TO teacher_id
#6 기존의 테이블및 내용을 drop
1)
ALTER TABLE new_info
DROP COLUMN people
2)
#조건 드랍형이고
ALTER TABLE new_info
# people이라는 컬럼이 만약에 있으면 드랍해라. 라는 명령
DROP COLUMN IF EXISTS people
'개발일지 > SQL' 카테고리의 다른 글
SQL 기초24 문자열 함수와 문자열 연산 (0) | 2022.08.29 |
---|---|
SQL 테이블생성, 자료입력, 자료수정 문제 풀이 (0) | 2022.08.29 |
SQL 포멧팅 문자열 표기, 데이터 타입 링크 등 잡설 (0) | 2022.08.27 |
SQL 기초23 JOIN 두번째 (아직 갈길이 멀다 JOIN은 특히 더) (0) | 2022.08.27 |
SQL 기초 22 HAVING (GROUP BY와 셋트메뉴라고 보면 된다) (0) | 2022.08.25 |