2016. 6. 20. 14:03

Syntax

- IF ELSE 구문

CASE 구문

- Truncate Table


Function

- DATETIME_FORMAT()

- IFNULL()

CONCAT

STR_TO_DATE

LPAD

LAST_INSERT_ID

Posted by CoolDragon
2016. 5. 12. 15:22

1. 다운로드

리눅스 및 맥, 윈도우즈등 다양한 플랫폼을 지원한다.

http://www.planetcassandra.org/cassandra/


2. 설치

윈도우환경에서 개발할 것이므로 윈도우 MSI installer를 다운로드받고 설치를 한다. 설치 과정은 특별히 선택할게 없었다.

설치 후 윈도우 메뉴에서 아래의 이미지처럼 설치 결과를 확인할 수 있다.

3. 실행 및 데이터베이스 생성

Cassandra CQL Shell을 실행하면 카산드라 콘솔이 생성되며 아래의 스크립트를 추가해본다. 

(본 블로거도 카산드라 초보이므로 카산드라 웹사이트에서 참고하여 대충 만들었다.)

CREATE KEYSPACE demo
  WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };

CREATE TABLE demo.users (
  lastname text PRIMARY KEY,
  age int,
  city text,
  email text,
  firstname text
);

DROP TABLE demo.users;

4. C# 프로젝트

Nu-Get을 통하여 driver를 설치

Install-Package CassandraCSharpDriver
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Cassandra;

namespace CassandraSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Cluster cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build();
            ISession session = cluster.Connect("demo");

            session.Execute("insert into users (lastname, age, city, email, firstname) values ('Jones', 35, 'Austin', 'bob@example.com', 'Bob')");

            Row result = session.Execute("select * from users where lastname = 'Jones'").First();
            Console.WriteLine("{0} {1}", result["firstname"], result["age"]);
            Console.ReadLine();

            session.Execute("update users set age = 36 where lastname = 'Jones'");
            Row result2 = session.Execute("select * from users where lastname = 'Jones'").First();
            Console.WriteLine("{0} {1}", result2["firstname"], result2["age"]);
            Console.ReadLine();

            session.Execute("delete from users where lastname = 'Jones'");
            RowSet rows = session.Execute("select * from users");
            foreach (Row row in rows)
                Console.WriteLine("{0} {1}", result2["firstname"], result2["age"]);

            Console.ReadLine();
        }
    }
}

5. 결론

그냥 실행만 해보는 수준이다 보니 카산드라가 다른 NoSQL이나 MSSQL과 같은 DB에서 지원하는 기능을 얼마나 지원해주고 더 나은 부분을 확인은 할 수 없었다. 다만, 위에 보는 거와 같이 쉽게 연동이 가능해 보이며 ANSI SQL을 지원하기에 이미 MSSQL, ORACLE, MYSQL의 DB를 사용해본 사람이라면 쉽게 접근할 수 있지 않을까 싶다.


Reference: https://academy.datastax.com/resources/getting-started-apache-cassandra-and-c-net

Posted by CoolDragon
2015. 9. 2. 16:44

Insall XAMPP

refer to install XAMPP


Create Database
Open browser >> Put following the URL: http://192.168.xxx.xxx/xampp >> Click phpMyAdmin link as image capture below


Create database >> Put "Database name" on the textbox and select Collation

Create User >> Click "Add User" link

Put new user information >> User name, Host, Password (You can create password by Generate password)

Check privileges for new User

Check Global privilieges

Require SSL >> Click Go if you are done setting up for new user.






Posted by CoolDragon
2015. 8. 31. 01:16

1. Install PostgreSql

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

$ sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.4" >> pgdg.list

$ sudo cp pgdg.list /etc/apt/sources.list.d/pgdg.list

$ sudo apt-get update

$ sudo apt-get -y install postgresql-9.4 postgresql-client-9.4


2. Set password for Postgresql

$ sudo -u postgres psql postgres

postgres=# \password postgres

Enter new password: 

Enter it again: 

postgres=# \q


3. Allow aceess remote

$ sudo vi /etc/postgresql/9.4/main/pg_hba.conf

...

# IPv4 local connections:

host    all             all             127.0.0.1/32            md5

host    all             all             192.168.1.0/24          md5   # Add 

...

$ sudo vi /etc/postgresql/9.4/main/postgresql.conf

listen_addresses = '*' # replace "*" with "localhost"

port = 5432

$ sudo service postgresql restart


4. Open Port on firewall

$ sudo ufw allow 5432


5. Test

pgAdmin Download








Reference

http://www.unixmen.com/install-postgresql-9-4-phppgadmin-ubuntu-14-10/

http://askubuntu.com/questions/233064/why-am-i-getting-command-deb-not-found


Posted by CoolDragon
2013. 10. 31. 13:37

My SQL 프로시저 생성 방법

DELIMITER //

DROP PROCEDURE IF EXISTS sp_UserInfo_Select_All //

CREATE PROCEDURE sp_UserInfo_Select_All)

BEGIN

    SELECT *

      FROM UserInfo;

END//

DELIMITER ;


DELIMITER //

DROP PROCEDURE IF EXISTS sp_UserInfo_Select //

CREATE PROCEDURE sp_UserInfo_Select

(

    pi_UserID INT

)

BEGIN

    SELECT *

      FROM UserInfo

     WHERE UserID = pi_UserID;      

END//

DELIMITER ;


DELIMITER //

DROP PROCEDURE IF EXISTS sp_UserInfo_Insert //

CREATE PROCEDURE sp_UserInfo_Insert

(

    pi_UserName VARCHAR(20)

    ,OUT po_UserID INT

)

