SSMS 쿼리창 아래 색상 변경하기 


안녕하세요.
고코더 입니다.


많은 데이터베이스를 접속하다보면 착각하여 잘못된 곳을 수정하다가 실수하는 경우가 종종 있습니다.
특히 실서버,개발서버가 제일 혼동하기 쉽습니다. SSMS에서는 이런 혼동을 막기위해 쿼리창 밑에 색상으로 구별할 수 있는 기능을 제공하고 있습니다. 


 1. 데이터베이셔 연결 창에서 옵션을 클릭 합니다. 


 2. 그 다음 연결 속석 탭에서 사용자 지정색 사용을 체크하고 선택(E)를 클릭 합니다. 


 3. 그럼 지정색으로 해당 영역에 표시 됩니다. 


 4. 그리고 SSMS를 재부팅하고 다시 접속해보면 쿼리창 아래에 원하는 색상으로 지정되어서 헷갈리는걸 방지 할 수 있습니다. 



마무리


실서버에 모르고 UPDATE 하는 불상사가 없기를....


댓글을 달아 주세요


table column을 검색해서 찾아보기


안녕하세요.
고코더 입니다.


데이터베이스에 있는 모든 테이블에서 특정 컬럼명을 검색하는 방법을 소개합니다. 
어렴풋 스키마를 외운분들은 이 쿼리를 통해 금새 필요한 테이블을 찾을 수 있습니다. 
저도 자주 사용하는 방법입니다.

 1. 아래 SQL을 실행해보세요. 저는 임시로 만든 테이블에 GoCoder 라는 이름으로
해당 컬러명을 검색 합니다.

1
2
3
4
5
6
7
SELECT     
       t.NAME      AS table_name,
       c.NAME      AS column_name
FROM       sys.tables  AS t
INNER JOIN sys.columns AS c
ON         t.object_id = c.object_id
WHERE      c.NAME LIKE '%GoCoder%'
cs



 2. 결과는 이렇게 테이블 네임과 함께 컬럼명이 노출 됩니다. 이렇게
컬럼을 통해 테이블을 찾아낼 수 있어서 편리합니다.


 3. SQL을 분석한 분은 아시겠지만 만약에 where 만 없이 실행한다면 
1
2
3
4
5
6
SELECT     
       t.NAME      AS table_name,
       c.NAME      AS column_name
FROM       sys.tables  AS t
INNER JOIN sys.columns AS c
ON         t.object_id = c.object_id
cs


 4. 이렇게 모든 테이블을 조회 하는 쿼리로 사용이 가능합니다. 




마무리

눈으로 찾지 마세요. 손가락에 양보하세요.


댓글을 달아 주세요


DATABASE Create


안녕하세요.
고코더 입니다.


SSMS를 이용해 데이터베이스를 생성하는 방법을 알아보겠습니다.
사실 UI가 잘되어 있어서 누구나 직감적으로 만들 수 있을 정도로 쉽지만
그래도 아쉬운 분들을 위해 남겨보려고 합니다. 


 1. MSSQL에 접속하여서 데이터베이스에서 마우스 오른쪽 버튼을 누르고 새 데이터베이스를 클릭 합니다.

 2. 그리고 데이터베이스 이름을 입력하고 확인을 누르면 끝입니다. 가장 기본적으로 사용하기 알맞은 옵션으로 제작하기 때문에 사실 학습자라면 충분 합니다. 
그래도 한가지 꼭 알고 가면 좋은건 자동증가/최대크기 입니다. 제가 쓴 다른 글을 확인해보세요.

 3. 옵션을 이동해보면 다양한 옵션이 있습니다. 데이터베이스를 조금 특별하게 활용한다면 만질 수 있겠지만 
학습자라면 그대로 사용하는걸 추천 합니다.


 4. 가끔 SSMS를 이용한 데이터베이스를 조작하는걸 보고 게으르다. 너무 쉽다라는 분들도 계시는데요. 
