반응형

안녕하세요! 오늘은 컬럼, 코멘트 추가 및 컬럼 순서 변경 방법입니다.

 

[컬럼추가]

ALTER TABLE 테이블명 ADD(컬럼명 데이터타입);

ex) ALTER TABLE EMP_TBL ADD(EMP_NM VARCHAR(50));

 

[컬럼수정]

- 컬럼명 변경

ALTER TABLE 테이블명 RENAME COLUMN 컬럼명(전) TO 컬럼명(후);

ex) ALTER TABLE EMP_TBL RENAME COLUMN EMP_NM TO EMP_NAME;

 

- 컬럼 데이터타입/컬럼크기 변경

ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;

ex) ALTER TABLE EMP_TBL MODIFY EMP_NM VARCHAR(100);

 

[컬럼삭제]

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

ex) ALTER TABLE EMP_TBL DROP COLUMN EMP_NM;

 

[코멘트추가/수정]

COMMENT ON COLUMN 테이블명.컬럼명 IS '코멘트';

ex) COMMENT ON COLUMN EMP_TBL.EMP_NM IS '사원명'; 

 

[컬럼순서변경]

※ 컬럼을 추가하면 컬럼순서는 마지막이 됨 > 그 위로 올리고 싶은 경우 해당 위치 밑에 있는 컬럼들을 숨겼다가 다시 풀어주면 됨

 

ALTER TABLE 테이블명 MODIFY 컬럼명 INVISIBLE;

ALTER TABLE 테이블명 MODIFY 컬럼명 VISIBLE;

ex) ALTER TABLE EMP_TBL MODIFY EMP_AGE INVISIBLE;

      ALTER TABLE EMP_TBL MODIFY EMP_AGE VISIBLE;

 

 

반응형
반응형

안녕하세요! 오늘은 TOAD에서 엑셀파일을 데이터로 INSERT 하는 방법에 대해 소개해 드리겠습니다.

 

1. 토드 실행 후 Database > Import > Import Table Data 를 클릭합니다.

2. Object Name 에 INSERT 할 테이블을 선택하고 Next를 클릭합니다.

 

3. Excel file을 선택하고 File을 선택한 후 Next를 클릭합니다.

 

4. 엑셀에서 INSERT 데이터의 범위를 지정해줍니다.

    첫번째줄에 컬럼명이 적혀있는 경우에는 2번째 행부터 지정하면 됩니다.  이후 NEXT 버튼을 클릭합니다.

 

5.  조건에 맞는 항목을 선택합니다.

     엑셀의 데이터를 테이블로 삽입 시 엑셀파일의 컬럼/테이블의 컬럼 으로 매칭할지,

     엑셀의 컬럼 순서대로 테이블의 삽입할지 결정하여 OK를 클릭합니다.

     이후 NEXT 를 클릭합니다.

 

6. PK로 설정할 컬럼을 선택 후 NEXT 를 클릭합니다.

 

7. 컬럼과 데이터가 미리보기 형태로 조회되면 NEXT 를 클릭합니다.

 

8. INSERT 선택 후 EXECUTE 를 클릭합니다.

 

9. 해당 창과 함께 테이블을 확인하시면 엑셀파일의 데이터가 INSERT 된 것을 확인할 수 있습니다.

반응형
반응형

안녕하세요! 오늘은 임의의 데이터 생성 방법에 대해 소개해 드리겠습니다.

 

- 쿼리문 

 

- 실행결과

 

위의 쿼리문을 통해 임의로 데이터를 생성하여 조회하거나 기존의 데이터에 덧붙여서 유용하게 사용 가능합니다.

반응형
반응형

안녕하세요. 두번째로 최대값을 출력해보는 SQL을 작성해보겠습니다.

 

아래와 같은 테이블이 존재합니다.

 

1. SCORE의 최대값을 출력하여 보겠습니다.

1
SELECT MAX(SCORE) AS MAX_SCORE FROM TEST_RESULT;
cs

 

2. SCORE의 두번째 최대값을 출력하여 보겠습니다.

 

방법 1) NOT IN 사용하기

1
2
3
SELECT MAX(SCORE) AS SECOND_MAX_SCORE
  FROM TEST_RESULT
 WHERE SCORE NOT IN 50;
cs

 

방법 2) ROWNUM 사용하기

1
2
3
4
5
6
SELECT SECOND_MAX_SCORE
  FROM (SELECT ROWNUM AS RN, SCORE
         FROM(SELECT SCORE
               FROM TEST_RESULT
              ORDER BY SCORE DESC))
 WHERE RN = 2;
cs

 

결과는 최대값 50을 제외하고 가장 큰 수 인 40이 출력됩니다.

 

 

3. SCORE의 최대값을 제외한 나머지 행을 출력하여 보겠습니다.

 

방법 1) NOT IN 사용하기

1
2
3
4
SELECT SCORE AS SCORE
  FROM TEST_RESULT
 WHERE SCORE NOT IN 50
ORDER BY SCORE ASC;
cs

 

방법 2) ROWNUM 사용하기

1
2
3
4
5
6
7
SELECT SCORE
  FROM (SELECT ROWNUM AS RN, SCORE
         FROM(SELECT SCORE
               FROM TEST_RESULT
              ORDER BY SCORE DESC))
 WHERE RN > 1
ORDER BY SCORE ASC
cs

 

결과는 최대값 50을 제외한 나머지 목록이 출력됩니다.

반응형
반응형

안녕하세요. 오늘은 기호로 구분하여 전화번호를 저장하고 추출하여 보겠습니다.

 

자릿수에 상관없이 저장, 추출 가능합니다. (핸드폰번호, 집 전화번호 모두 가능)

전화번호를 세부분으로 나누어 받아 한 컬럼에 추가하고, 다시 화면에 나타낼 때는 세부분으로 나누어 출력이 가능합니다. 

 

먼저 TABLE1 이라는 테이블에 TEL_NO 라는 컬럼에 데이터를 추가합니다. 

여기서 [010] [1111] [2222] 이 부분은 사용에 맞게 값을 넣어주시면 됩니다.

1
INSERT INTO TABLE1(TEL_NO) VALUES ('010'||'-'||'1111'||'-'||'2222')
cs

데이터가 잘 들어간 것을 확인하였습니다.

 

전화번호가 들어오는 형식은 핸드폰 번호일수도, 집전화일수도, 인터넷전화번호일수도 있기 때문에 중간에 있는 "-" 기호로 구분하여 추출해보겠습니다.

 

 

먼저 SUBSTR, INSTR의 이해가 필요합니다.

1
2
3
SUBSTR(문자열,1,4-- STR의 1번째 글자부터 4개 자르기
 
INSTR(문자열, '-'12-- STR의 1번째 문자부터 2번째 '-' 기호가 있는 문자 위치 찾기
cs

 

그럼 기호를 기준으로 나누어 출력해보겠습니다.

1
2
3
4
5
SELECT SUBSTR(TEL_NO, 1, INSTR(TEL_NO, '-'11- 1) AS TEL_NO1
       ,SUBSTR(TEL_NO, INSTR(TEL_NO, '-'11+ 1, INSTR(TEL_NO, '-'12
               - INSTR(TEL_NO, '-'11- 1) AS TEL_NO2
       ,SUBSTR(TEL_NO, INSTR(TEL_NO, '-'12+ 1) AS TEL_NO3
FROM TABLE1
cs

INSTR을 통해 기호를 기준으로 자를 문자열의 위치를 파악한 후 SUBSTR으로 잘라줍니다.

이 방식을 통해 - 기호로 구분하여 화면에 나타낼 수 있고 저장 할 때는 DB에 기호 붙여서 저장 가능합니다.

 

다른예로, 집전화번호 형태의 데이터도 추출해보겠습니다.

반응형

+ Recent posts