20/10/27-8 9. db 테이블에 자료 넣기

 

 
db툴에서 작성 포워드 엔지니어링 구문에서 "누락된 우괄호 에러" 발생
심플한 쿼리문이어서 에러 날 것이 없어보이는데 자꾸 발생해서 일단 저 부분을 제외하고 테이블 생성한 뒤 필드를 추가하는 방법을 사용해보기로 결정.
 
1. 일단 생성된 테이블을 모두 삭제하기 위해 drop user 실행.
2. 에러가 나는 mem_post를 제외한 뒤 테이블 생성
3. 필드 추가
alter table member add mem_post num(5) NULL
3-1. 에러발생
3-2. 쿼리문 수정
alter table member add (mem_post num(5)) NULL
3-3. 같은 에러 발생
3-4. number가 num으로 된 오타 발견..
 
4.
SQL> connect sys/sys12345 as sysdba
연결되었습니다.
 
2) 일반유저 생성
create user flower identified by f1234;
 
3) 관리자 권한으로 로그인하여 권한 부여
grant create session,resource to flower;
 
4)재접속
conn flower/f1234;
연결되었습니다
 
5. 재시도
 
 
성공.
commit; 실행

 
1. 후기 게시판 레코드를 넣기 위해 쿼리문 작성.
 
insert into aft_board values (1, 100, test1, flower_s, '예쁜꽃', '꽃이 참 예뻐요', sysdate, 1111);
 
2.에러발생
 
2-1. 테이블이 없다니까 작업 내용 조회
버젓이 존재하는 aft_board 테이블
"테이블 또는 뷰가 존재하지 않습니다 하지만 존재함" 으로 구글링 : https://burning-dba.tistory.com/77
▶  ② 테이블에 권한이 없음 에 해당하는 문제 같았음
 
3. 권한부여
conn sys/sys12345 as sysdba
 
grant connect, resource on admin to flower with admin option
*권한 부적합(왜??)
 
grant all on aft_board to flower;
* 테이블이 존재하지 않습니다.
 
권한을 모두 부여했는데도 안되서 강사님께 도움 요청
테이블 만들 때 "" 를 사용하지 말고 하라고 하심... 그대로 했더니 됨 ㅠㅠ
 

재시도
1. 유저삭제
 
2. 테이블 생성
 
3. 테이블명 부적합 에러
 
3-1. 에러 원인 찾음 : 예약어를 사용했기 때문.
 
해결방법 : 테이블명 order를 f_order로 수정
▶포워드 엔지니어링 재시도 20/9/24 정규화수업 / eXERD 수업
ㄴCOMMENT 모두 삭제
ㄴnum을 number로 수정
 
db 생성 완료
 

aft_board 테이블에 레코드 넣기
1.
insert into aft_board values(1,100,test1,flower_s,"예쁜꽃입니다","꽃이 참 예뻐요 제 맘에 쏙 들어요",sysdate,1111);
 
 
1-1.쌍따옴표를 홑따옴표로 변경
insert into aft_board values(1,100,test1,flower_s,'예쁜꽃입니다','꽃이 참 예뻐요 제 맘에 쏙 들어요',sysdate,1111);
 
 
1-3.
insert into aft_board values(1,100,'test1','Sflower','예쁜꽃입니다','꽃이 참 예뻐요 제 맘에 쏙 들어요',sysdate,1111);
 
 
1) INSERT시 무결성 제약조건에 따른 ERROR
 제약조건을 위배하는 값으로 insert한다면 error가 발생한다.
• 부모 테이블에 존재하지 않는 값으로 자식 테이블의 삽입은 불가능하다.
• 삽입하려면 먼저 부모 테이블에 값을 추가해야 한다.
• Foreign Key는 반드시 부모 테이블의 primary key에 존재하는 값 또는 NULL값만이 가능하다.
 
 
부모테이블에 먼저 값을 넣기로한다.
 

1. login 테이블에 레코드 넣기
 
insert into login values('test1',1111)
*
1행에 오류:
ORA-02291: 무결성 제약조건(FLOWER.FK_MEMBER_TO_LOGIN)이 위배되었습니다- 부모
키가 없습니다
 
멤버 먼저 넣기로한다.
 
2. member 테이블에 레코드 넣기
 
insert into member values('test1', '홍길동', 1111, 01012341234, test@naver.com, 10123, '행복아파트 102-1202');
 