마우스 3번 클릭으로 완성되는 데이터베이스를 보자니 학습의 의욕이 떨어진 분들은
아래 스크립트 SQL를 한번 보세요. 하나씩 뜯어보면 어려운건 없지만 이걸 모두 공부해서 달달 외울수 있는 체력이 있는 분들은 상관 없지만 더 필요한 곳을 학습하고 싶다면 UI로 데이터 베이스를 만들어도 좋습니다.


마무리


말은 좀 길었지만 쉬운건 맞습니다.


댓글을 달아 주세요



Visual Studio 2019 query 날리기


안녕하세요.
고코더 입니다. 



비주얼스튜디오는 기본적으로  SQL서버를 접속해서 쿼리를 질의하는 기능이 있습니다.
젯브레인 스톰계열에서 자주 사용하던 기능인데요. 우리의 비주얼스튜디오도 이게 존재합니다.


 1. 도구에서 SQL Server를  클릭하고 New Query를 실행합니다.

 2. 그러면 많이 익숙한 데이터베이스 접속창이 뜹니다. SSMS 일부 기능을 이식하여서
사용하는거 처럼 보이는데요. 똑같이 로컬에 있는 데이터베이스는 물런 IP로 네트워크에
데이터베이스까지 접속이 가능합니다. 저는 로컬에 접속합니다. 

 3. 접속하면 .sql 로 시작하는 파일로 쿼리 창이 나타납니다. 
해당 쿼리창에서 원하는 query를 질의하고 왼쪽 위에 있는 재생 버튼을 누릅니다. 다른 버튼이랑 헷갈리시면 안되요.


 4. 그러면 쿼리 결과 화면도 SSMS 와 같은 컬럼 방식을 기본으로 노출하게 됩니다. 


마무리

비주얼 스튜디오에서 하나에서 모든걸 다할 수 있습니다.
물런 요즘 컴퓨터 사양도 좋고 듀얼모니터가 기본이기에 두개를 켜놓고 하는게 더 나은 선택입니다.




댓글을 달아 주세요


단축키 입력으로 테이블 빠르게 조회 하기 


안녕하세요. 
고코더 입니다.


제가 SSMS를 쓰면서 가장 편리하게 사용중인 기능인
단축키를 이용해서 테이블을 조회 하는 방법을 공유합니다.

 1. SSMS에서 도구에서 옵션으로 이동 합니다. 


 2. 그리고 환경에서 키보드 그리고 쿼리 바로 가기를 클릭 합니다. 이제 쿼라 단축키에 

1
SELECT TOP 1000 * FROM 
cs
입력합니다.  (TOP 안넣으면 아마 DBA한테 혼날거에요.)

 3. 그럼 모든게 준비가 완료 입니다. 테이블 이름을 마우스로 포커스를 준다음 
위에서 지정한 단축키를 클릭 합니다. 저는 CTRL+3 로 했습니다. 
그럼 해당 테이블을 select가 됩니다. 프로시저를 만들때 특히 유용합니다.


마무리


개발속도 0.2배는 빨라집니다.



댓글을 달아 주세요





스트럿츠2 아이바티스 데이터베이스 연결 소스


안녕하세요.
고코더 입니다.


오늘은 ibatis를 이용해 오라클 데이터베이스를 연결하는 방법을 알아보겠습니다.
ibatis를 이용한 이유는 스트럿츠2에서 가장 많이 사용하는 프레임워크 입니다. 
실무에서도 이 두 조합은 쉽게 볼 수 있습니다. 
그래서 최대한 쉽게 ibatis를 스트럿츠2를 이용해 데이터베이스를 연결해서 select 쿼리를 날려보겠습니다.

학습전에 제가 남겨둔 이전 스트럿츠 강의를 보고 오시길 바랍니다. 해당 소스를 활용할 예정입니다.

그리고 오라클 데이터베이스도 설치하시면 좋을거 같습니다
-> 

Oracle - 오라클 오류 "ora-28000 the account is locked" / 계정이 잠겨 있습니다.

