카테고리 없음

스테이지어스 6주차 과제

jjon-jonny 2024. 5. 5. 17:06


CREATE TABLE account (
    idx INT AUTO_INCREMENT PRIMARY KEY,
    id varchar(20) UNIQUE NOT NULL,
    pw varchar(30) NOT NULL,
    email varchar(30) NOT NULL,

    name varchar(20) NOT NULL,
    birth date NOT NULL,
    tell varchar(20) NOT NULL,

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO account (id, pw,email,birth,phone_number) VALUES ('test2','1234','223@naver.com','20000102','11012345678');
INSERT INTO account (id, pw,email,birth,phone_number) VALUES ('test3','1234','323@naver.com','20000103','21012345678');
INSERT INTO account (id, pw,email,birth,phone_number) VALUES ('test4','1234','423@naver.com','20000104','31012345678');
INSERT INTO account (id, pw,email,birth,phone_number) VALUES ('test5','1234','523@naver.com','20000105','41012345678');


CREATE TABLE board (
    idx INT AUTO_INCREMENT PRIMARY KEY,
    id varchar(20) NOT NULL ,
    title varchar(40) NOT NULL,
    content text NOT NULL,

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (id) REFERENCES account(id)
);

INSERT INTO board (id, title,content) VALUES ('test1','title1','contentcontent1');
INSERT INTO board (id, title,content) VALUES ('test2','title2','contentcontent2');
INSERT INTO board (id, title,content) VALUES ('test3','title3','contentcontent3');
INSERT INTO board (id, title,content) VALUES ('test4','title4','contentcontent4');


CREATE TABLE comment (
    idx INT AUTO_INCREMENT PRIMARY KEY,
    id varchar(20) NOT NULL,
    board_idx INT NOT NULL,
    comment text NOT NULL,

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (board_idx) REFERENCES board(idx),

    FOREIGN KEY (id) REFERENCES account(id)
);

INSERT INTO comment (id, board_idx ,comment) VALUES ('test1','1','coment1');
INSERT INTO comment (id, board_idx ,comment) VALUES ('test2','2','coment2');
INSERT INTO comment (id, board_idx ,comment) VALUES ('test3','3','coment3');
INSERT INTO comment (id, board_idx ,comment) VALUES ('test4','4','coment4');

1. 로그인 기능
SELECT * FROM account WHERE id = "입력" AND pw="입력";
2. 회원가입 기능
INSERT INTO account (id, pw,email,birth,phone_number) VALUES ('입력','입력','입력','입력','입력');
3. 아이디 찾기 기능
SELECT * FROM account WHERE email='입력';
4. 비밀번호 찾기 기능
SELECT * FROM account WHERE id='입력' AND phone_number='입력';
5. 내정보 보기 기능
SELECT * FROM account WHERE id='본인 아이디';
6. 내정보 수정 기능
UPDATE account SET pw='변경비밀번호' , birth='변경생일' WHERE id='본인 아이디';
7 회원 탈퇴
DELETE FROM account WHERE id='본인아이디';
8. 게시글 쓰기 기능
INSERT INTO board (id, title,content) VALUES ('본인아이디','입력','입력');
9. 게시글 읽기 기능
SELECT * FROM board WHERE idx='읽고자 하는 게시글'';
10.게시글 수정 기능 
UPDATE board SET title='변경하고자 하는 제목' , content='변경하고자 하는 내용' WHERE idx='변경 하고자 하는 게시글';
11.게시글 삭제 기능
DELETE FROM board WHERE idx='삭제하고자 하는 게시글';
12.댓글 쓰기
INSERT INTO comment (id, board_idx ,comment) VALUES ('본인아이디','쓰려고 하는 게시글 idx','입력');
13.댓글 읽기
SELECT * FROM comment WHERE idx='읽고싶은 댓글';
14.댓글 수정
UPDATE board SET comment='변경하고자 하는 댓글' WHERE idx='변경 하고자 하는 댓글';
15.댓글 삭제
DELETE FROM board WHERE idx='삭제하고자 하는 게시글';


join 문 

1.  left join


ㄴ SELECT * FROM board LEFT JOIN comment ON board.idx = comment.board_idx;

댓글들이 어떤 board 로 부터 왔는지 알기 위함.