에러 발생
보아하니 이메일 주소로 사용하는 @ 때문에 에러가 난 모양.
이메일 주소를 (   아이디    ) @ ( 이메일 주소 ) 로 나눴어야하는 모양인데 너무 늦게 알았다.
일단은 -로 입력을 받은 뒤 후에 -를 @로 전환해보도록 하겠다.
 
이번엔 . 때문에 에러가 난 모양
 
특수기호의 문자가 아니었나보다.
다시 보니 따옴표를 빼먹었음
 
insert into member values('test1', '홍길동', 1111, 01012341234, 'test@naver.com', 10123, '행복아파트 102-1202');
 
오류 해결... 바보 같음
 

3. prd 테이블에 레코드 넣기
 
prd_img에는 이미지를 넣어야하는데 절대경로로 넣으면 된다. 
일단 가라로 넣는다.
 
insert into prd values('Sf', '쁘띠 꽃배달', 'C:\webtest\0.project\image\후기\1.jpeg', '딱 좋은 한 뭉큼 사이즈', 80000);
 
후기 폴더의 사진으로 잘못 넣어서 값을 변경해야한다.
C:\webtest\0.project\image\상품\product1.jpg로
update prd set prd_img='C:\webtest\0.project\image\상품\product1.jpg' where prd_id='Sf';
 

4. CART 테이블에 레코드 넣기
 
insert into cart values('test','Sf',0);
 
부모키에 알맞게 다 넣었는데 왜 이런 오류가 생기는지 코드를 곰곰히 살펴본 결과 틀린 값을 넣었음을 발견
insert into cart values('test1','Sf',0)
 
오류 해결
 

5. f_order 테이블
 
insert into f_order values(100,'test1','Sf','20/10/28',2,0,sysdate);
 
update f_order set order_takedate='20/12/25' where order_no='100';
 

6. aft_board 후기 테이블
 
insert into (1, 100, 'test1', 'Sf', '예쁜 꽃이네요', '정말 예쁜 꽃이 와서 기분이 좋아요', sysdate, 1111);
 
insert into aft_board values(1, 100, 'test1', 'Sf', '예쁜 꽃이네요', '정말 예쁜 꽃이 와서 기분이 좋아요', sysdate, 1111);
 

 
넣은 레코드 정리
member 회원정보 테이블
insert into member values('test1', '홍길동', 1111, 01012341234, 'test@naver.com', 10123, '행복아파트 102-1202');
id : test1
이름 : 홍길동
비번 : 1111
전화번호 : 01012341234
이메일 : test@naver.com
우편번호 : 10123
상세주소 : 행복아파트 102-1202
 
prd 상품 정보 테이블
--s사이즈--
insert into prd values('Sf', '쁘띠 꽃배달', 'C:\webtest\0.project\image\상품\product1.jpg', '딱 좋은 한 뭉큼 사이즈', 80000);
 
--m사이즈--
insert into prd values('Mf', '한가득 꽃배달', 'C:\webtest\0.project\image\상품\product2.jpg', '한가득 품에 안기는 사이즈', 160000);
 
--l사이즈--
insert into prd values('Lf', '풍성한 꽃배달', 'C:\webtest\0.project\image\상품\product3.jpg', '아주 풍성한 사이즈', 300000);
상품아이디 Sf / Mf / Lf
상품명 쁘띠 꽃배달 / 한가득 꽃배달 /풍성한 꽃배달
상품설명 딱 좋은 한 뭉큼 사이즈 / 한가득 품에 안기는 사이즈 /아주 풍성한 사이즈
가격 80000 160000 300000
 
cart 카트 테이블
insert into cart values('test1','Sf',0)
카트 취소여부 0 아님 1맞음
 
f_order 주문 테이블
insert into f_order values(100,'test1','Sf','20/12/25',2,0,sysdate);
주문번호 100
주문한사람아이디 test1
주문한품목 Sf
최초수령일 20/12/25
구독주기 2주 / 4주 / 6주
주문취소여부 0 아님 1 맞음
구매일자 sysdate
 
aft_board 후기 테이블
insert into aft_board values(1, 100, 'test1', 'Sf', '예쁜 꽃이네요', '정말 예쁜 꽃이 와서 기분이 좋아요', sysdate, 1111);
글번호 1
상품번호 100
아이디 test1
주문한품목 Sf
글제목 예쁜 꽃이네요
글내용 정말 예쁜 꽃이 와서 기분이 좋아요
글작성일 sysdate
비밀번호 1111
 
커밋 후 종료