오라클 - scott 계정은 첫 로그인 후 비번을 바꿔야 합니다. / the password has expired




 1. SqlMapConfig.xml 생성


src 폴더 아래 SqlMapConfig.xml 를 생성해주세요. 데이터베이스 연결을 위한 config 파일 입니다.

내용은 아래처럼 채워주세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="oracle.jdbc.OracleDriver"/>
      <property name="JDBC.ConnectionURL"  value="jdbc:oracle:thin:@localhost:1521:orcl"/>
      <property name="JDBC.Username" value="scott"/>
      <property name="JDBC.Password" value="tiger"/>
    </dataSource>
  </transactionManager>
       
       <sqlMap resource="map/db_test.xml" />
</sqlMapConfig>
cs

 2. SqlMapLocator.java 생성


util 패키지를 생성하여 SqlMapLocator.java 파일을 만듭니다. ibatis를 사용하기 위한 기본 파일입니다.

내용은 아래처럼 채웁니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package util;
import java.io.IOException;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class SqlMapLocator {
       public static SqlMapClient getMapper()
       {
             SqlMapClient sqlMapper;
             
           try
           {
              Reader reader = Resources.getResourceAsReader(
                      "SqlMapConfig.xml");
              sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
              
              reader.close();
           }
           catch (IOException e)
           {
              // Fail fast.
              throw new RuntimeException(
                      "Something bad happened while building the SqlMapClient  instance." +
                      e, e);
           }
           return sqlMapper;
       }
}
cs

해당 예제는 ibatis를 사용할때 거의 공통으로 쓰는 방식입니다. 우선 작성해보세요.



 3. db_test.xml


이번엔 이전에 생성한 map 패키지 안에 db_test.xml을 만듭니다. 
이 파일은 게시판을 만들때 사용하기 위해 test 라는 이름으로 만들었습니다.
해당 xml은 모든 쿼리를 작성하여 사용합니다. 

내용은 아래처럼 채웁니다.
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap>
       <select id="conTest" resultClass="String">
       select 'Database Connection Test' as conTest from DUAL
       </select>
</sqlMap>
cs
5번째 라인 : 해당 쿼리에 id를 지정합니다. 반환 클래스는 스트링 문자로 반환합니다.
6번째 라인 : select 문을 작성하였습니다. 오라클 기본 테이블을 이용하여 데이터베이스 연결 테스트 입니다.


 4. TestDao.java 생성 


이제는 쿼리를 끌어와 실행시킬 DAO(Data Access Object) 파일을 생성합니다. 이 파일은 DB를 사용해 데이터를 조화하거나 조작하는 기능을 전담하는 오브젝트입니다.

내용은 이렇게 작성합니다. 데이터 베이셔 연결을 위한 쿼리만 하나만 가져옵니다.
1
2
3
4
5
6
7
8
9
10
package test;
import java.sql.SQLException;
import util.SqlMapLocator;
public class TestDao {
       public String conTest() throws SQLException
       {      
             //데이터베이스 연결 테스트
             return   (String)SqlMapLocator.getMapper().queryForObject("conTest");
       }
}
cs

8번째 라인 : ibatis에 queryForObject 를 사용해 연결되어 있는 XML에 conTest 쿼리를 가져옵니다.


 5. TestAction.java 수정


해당 Action 파일을 수정 합니다. 이전에 함께 따라 하신분은 코드를 추가하면 됩니다.

내용은 이렇게 기록 합니다. 기존 액션 클래스에 내용을 추가했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package test;
import java.sql.SQLException;
import com.opensymphony.xwork2.ActionSupport;
public class TestAction extends ActionSupport {
     String Title;
     String Content;
     public String getTitle() {
           return Title;
     }
     public void setTitle(String Title) {
           this.Title = Title;
     }
     
     public String getContent() {
           return Content;
     }
     public void setContent(String Content) {
           this.Content = Content;
     }
     
     public String getView() {
           //this.Title = "제목";
           //this.Content = "내용";
           return SUCCESS;
     }
     
     /*데이터베이스 연결 테스트를 위한*/
     
     TestDao dao = new TestDao();
     String ConYN;    
     public String getConYN() {
        return ConYN;    
     }
  
     public String conTest() throws SQLException {
         this.ConYN = dao.conTest();
         return SUCCESS;
     }
}
cs
9번 라인 : 위에서 생성한 dao를 생성합니다.
15번 라인 : 위에서 작성한 conTest() 메소드를 가져옵니다.



 6. struts2_test.xml 추가


이제는 URI에서 맵핑이 되도록 struts2_test.xml를 수정해보겠습니다. 

아래에 내용을 추가합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
     <package name="struts2_test" namespace="/test"  extends="struts-default">
           <action name="hello" class="hello.HelloAction">
                <result name="success" >/WEB-INF/hello.jsp</result>
           </action>
           <action name="view" class="test.TestAction" method="getView">
                <result name="success" >/WEB-INF/test/view.jsp</result>
           </action>
             <!-- 데이터 베이스 연결 테스트 -->       
           <action name="conTest" class="test.TestAction"  method="conTest">
                <result name="success"  >/WEB-INF/test/conTest.jsp</result>
           </action>            
     </package>
</struts>
cs



 7. WEB-INF/test/conTest.jsp 파일 생성


뷰를 작성하기 위해 test 폴더 아래 해당 파일을 생성합니다. 

아래에 내용을 기입합니다. 
1
2
3
4
5
6
7
8
9
10
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
       <body>
       접속 : ${ConYN}
       </body>
</html>
cs

${ConYN}을 이용해 데이터베이스 액세스를 체크 합니다.


 8. 결과 화면 


해당 URL에 접속하면 데이터베이스가 연결된걸 확인 가능합니다.


마무리



최대한 쉽게 가르켜드리려고 합니다.!

댓글을 달아 주세요


샘플 데이터베이스 생성


안녕하세요.
고코더 입니다.

임의로 반복되는 문자와 숫자로 SQL로 데이터를 만드는 방법을 알아보았지만

이번엔 제대로된 샘플 데이터 자료를 공유합니다.

 1. 해당 사이트에 접속하면 bikestore라는 SQL 샘플 데이터를 제공합니다.
테이블 생성부터 insert 쿼리까지 제공 합니다. 

 2. 첨부파일을 다운로드 하셔도 됩니다.
 3. 파일은 3가지가 있습니다. 
1단계로 create objects.sql 로 테이블을 생성하고
2단계로 load data.sql.sql을 실행하면 됩니다.
지우고 싶다면 drop all objects.sql을 실행하시면 됩니다.

 4. 해당 SQL을 모두 실행하면아래처럼 테이블이 생깁니다.
다양한 쿼리를 연습하고 싶다면 이용해보세요.


마무리


데이터가 제대로 되야 연습할 맛 이 나죠



댓글을 달아 주세요


SQL 프로그램에서 접근이 안될때 


안녕하세요.
고코더 입니다.


 1. 오라클 19c를 10년된 윈도우7에 깔았더니(내 책임이네)
sqlplus로 오라클이 접속은 되지만


 2. SQL 프로그램이나 서버에서 접속이 안되고 
이런 메세지가 뜨는 경우가 있습니다. 
the network adapter could not establish the connection



 3. 저는 19c 버전에서 이런 현상이 발견해서 서비스를 열어보니 오라클 리스너 서비스가 실행이 안됩니다.
시작해도 중지되고 설치 과정에 문제가 있어서 설치가 제대로 안된 것입니다. 


 4. 오라클을 다시 설치하시던가 해당 버전이
컴퓨터 사양과 안맞아서 생기는 이유 입니다.


마무리


19c 복잡해요


댓글을 달아 주세요


데이터베이스 문자열 연결 생성 방법 


안녕하세요.
고코더 입니다.


PHP나 ASP와 같은
언어에서는 DB 연결 정보를 문자열로 입력하여
데이터베이스를 연결 합니다.

