WORK 88

DB 별 컬럼 변경 방법

이놈에 alter 문은 매번 할때마다 검색해서 사용하는 나...내가 멍청 한건가 ㅠㅠ다른분들은 다들 외우시나요 ? ㅠㅠ 그래서 정리한 db 별 컬럼 변경법 ! MYSQL 컬럼 변경하기 1. 컬럼추가 ALTER TABLE 테이블명 ADD 컬럼명 타입 옵션 ex) ALTER TABLE USER_INFO ADD [컬럼명] varchar(100) not null default '0'; 2. 컬럼 삭제 ALTER TABLE 테이블명 drop 컬럼명 3. 컬럼명 변경 및 타입 변경 ALTER TABLE 테이블명 CHANGE 컬럼명 변경할컬럼명 VARCHAR(12) 4. 컬럼 TYPE 수정 ALTER TABLE 테이블명 MODIFY 컬럼명 VARCHAR(20) MSSQL 컬럼 변경하기 1. 컬럼추가 ALTER TAB..

WORK/DB 2018.01.25

MYSQL 에서 ORACLE 의 MERGE INTO 기능

MYSQL 있으면 UPDATE 없으면 INSERT ORACLE 에서 MERGE INTO 기능처럼 없으면 INSERT , 있으면 UPDATE 처리하는 문장이다. 일단 컬럼이 두개있는 테이블이 있다고 가정해 보자. SELECT USER_ID, USER_NAMEFROM USER_INFO 이 테이블 키에 해당하는 데이터가 존재하면 UPDATE / 없으면 INSERT 하는 문장을 알아보자 CREATE TABLE USER_INFO( USER_ID INT , USER_NAME VARCHAR(10)) 일단 값이 중복되는지를 판단하는 조건은 테이블의 UNIQUE KEY이다. 그러므로 예를 든 USER_INFO TABLE 에 UNIQUE KEY 가 존재하지 않는다면 TABLE먼저 수정한다. ALTER TABLE USER_..

WORK/DB 2018.01.19

mysql count() 함수

아....조건절이 들어가는 select 문에서 count(*) 를 하고 싶은데...검색해도 안나오네요 ㅜㅠ 예를들어 SELECT COUNT(*) AS CNT, USER_ID, USER_NAME, USER_TELFROM USER_INFOWHERE 1 = 1AND USER_NAME LIKE '%김%' 이라는 쿼리에서처럼 조건이 하나라면 모를까... 조건이 AND COLUMN= ?AND COLUMN= ?AND COLUMN = ? 이렇게 계속 온다면... count 구하는거 하나 , 본 쿼리 하나..쿼리문을 두개 돌려야 하는건가 ㅠㅠ 방법이 없다 젠장........ SELECTCOUNT(*) AS CNTFROM TABLE 요거 하나조회해서 SET 하고 원래 데이터 조회하는 쿼리 조회해야겠고만..ㅠㅠ 혹시 이 글..

WORK/DB 2018.01.17

oracle sql developer 에서 다중 DB 사용하기

oracle sql developer 타사 JDBC 드라이버 추가하기 어휴 매번 다른 프로젝트를 하다보니 DB도 여러가지... 여태 했던게 oracle mssql mysql sybase 이렇게 4가지인데 매번 다른 프로젝트로 포멧하고나면 db tool 설치하는것도 일이된다. 그런데 oracle sql developer tool 에서 지원되는 타사 jdbc를 등록하면 다른 툴 설치가 필요없고 오직 sql developer 에서 모든 DB 접속이 가능하다. 1. http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 위 url 로 접속하여 sql developer 를 본인 PC 사양에 맞게 다운로드 한다. (다운이 ..

WORK/DB 2018.01.16

mssql 과 mysql 함수차이

MSSQL MYSQL CONVERT(DATETIME , GETDATE() , 102) DATE_FORMAT(NOW() , '%Y-%m-%d %H:%i:%s') 1. 날짜 타입으로 변경한다.MSSQL 같은경우 날짜 길이 , 타입에 따라 많은 숫자를 넣어야 하지만 MYSQL 같은 경우는 그럴 필요가 없다. 예제 )SELECTDATE_FORMAT(NOW() , '%Y-%m-%d %H:%i:%s') 결과 = 2018-01-16 17:55:00 SELECTDATE_FORMAT(NOW() , '%Y.%m.%d') 결과 = 2018.01.16 MSSQL MYSQL CONVERT(NUMERIC(18,2), COLUMN ) CAST( COLUMN AS DECIMAL(18,2) ) 2. 소수점 두자리로 변경하는 함수이다...

WORK/DB 2018.01.16

MYSQL 에서의 페이징 처리 및 ROWNUM 가져오기

MSSQL 에서는 ROW_NUMBER() OVER() 기능이 있어 편리하지만 MYSQL에서는 이러한 기능이 없다..ㅠㅠ 물론 ORACLE 이라면 어디서 검색해봐도 쉽게 나오는 ROW_NUMBER() 기능이 있어 편리하다 그래서 MYSQL 에서의 변수선언 기능으로 페이징 처리 SQL문을 작성 예제 ) SELECT T.* FROM ( SELECT CEILING( A.ROWNUM / 10 ) AS PAGE // 1페이지당 조회될 ROW 수 10 FROM ( SELECT DEPT_CODE , DEPT_NAME , @RNUM := @RNUM + 1 AS ROWNUM FROM DEPARTMANT ,(SELECT @RNUM := 0 ) AS R // 요 줄을 JOIN문 처럼 FROM절 끝에 넣어준다 ) A ) T W..

WORK/DB 2018.01.16