select 된 내용을 테이블에 담아보자


프로시저 작업시 디버깅 방법으로 많이 사용하는게 바로
select into 쿼리 일 것이다. 조회된 데이터를 그대로 테이블에 
담아 사용 하는 방법이다.

그래서 방법은 아주 간단하다. select 문에 INTO {테이블명} 을 입력하면 된다.
예제는 아래와 같다.




SELECT INTO NEW_TABLE
FROM Member

▼아래처럼 실행해보면 같다. 실행이 된다.


▼Member의 데이터가 그대로 NEW_TABEL에 insert 되었다.
 개발시에 꽤 쓸모 있는 방법이니 알아두자




마무리

요즘 mssql 쓰는 회사가 왜케 없나요^^



댓글을 달아 주세요



MSSQL while문 예제 

오늘은 한번 while 예제릴 간단하게 작성해보았다. 
MSSQL하면 프로시져를 간단하고 가볍게 개발 할 수 있는게 최대 장점일 것 이다.
그 중에 while문은 실무에서 가장 애용 하는 방법중 하나이다.

▼그래서 익스프레스하게 아주 간단하게 작성해보았다.

DECLARE @IDX INT           /* 변수를 선언한다. */
SET @IDX=1                 /* 1를 집어넣었다 */         
                               
WHILE @IDX <= 10           /* while을 10번 돌릴려고 한다. */
BEGIN
                                                                             
     PRINT @IDX           /* 값을 찍어보자. */
     SET @IDX= @IDX+1     /* 그리고 IDX를 +1 시켜주자  */
                                           
END




▼결과화면은 아래와 같다. 

mssql 쿼리창mssql 쿼리창


예제는 매우 쉽다.
단지 저 예제 안에 while문 안에
얼마나 로직을 잘 담는게 문제일 것 이다.




마무리

MSSQL 프로시져 개발이 개인적으로 가장 재미 있었던 프로젝트 였습니다.



댓글을 달아 주세요



면접에서 MaraiDB에 대해 물어본다면?


요즘 신입 후배 개발자들이
자주 듣는 스킬 질문중에 마리아DB가 무엇인지 설명해달라는
질문을 받는다고 합니다. 그럴만도 한게 이미 중소형 IT업체들은
MaraiDB를 이용해 운영 중입니다.

위키백과에 나온 내용 달달이 외워가기에는 너무 티도 나고 하니
핵심만 한번 설명해보려고 합니다.



귀여운 물개를 내세운 MariaDB는 과연 무엇일까?
우선 홈페이지는 아래와 같습니다. 

홈페이지 주소도  http://mysql.org/ 기존 mysql과 흡사합니다. 
DB명도 M자로 시작하고 있는거 보면 이제 눈치가 챈거라 생각 됩니다.

▼둘의 BI도 가만보면 많이 비슷하합니다..
개인적으로 돌고래가 더 이쁘네요



mysql을 모방한 DB가 바로 mariaDB 입니다. 
한가지 알아야 할건
mysql은 이제 무료가 아닙니다.  언제부터인지 모르겠지만
배포를 위해서는 상용라이센스를 획득해야 합니다.
그럼 mysql을 지워야 하는가? 그건 또 아니네요.
암묵적으로 mysql에 대해 과금을 물고 있지 않고 있습니다.
이런식으로 오라클은 오픈소스인 mysql을 가지고 이중적인 입장을 대하고 있습니다.
이렇게 불안하게 쓰고 싶진 않죠. 

그래서 이에 
핀란드 출신의 프로그래머 mysql을 만든 
마이클 와이드니어스는 


몇명의 동료들과 썬을 떠나서
MariaDB를 개발하였습니다.

MariaDB는 그냥 mysql 이라고 해도 될 정도로 같습니다.
사용방법이나 구조까지 같습니다. 
프로그램 이름만 다르고 사용방법이 같다는것이 
Mysql을 대체할 수 있는 DB 입니다.

그리고 기존의 mysql과도 호환이 됩니다.