▼ 가장 기본적인 ASP의 DB 연결 예시입니다.
set db=Server.CreateObject("ADODB.Connection")
db.Open "Provider=SQLOLEDB;Data Source=데이터베이스주소;Initial Catalog=데이터베이스이름;user ID=사용자ID;password=비번"

이렇게 DB 연결하기전에
필요한 곳에 데이터베이스 정보를 문자열로 기록 합니다.
그런데 저 문자열에는 그저 주소와 계정만 넣으면 되지만
헷갈릴때가 많은데

그럴땐 윈도우에 UDL 이란 파일을 이용하시면 됩니다.

Universal Data Link는 데이터 소스를 연결하기 위해 만들어진 파일 형식입니다.


▼ 윈도우에서 아무 파일을 우선 생성합니다.


▼ 그다음 해당 파일의 확장자를 udl로 변경합니다.
아이콘이 달라지네요. 이 파일을 이제 
실행 합니다.


▼ 그럼 데이터 연결 속성이 나오는데
여기서 공급자에서 원하시는 DB를 선택합니다.
mssql은 SQL Server 이고
오라클은 Oreacle OLE DB 입니다.




▼ 그리고 연결을 선택해
해당 탭에서 접근하고 싶은 정보의 SQL 정보를 입력합니다.
연결테스트로 맞게 입력 되었는지 확인합니다.
그리고 확인을 눌러 마무리 합니다.


▼ 그리고 해당 파일을 메모장이나 에디터플러스로 열어봅니다. 
메모장을 키고 드래그만 하면 볼수 있습니니다.


그럼 SQL 연결 문자열이 완성됐고
이걸 소스상에 입력하면 됩니다.



마무리


이 방법을 몰랐을땐 데이터 베이스 연결 문자열 쓰기가 어려웠는데
지금은 쉽네요.


댓글을 달아 주세요


인피니티 프리에서 데이터베이스 사용하기


안녕하세요. 
고코더 입니다.


오늘은 사이트의 정보를 저장하는 
핵심 주체인 데이터베이스를 생성해보겠습니다.
사이트는 파일과 DB로 되어 있습니다.
DB는 정보를 관리하고 입력,수정,삭제를 가능하게 합니다.
만약 DB가 없다면 매번 파일의 글자체를 고치고 있어야 했겠죠?


1. C패널


DB에 접속하려면 이젠 C패널을 사용해야 합니다.
Control panel 을 클릭해주세요.


그러면 인피니티 프리가 제공하는 C패널에 접속하게 됩니다.
여기서 모든 호스팅의 옵션을 바꿀 수 있습니다.
거의 모든 호스팅 업체가 이러한 C패널을 제공합니다.




2. DB 생성 접속


C패널에서 스코를을 내려 중간쯤을 확인해보면
데이터 베이스 항목이 있습니다
여기서 MYSQL Databases 를 클릭해주세요.


그리고 만들어질 데이터베이스 이름을 입력해주세요.
개인고유 유저명과 이름이 합쳐져서 데이터베이스명이 됩니다.


아래와 같이 데이터베이스가 생성되고
admin 버튼을 클릭하면 
별다른 로그인 절차 없이 phpmyadmin 이 연결 됩니다.


생성된 테이블이 없으니
새테이블 이름을 넣고 실행을 눌러주세요.


그리고 임시적으로 테스트를 위해 컬럼명을 만들어보겠습니다.
그리고 저장을 누르면 


이제 사용 가능한 테이블이 완성 되었습니다.
(사이트 개발을 위한 생성이 아닌 호스팅 사용법을 익히기 위한 테스트입니다.)


C패널 Statiistics에 mysql 데이터베이스가 1개로 숫자가 카운팅 되어 있습니다.
데이터베이스 갯수도 무제한이네요.

    

호스팅의 중요 서비스인 인피니티 프리의 데이터베이스 까지 알아봤습니다.


마무리


글로벌 서비스 답게 C패널 기능들이 좋네요.





댓글을 달아 주세요