Sunmoon_BIT/ORACLE SQL 2010. 2. 22. 23:34

데이터의 조회 : SELECT
데이터의 삭제 : DELETE
데이터의 저장 : INSERT(신규 데이터 입력) / UPDATE(기존 데이터 수정)
[[ SELECT 문 ]]
<구문형식>
SELECT 컬럼1,컬럼2...
FROM    테이블1,테이블2, ...
WHERE  조건들;

예) SELECT last_name,first_name
     FROM  employees
     WHRER  hire_date >= '2006-01-01';
->employees테이블에서 hire_date가 2006-01-01이상인 데이터의 last_name과first_name을 조회. 
[[ INSERT 문 ]]
<구문형식 1>
INSERT INTO 테이블명1 (컬럼1_1,컬럼1_2,...)
VALUES  (컬럼1_1 값,컬럼1_2 값, ...);
<구문형식 2>
INSERT INTO 테이블명1
VALUES  (컬럼1_1 값,컬럼1_2값,...);
->컬럼 리스트와 그 컬럼에 들어갈 값의 순서는 정확하게 맞아야한다.
->두번째 유혈처럼 컬럼 리스트가 생략이 가능한다 이런 경우에는  테이블에 있는 모든 컬럼에 데이터를 넣는 의미
이므로 VALUE절에 컬럼의 값 중 단 하나라도 없으면 류가 발생
<구문형식 2>
INSERT INTO 테이블명1(컬럼1,컬럼2,...)
SELECT 컬럼2_1,컬럼2_2,...
FROM  테이블2
WHERE ...;
->제 3의 테이블에 있는 데이터를 선택해서 새로운 데이터를 넣는 형태
[[ UPDATE 문 ]]
<구문형식>
UPDATE  테이블명
SET  변경컬럼1 = 변경하고자 하는 값,
        변경컬럼2 = 변경하고자 하는 값.
        ...
WHERE  조건절 ...;
->변경하고자 하는 테이블과 컬럼, 그리고 변경값을 나열해 주면된다.
->INSERT문처럼 SELECT문이 와서 제 3의 테이블에 있는 컬럼의 값으로 변경가능하다.
->WHERE절을 명시해서 조건이 일치하는 데이터들만 갱신할 수 있다. 생략할 경우에는 테이블 전체 데이터가 변경된다.
[[  DELETE 문  ]]
<구문형식>
DELETE [FROM] 테이블
WHERE  조건...; 
->데이터를 삭제한다는것은 테이블의 로우를 없애는 것이다.
->WHERE로 특정 조건에 맞는 데이터만 삭제. WHERE절을 생략하면 테이블 전체 데이터가 삭제된다.
[[  COMMIT 문  ]]
만약 WHERE절을 명시하지 않고 DELETE문을 실행하면 테이블에 있는 모든 데이터가 삭제된다.
이러한 실수를 예방하기 위해 INSERT,UPDATE,DELETE문을 실행하더라고 곧바로 데이터가 변경되지 않고
실제 데이터의 변경은 COMMIT문장을 실행하였을때 데이터파일에 적용된다.
<구문형식>
COMMIT [WORK] [TO SAVEPOINT savepoint_name];
->[]표시괸 부분은 생략이 가능하다. 즉 위의 구문이나 'COMMIT나 동일한 효과이다.
->SAVEPOINT는 특정 시점까지 작업한 내용을 반영할 경우 사용.
->COMMIT으로 반영되는 데이터는 이전 COMMIT이나 ROLLBACK을 실행한 시점부터 현재 COMMIT을 실행하는 동안에 이루어진 내용을 반영.
[[  ROLLBACK 문  ]]

COMMIT와는 반대의 개념으로 변경된 데이터들을 변경 전 상태로 되돌리는 역활을 한다.
원하닌 않는 데이터까지 삭제했을 경우 ROLLBACK문을 실행하면 이전 ROLLBACK이나 COMMIT가 실행된 시점
이후에 변경된 사항은 모두 원상태로 되돌아간다. 즉 취소의 개념이다
<구문형식>
ROLLBACK [WORK] [TO SAVEPOINT savepoint_name];