본 블로그 강의에서
XAMPP 설치 강의(http://gocoder.tistory.com/40)
WNMP 설치 강의(http://gocoder.tistory.com/48)

해당 APM 프로그램들이 제공하는 DB도 MariaDB를 제공합니다.
왜 마리아DB를 사용하는지는 알것입니다.
AWS에서도 MariaDB 설치를 권고 하는거 보면
흐름상 이젠 당신이 학습자이든 IT기업 운영자이든 
MariaDB를 사용하면 될 것 입니다. 

결론은 말씀드리면
 " mysql의 소유권 정책으로 회사를 떠난 mysql 개발자 와드니어스가
maraiDB를 만들었고 이는 기존 DB와 호환되며 명령어와 사용법과 같은
라이센스 없는 Mysql이라고 할 수 있다. "




마무리

그냥 마리아디비 쓰시면 됩니다.






댓글을 달아 주세요



.DB 데이터 수정 할 수 있는 포터블 프로그램


sqllite 즉 파일 DB 를 수정할 필요가 있을때가 있다. 
다양한 방법이 있지만 그중에 
SQLiteman을 이용해서 수정하는 방법을 안내하려고 한다.

해당 링크를 따라가보자 

▼해당 화면에서 보이는 다운로드 버튼을 클릭하자



▼다운로드 했다면 그냥 단순하게 압축을 풀어보자 아래와 같이 파일들이 나오는데
여기서 아이콘이 있는 .exe를 클릭하면 된다.



▼클릭하면 해당 처럼 UI가 보이고 file->open을 눌러 .db를 선택해서 오픈해보자. 


▼클릭하면 해당 처럼 UI가 보이고 file->open을 눌러 .db를 선택해서 오픈해보자.
이제 해당 화면에서 SQL문을 날려서 사용하면 된다.
편의 기능은 거의 없다 시피 하니 포터블한 파일로 저장해놓고 가끔식 필요할때마다 사용하면 될거 같다!





마무리

저는 한번뿐이 파일DB를 안써봤지만 때에 따라 사용 가능하게 되니
한번 써보고 경험만 익혀두면 좋을거 같습니다.




'IT_Developers > SQLite' 카테고리의 다른 글

프로그램 - .db 수정을 위한 SQLiteman 설치하기  (0) 2017.11.28

댓글을 달아 주세요



정렬을 동적으로 바꾸기 


MS도구 들이 언어들이 모드 그렇지만 편의성을 많이 제공한다.
이게 장점일수도 단점일수도 있지만.
(요즘 들어 단점이라 생각이 든다.)
하여튼 MSSQL 은 참 편리하다. 프로시져 개발하기 가장 좋은 매니저먼트를 제공하기 때문에
인풋과 아웃풋만 정해주면 자유롭게 프로시져 안에서 로직을 구현할수 있다.

그중에 가장 많이 쓰는 방법인 CASE를 활용해 정렬을 바꾸어 보려고 한다.
하지만 이 방법은 성능적으론 추천하지 못한다.
조금 간단하고 데이터가 적은 로직에 쓰길 바란다.
(참고로 CASE를 이용한 조건절 바꾸기는 타 DB에도 쓸수 있다.)



아래 쿼리를 확인해보자
Order by 안에 CASE를 활용 하여 IF를 걸었다.
그리고 해당 값일 경우 컬럼의 정렬을 바꾼다


BEGIN
DECLARE @ORDERBY VARCHAR(50)
SET @ORDERBY = 'phone'
                                           
SELECT * FROM Board
     Order By case when @ORDERBY = 'name' then name end desc,
     case when @ORDERBY = 'phone' then phone   end asc
                                                                                           
END


위 쿼리를 확인해보자
Order bt 안에 CASE를 활용 하여 IF를 걸었다.
그리고 해당 값일 경우 컬럼의 정렬을 바꾼다.

외부에서 ORDERBY에 값만 담아주면 프로시져에서 해당과 같이
기획자가 새로운 정렬을 요구한다면 그저 
HTML에 SELCT 박스만 추가해주면 되고
프로시져에
  case when @ORDERBY = 'addr' then phone   end asc
이런식으로 한줄만 추가하면 된다.





마무리

CASE를 잘쓰면 가독성이 높아집니다.

그리고 성능은 떨어집니다.

그럼 뭐가 답이냐고요? 잘 조절하여 쓰면 됩니다.

댓글을 달아 주세요




MSSQL 에서 음수 양수를 구별하기


프로시져를 만들다 보면 결과값이 음수 혹은 양수일지 구별해야 하는 경우가 생긴다
(상당히 자주 존재한다)

그래서 오늘은 mssql 에서 음수 양수를 구분하는 방법을 알아보자
방법은 간단하다. sign 함수를 이용하면 된다

아래 쿼리를 실행해보자

select sign(-1
select sign(0)



▼아래처럼 숫자 크기와 상관없이 결과값을 도출한다. 





마무리

개발도 재밌지만 정리하는 재미도 즐겁습니다.

댓글을 달아 주세요



MSSQL 매니지먼트 스튜디오 설치


이시간에는 MSSQL 학습을 위해 GUI를 다운로드 및 설치를 해보겠습니다.

우선 해당 URL로 이동!

해당 페이지에서 다운로드를 클릭한다. 


 자신에 맞는 비트 환경과 끝에 ADV가 붙은걸 클릭합니다. (제일 용량 큰거)

다운로드 후 실행하면 아래처럼 압축이 풀립니다.

▼ 아래 처럼 기본 선택된 설정을 믿고 다음 클릭 


▼ 인스턴스를 명명한다. SQLEXPRESS로 하자.




▼ 역시 기본 설정을 믿고 다음


▼ 혼합 모드로 비번을 입력한다 비번은 tiger로 하자 


▼ 설치가 진행된다. 생각보다 조금 걸립니다.

▼ 설치 후 로그인 방법은 두가지 입니다. Windows인증 말 그대로 해당 윈도우에서는 별다른 설정없이 접속 할 수 있습니다.



▼ 두번째 방법은 SQLserver 인증 보통의 인증처럼 아이디와 암호를 입력하고 접속다. 아이디는 sa고 비번은 위에서 설정한 tiger 입니다.





마무리

설치 강의를 위해 포맷 후 새롭게 설치해가면서 강의를 쓰고 있다.
설치가 뭐가 중요하냐고 할지 모르겠지만
7년전 신입 개발자일때 프로그램 설치마저 두려웠던 기억이 난다.
블로그에 설치 안내서를 보면서 설치했던 초심에 마음을 기억한다.

다음에는 SQL 매니지먼트 스튜디오 사용법을 올리겠습니다.
오류는 좀 있지만 사용하기 참 좋은 MSSQL GUI 툴입니다. 
(다실 다른 프로그램이 딱히 없죠)


















댓글을 달아 주세요



MSSQL EXISTS 사용 방법


MSSQL 하면 프로시져 만들기 참 좋다.
MSSQL 매니지먼트 스튜디오가 편해서 그럴것이다.
실무에서 가장 많이 쓰고 헷갈리는 내장객체는
EXISTS 일것이다.
테이블을 검색해서 값이 있을때와 없을때를 구분한다.


IF EXISTS(
                SELECT * FROM 테이블
                WHERE ID = @ID
         )
    BEGIN    --//SELECT문의 결과값이 존재하면 진입
    END  
ELSE
    BEGIN    --//SELECT문의 결과값이 없을 경우에 진입
    END

그리고 반대로 하고 싶으면 NOT EXISTS 를 사용하면 된다.

IF NOT EXISTS(
                SELECT * FROM 테이블
                WHERE ID = @ID
         )
    BEGIN    --//SELECT문의 결과값이 없을 경우에 진입
    END  
ELSE
    BEGIN    --//SELECT문의 결과값이 존재하면 진입
    END


마무리

항상 철자 까먹는 함수가 EXISTS입니다. 
지금 쓰면서도 헷갈렸었네요 


댓글을 달아 주세요



 MySQL Workbench 설치하기


MySQL GUI(데이터 베이스 툴)은 참 많습니다
제가 쓰는 프로그램은 개인적으로
Front, Yog, Workbench 입다.

이중에 항상 Front와 Workbench를 둘다 설치해 습니다.
그이유는 Front는 데이터를 보고 수정하기에 직관적이고 빠르게 되어 있고
그 밖에 기능은 Workbenc가 압도적입니다.

그래서 오늘 MySQL 워크벤치를 설치해보려고 합니다.

우선 아래 URL을 접속!


▼그 다음 프로그램을 다운받아 보자.



▼ 여기서 괜히 회원가입 하지말고 맨아래 다운로드를 클릭한다.


▼자 이제 Next에 시작입니다.




▼ 역시 넥스트




▼ 넥스트 Mysql에 기본 설정을 믿어보자.





▼ 역시 넥스트

▼ 피니시 누르면 끝입니다. 


▼ 그럼 아래와 같이 워크벤치가 실행되었습니다. 





마무리

설치만으로 끝난건 아니다. 
해당 프로그램 사용하는 방법도 곧 남기겠습니다.





Tag ASP, db, GUI, mysql, Workbenc

댓글을 달아 주세요



MSSQL에서 RAISERROR 예제, 프로시저 오류 캐치하기


프로시져 오류시에 캐치할수 있는 방법이다.
현재 사용하는 프로시져 맨위와 아래에 입력하면 끝
성공과 실패 후에 액션도 만들어야겠죠?


DECLARE     @V_ERR                        INT
SET         @V_ERR                        = 0

BEGIN
-------------------------------------------------------------------
--///    프로시져 실행
-------------------------------------------------------------------     
END
SET @V_ERR = @@ERROR
IF  @V_ERR <> 0
BEGIN
RAISERROR('오류가 발생하였습니다.!!', 16, 1)
RETURN @V_ERR
END





마무리

오류가 발생시 에러 내역을 테이블에 기록 하게 프로시저를 작성 해보세요


댓글을 달아 주세요