반응형

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

 

[컬럼추가]

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;

 

 

반응형
반응형

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

 

- 쿼리문 

 

- 실행결과

 

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

반응형
반응형

안녕하세요. 두번째로 최대값을 출력해보는 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