'Sunmoon_BIT > ORACLE SQL' 카테고리의 다른 글

ORACLE TABLESPACE 확인  (0) 2012.06.28
데이터베이스에 XML파일 저장하기  (0) 2010.04.27
DataBase 검색 [ 검색 쿼리문]  (0) 2010.04.26
LOGICAL OPERATORS  (0) 2010.02.24
:
Sunmoon_BIT/Win32API 2010. 2. 22. 09:18


 

"ASYNSELECT_SERVER.h"
#pragma comment (lib,"ws2_32")
#include <winsock2.h>

#include "resource.h"
#include <stdio.h>
#include <windows.h>

#define MWM_SOCK (WM_APP +1)
#define C_IP "192.168.34.110"
#define MY_IP "192.168.34.110"
#define USE_PORT 1444

BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam);
BOOL DlgCmd(HWND hDlg,WPARAM wParam);
BOOL InitSock(HWND hDlg);
BOOL Onsock(HWND hDlg,SOCKET sock,WORD msg,WORD eid);
void AcceptProc(HWND hDlg,SOCKET sock);
void ReadMSG(HWND hDlg,SOCKET sock);


"ASYNSELECT_SERVER.cpp"
#include "ASYNSELECT_SERVER.h"
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
 WSADATA wsadata;
 if(WSAStartup(MAKEWORD(2,2),&wsadata) != 0)
 {
  return 0;
 }
 HANDLE hMutex = CreateMutex(NULL,FALSE,"ASYNC_SERVER");
 if(GetLastError() != ERROR_ALREADY_EXISTS)
 {
  DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),0,DlgProc);
  CloseHandle(hMutex);
  WSACleanup();
  return 0;
 }
 MessageBox(NULL,"이미 실행 중 입니다","경고",MB_OK);
 CloseHandle(hMutex);
 WSACleanup();
 return 0;
}
BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
 switch(iMessage)
 {
 case WM_INITDIALOG :  return InitSock(hDlg);
 case WM_COMMAND  :  return DlgCmd(hDlg,wParam);
 case MWM_SOCK  :  return Onsock(hDlg,(SOCKET)wParam,LOWORD(lParam),HIWORD(lParam)); 
 }
 return FALSE;
}
BOOL DlgCmd(HWND hDlg,WPARAM wParam)
{
 switch(LOWORD(wParam))
 {
 case IDCANCEL : EndDialog(hDlg,IDD_DIALOG1);
 }
 return TRUE;
}
BOOL InitSock(HWND hDlg)
{
 SOCKET sock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
 SOCKADDR_IN servaddr = {0,};
 servaddr.sin_addr.s_addr = inet_addr(MY_IP);
 servaddr.sin_port = htons(USE_PORT);
 servaddr.sin_family = PF_INET;
 
 bind(sock,(SOCKADDR *)&servaddr,sizeof(servaddr));
 listen(sock,3);
 WSAAsyncSelect(sock,hDlg,MWM_SOCK,FD_ACCEPT);
 return TRUE;
}
BOOL Onsock(HWND hDlg,SOCKET sock,WORD msg,WORD eid)
{
 switch(msg)
 {
 case FD_ACCEPT : AcceptProc(hDlg,sock); break;
 case FD_READ : ReadMSG(hDlg,sock);  break;
 }
 return TRUE;
}
void AcceptProc(HWND hDlg,SOCKET sock)
{
 SOCKADDR_IN clientaddr = {0,};
 int len = sizeof(clientaddr);
 SOCKET dosock = accept(sock,(SOCKADDR *)&clientaddr,&len);
 WSAAsyncSelect(dosock,hDlg,MWM_SOCK,FD_READ);
}
void ReadMSG(HWND hDlg,SOCKET sock)
{
 int MSGlen;
 char msg[256];
 memset(msg,0,256);
 recv(sock,(char*)&MSGlen,sizeof(MSGlen),0);
 recv(sock,msg,MSGlen,0);
 //MessageBox(hDlg,"메세지가 도착하였습니다","OK",MB_OK);
 SendMessage(GetDlgItem(hDlg,IDC_LIST1),LB_ADDSTRING,0,(LPARAM)msg);//list에 추가!
}



 

