고객등록 입력 화면에서 고객정보저장을 위한 SQL문

INSERT INTO BOOKINFO_TBL VLAUES(?,?,?,?,?,?)

지역별 DM 발송 건수 통계를 구하는 SQL문

- groupby 활용

SELECT t2.area, COUNT(*)
FROM DM_TBL t1 JOIN BOOKINFO_TBL t2
ON t1.custid = t2.custid
GROUP BY t2.area;

1. 고객발송내역 조회 SQL

SELECT t1.dmno, t1.custid, t2.author, TO_CHAR(t1.maildate,'YYYY-MM-DD'),t1.contents,t1.campain
FROM DM_TBL t1 JOIN BOOKINFO_TBL t2
ON t1.custid = t1.custid;

...

 

2. 체크 포인트

- JOIN 구문

tale1 t1 JOIN  table2 t2 ON t1.id=t2.id;

- 별칭(Alias)

위의 JOIN 구문에서 테이블명에 별칭을 주어 칼럼에 접근할 수 있다.

- TO_CHAR()

오라클 기본함수인 to_char()을 활용하여 포멧을 지정해줄 수 있다.

1. 샘플 데이터

- [DM발송내역 샘플 데이터]

DM발송번호 고객ID 발송일자 DM 내용 발송부서 고객등급 캠페인구분
1 aaa 20171201 안녕하세요? 10 1 C1
2 bbb 20171201 안녕하세요? 10 2 C1
3 ccc 20171201 안녕하세요? 10 3 C1
4 ddd 20171224 안녕하세요? 20 V C2
5 eee 20171224 안녕하세요? 20 VV C2
6 fff 20171224 안녕하세요? 30 1 C3

- [도서정보 샘플 데이터]

고객ID 성명 관심상품 전화번호 이메일 거주지역
aaa 김고객 의류 010-1111-1111 aaa@korea.com 서울
bbb 이고객 의류 010-1111-1112 bbb@korea.com 서울
ccc 박고객 식료품 010-1111-1113 ccc@korea.com 경기
ddd 홍고객 공산품 010-1111-1114 ddd@korea.com 대전
eee 조고객 컴퓨터 010-1111-1115 eee@korea.com 대전
fff 백고객 관광 010-1111-1116 fff@korea.com 울산
 

2. DM발송내역정보와 고객정보테이블에 데이터 생성

 
INSERT INTO DM_TBL VALUES (1,'aaa',TO_DATE('20171201','YYYYMMDD'),'안녕하세요?','10','1','C1');
INSERT INTO DM_TBL VALUES (2,'bbb',TO_DATE('20171201','YYYYMMDD'),'안녕하세요?','10','2','C1');
INSERT INTO DM_TBL VALUES (3,'ccc',TO_DATE('20171201','YYYYMMDD'),'안녕하세요?','10','3','C1');
INSERT INTO DM_TBL VALUES (4,'ddd',TO_DATE('20171224','YYYYMMDD'),'안녕하세요?','20','V','C2');
INSERT INTO DM_TBL VALUES (5,'eee',TO_DATE('20171224','YYYYMMDD'),'안녕하세요?','20','VV','C2');
INSERT INTO DM_TBL VALUES (6,'fff',TO_DATE('20171224','YYYYMMDD'),'안녕하세요?','30','1','C3');



INSERT INTO BOOKINFO_TBL VALUES ('aaa','김고객','의류','010-1111-1111','aaa@korea.com','서울');
INSERT INTO BOOKINFO_TBL VALUES ('bbb','이고객','의류','010-1111-1112','bbb@korea.com','서울');
INSERT INTO BOOKINFO_TBL VALUES ('ccc','박고객','식료품','010-1111-1113','ccc@korea.com','경기');
INSERT INTO BOOKINFO_TBL VALUES ('ddd','홍고객','공산품','010-1111-1114','ddd@korea.com','대전');
INSERT INTO BOOKINFO_TBL VALUES ('eee','조고객','컴퓨터','010-1111-1115','eee@korea.com','대전');
INSERT INTO BOOKINFO_TBL VALUES ('fff','백고객','관광','010-1111-1116','fff@korea.com','울산');

 

3. 데이터 확인

SELCT * FROM 테이블명;

1. 요구사항

가. 본 과제에서는 한국백화점 DM발송시스템을 구축을 위한 프로그램이다. DM 발송 대상자 조회, 캠페인 DM 발송 업무로 이루어져 있다. 일자별 DM 발송 대상자 조회 및 ,일자별 DM발송 예약리스트를 조회 할 수 있다.
나. 프로그램 개발을 위해 데이터베이스 설계를 위해 업무요건을 확인하고, 필요한 작업을 수행하시오.

2. 테이블 명세서

- [DM발송내역 테이블 명세서 (테이블 명 : DM_TBL)]

순서 컬럼ID 컬럼명 형태 길이 NULL 비고
1 dmno DM발송번호 number 8 NOT NULL Primary Key
2 custid 고객ID varchar2 10    
3 maildate 발송일자 date      
4 contents DM내용 varchar2 13    
5 dept 발송부서 char 2    
6 grade 고객등급 char 2    
7 campain 캠페인구분 char 2    

- [고객정보 테이블 명세서 (테이블 명 : bookinfo_tbl)]

순서 컬럼ID 컬럼명 형태 길이 NULL 비고
1 custid 고객아이디 varchar2 10 NOT NULL Primary Key
2 author 성명 varchar2 20    
3 goods 관심상품 char 20    
4 phone 전화번호 varchar2 13    
5 email 이메일 varchar2 20    
6 area 거주지역 varchar2 20    

 
 

3. 테이블 생성

- DM발송목록 테이블 생성

CREATE TABLE DM_TBL(
dmno NUMBER(8) NOT NULL PRIMARY KEY,
custid VARCHAR2(10),
maildate DATE,
contents VARCHAR2(13 char),
dept CHAR(2),
grade CHAR(2),
campain CHAR(2)
);

* contents char을 기술해주면 글자수로 13자리가 된다. 그냥 13으로 할 경우 byte 단위 13자리

dmno명을 잘못 입력하여 칼럼명 수정

- 고객정보 테이블 생성

CREATE TABLE BOOKINFO_TBL(
custid VARCHAR2(10) NOT NULL PRIMARY KEY,
author VARCHAR2(20),
goods CHAR(20),
phone VARCHAR2(13),
email VARCHAR2(20),
area VARCHAR2(20)
);

goods 칼럼 자료형을 char(20)으로 변경

4. 테이블 확인

- DESC 테이블명;

1. 다운로드 및 환경 셋팅

1.1 다운로드 및 설치

- [다운로드](https://www.oracle.com/database/technologies/xe-prior-release-downloads.html)

- setup파일 실행하여 System 계정에 쓰일 패스워드 생성하고 설치 완료

- CMD(명령프롬프트)에서 sqlplus 명령어로 설치 확인

1.2 SCOTT 계정 활성화

- 오라클에서 기본적으로 제공하는 계정으로 연습하기에 좋은 샘플 데이터가 들어있다. 

- 오라클 처음 시작 시 SCOTT 계정이 잠겨있는 경우가 많아 명령어로 풀어준다.

- 명령어: ALTER USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK;

- 만약, SCOTT 계정이 존재하지 않는다고 출력되면 오라클 설치경로에서 scott.sql 파일을 찾아 경로를 입력해 직접 실행한다.

scott 계정이 없는 경우

- 경로: C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql 

- 경로 맨앞에 @를 붙여 sqlplus를 실행중인 CMD창에 입력해준다. 

scott.sql 실행

참조

- https://cceeun.tistory.com/198

 

[Oracle] 오라클 11g Express Edition 설치하기 | 오라클 DB 설치 | Database | 로컬 서버 세팅 | Oracle 11g 다운

PC가 포맷되면서 기존에 깔려있던 자료가 다 날아갔다. 그래서 오라클도 다시 깔아야하는데, oracle 공식 홈페이지에서는 11g, 12c에 대한 Express Edition(무료버전) 배포를 중단하였다. 18c와 21c밖에 존

cceeun.tistory.com

- https://velog.io/@fluffycow/%EC%98%A4%EB%9D%BC%ED%81%B4-SCOTT-%EA%B3%84%EC%A0%95-%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

오라클 SCOTT 계정 활성화하는 방법

SCOTT은 오라클에서 기본으로 제공하는 계정입니다. 연습하기에 좋은 샘플 데이터가 들어있어 오라클을 처음 시작하는 학생들이 많이 사용합니다.오라클을 처음으로 시작하면 SCOTT 계정이 잠겨

velog.io

 

[mysql] DB 테이블에 칼럼 추가 및 수정 명령어

1. 칼럼 추가 명령어

// 포멧
ALTER TABLE [테이블명]
ADD COLUMN [칼럼명] [데이터타입] [제약조건(기본값, 제약조건)] [코멘트];

// 예시
ALTER TABLE t_user
ADD COLUMN LOCK_YN VARCHAR(20) DEFAULT 'n' NOT NULL COMMENT '계정잠금 여부(Y/N)';

2. 특정 칼러만 수정 명령어

// 포멧
ALTER TABLE [테이블명]
MODIFY [칼럼명] [데이터타입] [제약조건(기본값, 제약조건)] COMMENT '코멘트';

// 예시
ALTER TABLE t_user
MODIFY LOCK_YN int(10) DEFAULT 0 COMMENT '계정 잠금 여부 (1/0)';

+ Recent posts