BEGIN

    INSERT INTO UserInfo (UserName)

    VALUES (pi_UserName);


    -- Auto Increment 값 조회

    SELECT LAST_INSERT_ID()

      INTO po_UserID; -- OUT 파라메터 담기

END//

DELIMITER ;


DELIMITER //

DROP PROCEDURE IF EXISTS sp_UserInfo_Update //

CREATE PROCEDURE sp_UserInfo_Update

(

    pi_UserID INT

    , pi_UserName VARCHAR(20)

)

BEGIN

    UPDATE UserInfo

       SET UserName = pi_UserName

     WHERE UserID = pi_UserID;

END//

DELIMITER ;


DELIMITER //

DROP PROCEDURE IF EXISTS sp_UserInfo_Delete //

CREATE PROCEDURE sp_UserInfo_Delete

(

    pi_UserID INT

)

BEGIN

    DELETE FROM UserInfo

     WHERE UserID = pi_UserID;

END//

DELIMITER ;


프로시저 호출

CALL sp_UserInfo_Select_All();

CALL sp_UserInfo_Select(1);

CALL sp_UserInfo_Insert('Park', @UserID);

SELECT @UserID

CALL sp_UserInfo_Insert('Choi', @UserID);

SELECT @UserID

CALL sp_UserInfo_Insert('bahk', @UserID);

SELECT @UserID

CALL sp_UserInfo_Select(2);

CALL sp_UserInfo_Update(2, 'Choi-Update');

CALL sp_UserInfo_Select(2);

CALL sp_UserInfo_Delete(2);

CALL sp_UserInfo_Select_All();


Posted by CoolDragon
2013. 7. 29. 17:58

아래와 같은 오류가 발생하면 

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

아래와 같은 명령어로 해결한다.

redis 127.0.0.1:6379> config set stop-writes-on-bgsave-error no



출처 : https://github.com/antirez/redis/issues/584

Posted by CoolDragon
2013. 7. 17. 19:37

EXEC sp_addlinkedserver   

    @server='db link 명', 

    @srvproduct='',

    @provider='SQLNCLI', 

    @datasrc='tcp:0.0.0.0'


EXEC sp_addlinkedsrvlogin

    @useself='FALSE',

    @rmtsrvname='db link 명',

    @rmtuser='계정',

    @rmtpassword='비밀번호'


더 잘 정리된 포스트 http://blog.naver.com/PostView.nhn?blogId=0131v&logNo=110110231583

Posted by CoolDragon
2013. 7. 15. 13:35

####################

# 방화벽 포트 등록 #

####################

$ vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT (6379 포트 항목 추가)

$ /etc/init.d/iptables restart (방화벽 포트 설정 재시작)


####################

# GCC 설치         #

####################

# yum groupinstall 'Development Tools'


####################

# Redis 설치       #

####################

$ wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz

$ tar xzf redis-2.6.14.tar.gz

$ cd redis-2.6.14

$ make && make install


$ src/redis-server


$ src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar":q


####################

# Redis 서비스 실행#

####################

$ mkdir /etc/redis /var/lib/redis

$ sed -e "s/^daemonize no$/daemonize yes/" -e "s/^dir \.\//dir \/var\/lib\/redis\//" -e "s/^loglevel debug$/loglevel notice/" -e "s/^logfile stdout$/logfile \/var\/log\/redis.log/" redis.conf > /etc/redis/redis.conf


$ wget https://raw.github.com/gist/257849/9f1e627e0b7dbe68882fa2b7bdb1b2b263522004/redis-server

$ sed -i "s/usr\/local\/sbin\/redis/usr\/local\/bin\/redis/" redis-server

$ chmod u+x redis-server

$ mv redis-server /etc/init.d

$ /sbin/chkconfig --add redis-server

$ /sbin/chkconfig --level 345 redis-server on

$ /sbin/service redis-server start

$ ps -ef // 프로세스 체크


####################

# Redis TEST       #

####################

telnet 아이피 포트

set attitude:today "happy"

get attitude:today



[출처]

http://redis.io/download

http://www.ebrueggeman.com/blog/install-redis-centos-56

Posted by CoolDragon
2011. 2. 22. 15:59

--패키지 및 프로시저 선언
CREATE OR REPLACE PACKAGE DH.TEST_PKG AS
    TYPE T_CURSOR IS REF CURSOR;
    
    PROCEDURE TEST1
    (
         IN_WOCUST IN VARCHAR2
        ,V_CURSOR OUT T_CURSOR
    );
END TEST_PKG;
/

------------------------------------------------------------------------------

-- 패키지 및 프로시저 구현
CREATE OR REPLACE PACKAGE BODY DH.TEST_PKG AS

    PROCEDURE TEST1
    (
         IN_WOCUST IN VARCHAR2
        ,V_CURSOR OUT T_CURSOR
    )
    IS
        vJHJIL NUMBER(5);
        vDAEIL NUMBER(5);
        BI_TEXT VARCHAR(3);
    BEGIN
     SELECT  '333'
        INTO    BI_TEXT
        FROM    DUAL;

     OPEN V_CURSOR FOR
            SELECT  ''
Posted by CoolDragon
2010. 10. 24. 20:05
서버에 락이 발생하면 특정 업무처리가 마비되어버린다.
(관련된 테이블이 락이 걸리면 말이다..)

이에 따라 LOCK이 걸린 요청 프로세스를 찾아 종료를 해주어야
LOCK이 해제가 되면서 다시 원활한 작업이 가능하다.

sp_lock 명령어를 통해 LOCK이 걸린 결과를 확인할 수 있으며
결과중 LOCK이 걸린 spid 를 종료해주어야 한다.
종료해주는 KILL 명령어를 사용하여 LOCK을 해제해준다.

>> KILL spid값 (실행)
Posted by CoolDragon