"ASYNCSELECT_CLIENT.h"
#pragma comment (lib,"ws2_32")
#include <winsock2.h>
#include "resource.h"
#include <stdio.h>
#include <windows.h>

#define MWM_SOCK (WM_APP +1)
#define C_IP "192.168.34.110"
#define MY_IP "192.168.34.110"
#define USE_PORT 1444
BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam);
BOOL InitSock(HWND hDlg);
BOOL DlgCmd(HWND hDlg,WPARAM wParam);
BOOL OnSock(HWND hDlg,SOCKET sock,WORD msg,WORD eid);
void SendMSG(HWND hDlg);
void WriteProc(HWND hDlg,SOCKET sock);
void ConnectProc(HWND hDlg,SOCKET sock);

"ASYNCSELECT_CLIENT.cpp"
#include "ASYNCSELECT_CLIENT.h"
INT APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstacne,LPSTR lpCmdLine,int nShowCmd)
{
 WSADATA wsadata;
 if(WSAStartup(MAKEWORD(2,2),&wsadata) != 0)
 {
  return 0;
 }
 HANDLE hMutex = CreateMutex(NULL,FALSE,"C_MUTEX");
 if(GetLastError() != ERROR_ALREADY_EXISTS)
 {
  DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),0,DlgProc);
  CloseHandle(hMutex);
  WSACleanup();
  return 0;
 }
 MessageBox(NULL,"이미 실행 중 입니다","ERROR",MB_OK);
 CloseHandle(hMutex);
 WSACleanup();
 return 0;
}
BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
 switch(iMessage)
 {
 case WM_INITDIALOG :  return InitSock(hDlg);
 case WM_COMMAND  :  return DlgCmd(hDlg,wParam);;
 case MWM_SOCK  :  return OnSock(hDlg,(SOCKET)wParam,LOWORD(lParam),HIWORD(lParam)); 
 }
 return FALSE;
}
BOOL InitSock(HWND hDlg)
{
 
 
 return TRUE;
}
BOOL DlgCmd(HWND hDlg,WPARAM wParam)
{
 switch(LOWORD(wParam))
 {
 case IDCANCEL : EndDialog(hDlg,IDD_DIALOG1); break;
 case IDOK  : SendMSG(hDlg);     break;
 }
 return TRUE;
 
}
BOOL OnSock(HWND hDlg,SOCKET sock,WORD msg,WORD eid)
{
 switch(msg)
 {
 case FD_CONNECT : ConnectProc(hDlg,sock); break;
 case FD_WRITE : WriteProc(hDlg,sock); break;
 }
 return TRUE;
}
void SendMSG(HWND hDlg)

 SOCKET sock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
 SOCKADDR_IN clientaddr = {0,};
 clientaddr.sin_addr.s_addr=inet_addr(MY_IP);
 clientaddr.sin_port = htons(USE_PORT);
 clientaddr.sin_family = PF_INET;
 WSAAsyncSelect(sock,hDlg,MWM_SOCK,FD_CONNECT);
 connect(sock,(SOCKADDR*)&clientaddr,sizeof(clientaddr));
}
void ConnectProc(HWND hDlg,SOCKET sock)
{
 WSAAsyncSelect(sock,hDlg,MWM_SOCK,FD_WRITE);
}
void WriteProc(HWND hDlg,SOCKET sock)
{
 char Message[256+1];
 GetDlgItemText(hDlg,IDC_EDIT1,Message,sizeof(Message));
 int MSGlen = strlen(Message);
 send(sock,(char*)&MSGlen,sizeof(int),0);
 send(sock,Message,MSGlen,0);
 SetDlgItemText(hDlg,IDC_EDIT1,"");
}


:
University_Life 2010. 2. 5. 14:50



대학생을 상대로 무료로 개발도구를 준다니까... 아직 신청은 안해봤으니 나머지는 해보고 작성예정

: