사원(EMP)테이블과 급여등급(SALGRADE)테이블을 이용하여 아래와 같은 결과를 포함하는

EMP_GRADE 테이블을 생성하시오.

사용자 삽입 이미지
          ....
         14개 행이 선택되었습니다.

위와 같은 결과를 보여주는 EMP_GRADE 테이블을 SELECT문을 이용해서 생성하려면

생성방법
CREATE TABLE EMP_GRADE
AS
SELECT문

사용자 삽입 이미지

위와 같이 EMP테이블과 SALGRADE간의 NONEQUL JOIN을 이용해서 결과값이
나오는지 확인한 후 위의 생성방법의 형식에 따라서 구해주면 된다.

'컴퓨터 관련 무료강좌 > 오라클(ORACLE)' 카테고리의 다른 글

ORACLE-FUNCTION  (0) 2008.04.28
ORACLE-SP사용하기1  (0) 2008.04.28
ORACLE-서브쿼리사용하기  (0) 2008.04.22
ORACLE-SQLPLUS사용하기2  (0) 2008.04.22
ORACLE-SQLPLUS사용하기  (1) 2008.04.19
Posted by 원철연(체르니)
,

조인(JOIN)

하나 이상의 테이블을 연결하여 데이터를 검색하는 방법

 

형식

SELECT 테이블1.칼럼1, 테이블1.칼럼2, …, [테이블2.칼럼1, 테이블2.칼럼2, …]

FROM 테이블1, 테이블2

WHERE 테이블1.공통칼럼=테이블2.공통칼럼 ;

 

1. Equi-JOIN(동등 조인) or INNER JOIN(내부 조인)

일반적으로 JOIN하면 INNER JOIN을 지칭할 정도로 많이 사용한다.

 

예제) 급여가 2000 이상인 사원에 대해 사원 번호, 사원이름, 업무, 부서명, 위치를 검색

SELECT a.EMPNO, a.ENAME, a.JOB, a.SAL, b.DNAME, b.LOC

FROM EMP a, DEPT b

WHERE a.DEPTNO=b.DEPTNO AND a.SAL>=2000;

 

SELECT a.EMPNO, a.ENAME, a.JOB, a.SAL, b.DNAME, b.LOC

FROM EMP a INNER JOIN DEPT b

ON a.DEPTNO=b.DEPTNO AND a.SAL>=2000;

결과

사용자 삽입 이미지

2. Non-Equi JOIN(비동등 조인)
테이블의 어떤 칼럼도 조인할 테이블의 칼럼과 일치하지 않을 때 사용.

따라서 조인 조건 대신 BETWEEN  AND, IS NULL, IS NOT NULL, IN, NOT IN

같은 연산자를 사용

 

예제) 사원 테이블(EMP) 내의 급여가 급여등급테이블(SALGRADE)의 하한값과 상한값 사이에 포함되는 경우 사원번호, 사원이름, 사원급여, 사원등급이 표시되도록 하시오.

SELECT a.EMPNO 사원번호, a.ENAME 사원이름, a.SAL 사원급여,
b.GRADE
사원등급

FROM EMP a, SALGRADE b

WHERE a.SAL BETWEEN b.LOSAL AND b.HISAL ;

 

결과

사용자 삽입 이미지

3. SELF JOIN(자기 조인)

일반적인 조인은 서로 다른 테이블을 이용하여 처리하였으나 SELF JOIN은 자기 자신의 테이블을 별칭을 이용해서 조인하여 원하는 결과값을 검색하는 조인의 한 유형이다.

 

예제) 사원번호, 사원이름, 관리자이름, 관리자번호가 나타나도록 검색하시오.

SELECT a.EMPNO 사원번호, a.ENAME 사원이름, b.ENAME 관리자이름,

b.EMPNO 관리자번호

FROM EMP a, EMP b

WHERE a.MGR=b.EMPNO;

 

결과

 

사용자 삽입 이미지

4. OUTER JOIN(외부 조인)

동등조인과 비동등 조인의 경우에 조인 조건이 만족하는 데이터만 검색이 되므로

위의 검색결과를 참고하면 알 수 있듯이 DEPT 테이블에 있는 DEPTNO=40에 해당하는

OPERATIONS 부서는 절대로 검색되지 않는다.

따라서 이러한 문제를 해결하기 위해서 OUTER JOIN을 사용한다.


유형

LEFT OUT JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있는데 FULL OUTER JOIN LEFT, RIGHT JOIN을 합한 형태이다.

(+) 기호를 사용하기도 하는데 (+) 기호는 일치되지 않는 행이 존재하지 않은 쪽에 붙인다.

 

SELECT a.EMPNO, a.ENAME, b.DNAME

FROM EMP a, DEPT b

WHERE a.DEPTNO (+)= b.DEPTNO;

 

SELECT a.EMPNO, a.ENAME, b.DNAME

FROM EMP a RIGHT OUTER JOIN  DEPT b

ON a.DEPTNO = b.DEPTNO;

 

결과

사용자 삽입 이미지

참고로 FULL OUTER JOIN (+)기호를 사용해서 구할 수 없고 FULL OUTER JOIN 형식으로만 가능하다.

SELECT a.EMPNO, a.ENAME, b.DNAME

FROM EMP a, DEPT b

WHERE a.DEPTNO(+)= b.DEPTNO(+); -> 에러 발생

 

SELECT a.EMPNO, a.ENAME, b.DNAME

FROM EMP a FULL OUTER JOIN  DEPT b

ON a.DEPTNO = b.DEPTNO;

 

5. Cartesian Product(카티션 곱) or Cross JOIN(크로스 조인)

 

쿼리문

SELECT EMPNO, ENAME, DNAME

FROM DEPT

CROSS JOIN EMP;

 

결과

사용자 삽입 이미지

6. Natural JOIN(자연 조인)

자연 조인은 Equi-JOIN과 동일하지만 기술하는 방법이 조금 다른데,

JOIN 조건을 표시하지 않고 FROM 뒤의 테이블 내에서 동일한 이름을

갖는 칼럼들을 찾아서 동등한 조건으로 JOIN해줌.


쿼리문

SELECT EMPNO, ENAME, DNAME

FROM DEPT

NATURAL JOIN EMP;

 

결과

 

사용자 삽입 이미지

이상으로 JOIN(조인)에 대해서 간략히 알아보았습니다.
그럼 이만..

Posted by 원철연(체르니)
,

General Declarations에 추가
Imports System

Imports System.IO

 

값 얻기 위한 코드

For Each drive_info As DriveInfo In DriveInfo.GetDrives()

            Console.Write(drive_info.Name & "   ")

            Console.WriteLine(drive_info.DriveType().ToString)

Next drive_info

결과 확인

사용자 삽입 이미지

결과 관련 참조

 

결과값

설명

Unknown

드라이브 타입은 모름

NoRootDirectory

루트 디렉토리를 갖고 있지 않은 드라이브

Removable

USB 플레쉬 드라이브나 플로피 디스크처럼착탈이 가능

Fixed

하드 디스크처럼 고정형 디스크

Network

네트웍 드라이브임

CDROM

CD롬이나 DVD롬처럼 광학 디스크 장치

Ram

램디스크


즐공들 하시길...
Posted by 원철연(체르니)
,

NET Framework Library에 있는 StreamReader Class를 이용했음.

 

StreamReader Class

 

StreamReader 클래스를 이용하기 위해서는 코드 맨 상단에 Imports System.IO
추가해 준다
.

폼디자인

사용자 삽입 이미지

 

코딩하기


Imports
System.IO

Public Class Form1

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button1.Click

 

        Dim StreamToDisplay As StreamReader

 

        '읽을 txt 파일을 할당

        StreamToDisplay = New StreamReader("E:\test.txt")

 

        '파일 끝까지 읽어서 그 데이터를 txtRead.Text에 입력하라

        txtRead.Text = StreamToDisplay.ReadToEnd

 

        'StreamReader 객체를 닫고 관련 리소스를 release하라.

        StreamToDisplay.Close()

 

 

    End Sub

End Class

test.txt
파일의 내용은 RFC5090의 첫머리를 저장한 것이다.

Network Working Group                                   B. Sterman

Request for Comments: 5090                               Kayote Networks

Obsoletes: 4590                                            D. Sadolevsky

Category: Standards Track                                 SecureOL, Inc.

                                                             D. Schwartz

                                                         Kayote Networks

                                                             D. Williams

                                                           Cisco Systems

                                                                 W. Beck

                                                     Deutsche Telekom AG

                                                           February 2008

 

 

               RADIUS Extension for Digest Authentication

 

Status of This Memo

 

   This document specifies an Internet standards track protocol for the

   Internet community, and requests discussion and suggestions for

   improvements.  Please refer to the current edition of the "Internet

   Official Protocol Standards" (STD 1) for the standardization state

   and status of this protocol.  Distribution of this memo is unlimited.

 

 Abstract

 

   This document defines an extension to the Remote Authentication

   Dial-In User Service (RADIUS) protocol to enable support of Digest

   Authentication, for use with HTTP-style protocols like the Session

   Initiation Protocol (SIP) and HTTP.

실행하기

사용자 삽입 이미지

이상으로 StreamReader 클래스를 이용해서 간단하게 txt파일을 읽어오는 법을 알아보았다.

Posted by 원철연(체르니)
,

SQL*PLUS, iSQLPLUS, SQLGATE, ORANGE 같은 프로그램을 이용해서
SCOTT 계정으로 접속하면

SQL>_ 상태 혹은 쿼리문을 입력할 수 있는 상태가 된다.
 이 상태에서 SQL>SELECT * FROM TAB; 을 입력하고 실행시키면
아래와 같은 테이블들을 볼 수 있다.

사용자 삽입 이미지

오늘은 여기서 EMP 테이블을 가지고 쿼리문을 익혀보고자 한다.
물론 문제들은 MSSQL2005를 2틀 동안 배우다가 갑작스럽게 오라클로 변경한
K 모학원에서 오늘 연습문제로 내준 것임을 밝혀둔다.
사실 오라클에 관심이 많아서 내심 기다렸는데 잘된 일이라고 개인적으로 생각한다.

자 그럼  EMP테이블에 들어있는 모든 데이터를 보자.

[참고] SELECT 문의 기본형 
          SELECT 칼럼명 FROM 테이블;

          SELECT 문의 확장
          SELECT 칼럼명 FROM 테이블 조건절(WHERE)

         
물론 공부하다보면 SELECT문을 써서도 데이터를 저장할 수 있다.
 그것은 개인적으로 찾아보는 것도 실력향상에 도움이 될 듯..

자. 다시 돌아와서 SELECT * FROM EMP를 하면 알 수 있다.
사용자 삽입 이미지

예제들을 풀어보자.

EMP 테이블에서 급여가 3000이상인 사원의 정보를 사원번호, 이름, 담당업무, 급여를 출력하시오.
SELECT EMPNO 사원번호, ENAME 이름, JOB 담당업무, SAL 급여
FROM EMP WHERE SAL >=3000;

사용자 삽입 이미지

EMP 테이블에서 사원번호가 7788인 사원의 이름과 부서번호를 출력하는 SELECT 문장을
작성하시오.

SELECT ENAME, DEPTNO FROM EMP WHERE EMPNO='7788';

사용자 삽입 이미지

테이블에서 입사일이 February 20,1981과 May 1, 1981 사이에 입사한 사원의 이름, 업무, 입사일을 출력하는 SELECT 문은? 단, 입사일 순으로 출력하시요.
SELECT ENAME, JOB, HIREDATE FROM EMP
WHERE HIREDATE BETWEEN '1981/02/20' AND '1981/05/01';
사용자 삽입 이미지

EMP 테이블에서 부서번호가 10, 20인 사원의 정보를 출력하시오. 단, 이름순으로
정렬하시오.

SELECT * FROM EMP WHERE DEPTNO=10 OR DEPTNO=20;
SELECT * FROM EMP WHERE DEPTNO IN(10,20);
사용자 삽입 이미지

EMP 테이블에서 급여가 1500이상이고 부서번호가 10,30인 사원의 이름과 급여를 출력하되
표시를 Employee와 Monthly Salary로 표시되게 하시오.

SELECT ENAME AS Employee, SAL As "Monthly Salary" FROM EMP
WHERE SAL>=1500 AND (DEPTNO=10 OR DEPTNO=30);

사용자 삽입 이미지

EMP 테이블에서 1982년에 입사한 사원의 모든 정보를 출력하도록 하세요.
SELECT * FROM EMP WHERE HIREDATE BETWEEN '1982/01/01' AND '1982/12/31';

사용자 삽입 이미지


EMP 테이블에서 COMM이 NULL이 아닌 사원의 모든 정보를 출력하세요.
SELECT * FROM EMP WHERE COMM IS NOT NULL;
사용자 삽입 이미지

EMP 테이블에서 보너스가 급여보다 10%가 많은 모든 종업원에
대해서 이름, 급여, 보너스를 출력하도록 하세요.

SELECT ENAME AS 이름, SAL AS 급여, COMM AS 보너스 FROM EMP
WHERE COMM > (SAL*1.1) ;
사용자 삽입 이미지

EMP 테이블에서 업무가 CLERK 이거나 ANALYST이고 급여가 1000,3000,5000이 아닌 모든 사원으리 정보를 출력하시오.
SELECT * FROM EMP WHERE (JOB='CLERK' OR JOB='ANALYST') AND SAL NOT IN (1000,3000,5000);
사용자 삽입 이미지

EMP 테이블에서 이름에 L 자가 2 자가 있고 부서가 30이거나 또는 관리자가 7782인
사원의 모든 정보를 출력하시오.

SELECT * FROM EMP WHERE ENAME LIKE '%L%L%' AND (DEPTNO=30 OR MGR='7782');
사용자 삽입 이미지

정리하자면 조건절에서 LIKE, %, IN  등을 이용하여 SELECT 쿼리문을 알아보았다.
추가적으로 ENAME이 A로 시작하는 것만 검색할 경우에는
조건절에 WHERE ENAME LIKE 'A' 으로 하면 A로 시작하는 이름을 검색할 수 있다.
또한 이름이 총 5자이며 A로 시작하는 이름이 있는지 알고자 할 경우에는
WHERE ENAME LIKE 'A____' 이런식으로 _(언더바) 4개를 지정해주고 실행하면 검색이 가능하다.

그럼 즐 공부들 하시길..

'컴퓨터 관련 무료강좌 > 오라클(ORACLE)' 카테고리의 다른 글

ORACLE-SQLPLUS사용하기  (1) 2008.04.19
ORACLE-JOIN 알아보기  (4) 2008.04.19
ORACLE-To_CHAR, CASE 배우기  (0) 2008.04.18
ORACLE-여러가지 함수들  (0) 2008.04.17
ORACLE-웹접속하기  (0) 2008.04.16
Posted by 원철연(체르니)
,

프로그램을 작성하다 보면 반복해서 처리해 줘야하는 경우가 종종 있다. 예를 들면 적게는 수십명에서 많게는 수 만명의 사람에게 SMS 문자메시지나 이메일을 보내줘야 하는 경우같이 반복되는 작업을 처리해야 할 때 사용하면 좋은 반복문에 대해서 알아보기로 하자.

1. For ~ Next
For문과 Next문 사이의 코드를 조건에 따라서 반복 처리한다.

1.1  형식

For 변수 = 초기치 To 최종치 [Step 증감값]


실행코드들

[Exit For]

Next [변수]

 

è  Step문이 생략된 경우에는 증감값은 1 된다.

 

1.2  예제

이중 For ~ Next문을 사용하여 “0123456789” 10번 출력되도록 함.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

        Dim number, count As Integer

        Dim thisString As String = ""

 

        For number = 10 To 1 Step -1

            For count = 0 To 9

                thisString &= CStr(count)

            Next count

            thisString &= " "

            MsgBox("현재 number 값은 :" & CStr(number) & "현재
                    thisString
값은 :" & thisString & "이다")

 

        Next number

 

        MsgBox("For Next문을 수행한 최종 결과는 : " & thisString &
                "
이다.")

 

End Sub


[참고] For … Each문은 배열에 대해서 할 때 글을 올리도록 하겠습니다.

2. Do While Loop

For 반복문은 루핑 수행시 회수에 의존하므로 일반적인 조건들을 반영하기가 조금은 불편하다. 이럴 경우 어떤 조건이든 사용이 가능한 Do While문을 알아보자.

부연하자면 Do While문은 조건이 참인 동안(거짓일 될 때까지) 일정한 블록 내의 코드를 반복 처리한다.

2.1 형식

Do While 조건식


실행코드들


Loop

 

2.2 예제

TextBox1에 입력한 숫자로 합계가 10미만이 될때까지 반복하는 예제

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

 

'CInt()함수는 문자를 숫자로 변환해주는 함수

 

        Dim sum As Integer = 0

        Dim counter As Integer = 0

        Do While sum < 10

            sum = sum + CInt(TextBox1.Text)

            counter = counter + 1

            MsgBox("반복수는 : " & CStr(counter) & "현재 sum 값은 : "
                   & CStr(sum) & "
이다")

        Loop

        MsgBox(" 반복수는 :  " & CStr(counter) & " 번이다!")

 

End Sub

 

 

3. Do Loop While

이 반복문은 Do While Loop문과 동일하지만 다른 점은 루프 내의 문장이 최소한 한 번은 수행된다는 점이다.


4. Do Until Loop

Do Until문은 Do While문과는 달리 지정된 조건이 참이 될 때까지 루프 내의 코드들을 실행한다.

4.1 형식

Do Until 조건식


실행코드들


Loop

 

4.2 예제

 

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

 

        'TextBox1 입력한 숫자로 sum<10 일때까지 반복한다.

        'CInt()함수는 문자를 숫자로 변환해주는 함수

 

        Dim sum As Integer = 0

        Dim counter As Integer = 0

 

        If TextBox1.Text <> "" Then

            Do Until sum = 10

                sum = sum + CInt(TextBox1.Text)

                counter = counter + 1

                MsgBox("반복수는 : " & CStr(counter) & "현재 sum
                          값은 : " & CStr(sum) & "이다")

 

                'sum 값이 10보다 경우 Do Until ... Lop 탈출

                If sum > 10 Then

                    Exit Do

                End If

            Loop

            MsgBox(" 반복수는 :  " & CStr(counter) & " 번이다!")

 

        Else

            MsgBox("숫자를 입력해주세요.")

        End If

End Sub

 

5. Do Loop  Until

이 반복문은 Do Until .. Loop문과 동일하지만 다른 점은 루프 내의 문장이 최소한 한 번은 수행된다는 점이다.


예제 결과

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

실제로 폼디자인한 후  코드 입력하여 테스트를 해보시고 바꿔보시고 하시면 쉽게
익히실 수 있을 겁니다.
Posted by 원철연(체르니)
,

Select
Select
문은 하나의 식을 검사하여 여러 개의 실행 블록 중 하나를 선택하여 분기한다.

1.1 형식

Select Case 비교대상

Case 비교값 1

  처리코드 1

Case 비교값 2

  처리코드 2

Case Else

  처리코드

           End Select



1.2 예제

Select Case Val(TextBox1.Text)

 

                Case 91 To 100

                    MsgBox("아주 영어를 잘하는군요..")

                Case 81 To 90

                    MsgBox("영어를 잘하는군요..")

                Case 71 To 80

                    MsgBox("영어가 조금 부족합니다..")

                Case 61 To 70

                    MsgBox("영어가 많이 부족하군요..")

                Case Else

                    MsgBox("영어를 너무 못하는군요..")

 

      End Select

이번에는 실제 예제를 볼까요?

사용자 삽입 이미지
                                                 폼 디자인

사용자 삽입 이미지
                                       값이 입력되지 않았을 때

사용자 삽입 이미지
                                  숫자가 아닌 값이 입력되었을 때


사용된 함수 및 기능
Public Function IsNumeric(ByVal Expression As Object) As Boolean

Expression이 숫자형이면 참(True)을 숫자형이 아니면 거짓(False)을 나타낸다.

 

TextBox.Focus
텍스트박스의 입력창에 입력이 가능하도록 포인터를 위치시킨다.


If
문 테스트 클릭시 코딩된 부분
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

        'TextBox1 값이 입력되어 있지 않으면 표시해주는 부분

        If TextBox1.Text = "" Then

            MsgBox("TextBox 값이 입력되지 않았습니다. 값을 입력해주세요.", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)

            TextBox1.Focus()

 

            '입력된 값이 숫자형인지 파악해서 숫자입력 요청

        ElseIf IsNumeric(TextBox1.Text) = False Then

            MsgBox("TextBox 0~100 사이의 정수값을 입력해주세요.")

            TextBox1.Text = ""

            TextBox1.Focus()

 

            'TextBox1 0 ~ 100 사이의 값을 입력 요청 조건문

        ElseIf Val(TextBox1.Text) < 0 Or Val(TextBox1.Text) > 100 Then

            MsgBox("0에서 100 사이의 정수값을 입력해주세요.")

            TextBox1.Text = ""

            TextBox1.Focus()

 

        ElseIf Val(TextBox1.Text) < 90 Then

            MsgBox("당신은 공부를 열심히 해야겠군요.!!")

        End If

 

End Sub


Select
문 테스트 클릭시 코딩된 부분
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

 

        'TextBox1 값이 입력되어 있지 않으면 표시해주는 부분

        If TextBox1.Text = "" Then

            MsgBox("TextBox 값이 입력되지 않았습니다. 값을 입력해주세요.", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)

            TextBox1.Focus()

 

            '입력된 값이 숫자형인지 파악해서 숫자입력 요청

        ElseIf IsNumeric(TextBox1.Text) = False Then

            MsgBox("TextBox 0~100 사이의 정수값을 입력해주세요.")

            TextBox1.Text = ""

            TextBox1.Focus()

 

            'TextBox1 0 ~ 100 사이의 값을 입력 요청 조건문

        ElseIf Val(TextBox1.Text) < 0 Or Val(TextBox1.Text) > 100 Then

            MsgBox("0에서 100 사이의 정수값을 입력해주세요.")

            TextBox1.Text = ""

            TextBox1.Focus()

        End If

 

 

        If TextBox1.Text <> "" Then

            Select Case Val(TextBox1.Text)

 

                Case 91 To 100

                    MsgBox("아주 영어를 잘하는군요..")

                Case 81 To 90

                    MsgBox("영어를 잘하는군요..")

                Case 71 To 80

                    MsgBox("영어가 조금 부족합니다..")

                Case 61 To 70

                    MsgBox("영어가 많이 부족하군요..")

                Case Else

                    MsgBox("영어를 너무 못하는군요. ")

 

            End Select

        End If

 

End Sub

Posted by 원철연(체르니)
,

If 조건문
If
조건문은 프로그램을 짜다보면 너무도 자주 접하게 되는 프로그램의 흐름을 결정하는 중요한 부분으로 잘 알아두면 좋을 것입니다.

1. 단일 If


1.1 형식
           If
조건 Then 실행문
           End If

1.2 예제
          
영어점수가 70점 미만일 때는 합격 취소하는 경우

Dim English As Integer
           If English < 70 Then
             Passed = False
           End If

 


2. 이중 선택 If
조건을 테스트한 결과가 참인지 혹은 거짓인지에 따라 서로 다른 문장 블록을 선택적으로 실행해야 하는 경우가 있는데 이때 다음과 같이 Else 문을 추가하여 프로그래밍한다.

2.1 형식

        If 조건 Then

             참인 경우 실행할 코드

        Else      

          거짓인 경우 실행할 코드

        End If

2.2 예제

          
영어 점수가 70점 이상이면 합격이고 그 미만일 경우에는 불합격 메시지를 표시
           Dim English As Integer
           If English >=70 Then

MsgBox(“합격하셨습니다.”)
           Else

MsgBox(“불합격하셨습니다.”)
End If


3. 다중 조건 If

검사할 조건이 여러 개인 경우 ElseIf문을 사용한다.

 

3.1 형식

           If 조건 1 Then
            
실행코드
1
           ElseIf
조건
2 Then
            
실행코드 2

           Else

             실행코드 3

           End If

 

3.2 예제

하나의 숫자를 가지고 비교하여 각각에 다른 메시지 보여주기
Dim number As Integer
number = 155


           If number < 100 Then
  MsgBox(“100
보다 작군요”)

ElseIf number < 200 Then

          MsgBox(“200보다 작군요”)

           Else

             MsgBox(“200보다 크군요”)

           End If


단순히 이해를 쉽게 하기 위해서 되도록 간단한 예제를 들었습니다. 실제 프로그래밍을 하다보면 이와 같이 간단한 경우도 있지만 복잡한 구조를 만나게 되는데 무엇보다 중요한 것을 기본에 충실해야겠죠.
실제 예제를 직접 입력해 보시면서 감각을 익히시길 바랍니다
.
그럼 If 조건문에 대해서는 이 정도에서 마칩니다.

Posted by 원철연(체르니)
,

연산자(Operator)


산술 연산자

산술 연산자는 덧셈, 뺄셈, 곱셈 등과 같이 대수연산기능을 제공한다.



연산자

기능

사용 예제
x=5, y=3

+

더하기

Z=x+y   z 8

-

빼기

Z=x-y    z2

*

곱하기

Z=x*y    z 15

/

나누기

Z=x/y    z 1.66666

몫 구하기

Z=xy   z 1

^

지수 연산

Z=x^y   z125

Mod

나머지 구하기

Z=x Mod y  z 2



결합 연산자(&)

문자열을 결합하는데 사용한다.


Dim str As string

str = “I love” & “You!”

 

비교 연산자

크기 비교를 수행하며 결과값은 True, False이다.

연산자

기능

=

 같다

> 

크다

< 

 작다

>=

 크거나 같다

<=

 작거나 같다

<> 

 다르다


논리 연산자

주로 좌, 우 논리값을 비교하여 최종 논리 결과(True, False)를 얻어내는데 사용한다.

 

논리 연산자

기능

Not

논리부정

And

논리곱(두 값 모두 참일 때 참)

Or

논리합(두 값 중 하나만 참이어도 참)

Eqv

동치(두 값이 서로 같을때만 참)

Xor

베타 논리합(두 값이 서로 다를 때만 참)


프로그램을 짜다보면서 기본의 중요성을 많이 느낍니다.
단순해 보일지 모르지만 처음 프로그래밍 세계에 접하시는 분들이라면
하나 하나씩 익혀두시는 것이 실제로 프로그램을 짤때 어떻게 사용하는지 몰라
당황하는 것보다 나을 것이라고 생각합니다.

그럼 연산자에 관한 내용은 이 정도로 마칩니다.
Posted by 원철연(체르니)
,

적용하려는 데이터형이 일정치 않을 때 보통 예전에는 Variant형을 썼지만
메모리 낭비가 발생하게 되는 단점이 있다.

이러한 메모리 낭비를 줄이기 위해서는 코딩시 정확한 자료형을 사용하면 된다.

그래서 이번에는 Visual Basic 2008에서 사용되는 자료형을 알아보자.

Visual Basic 2008에서 사용되는 자료형

Short, UShort, Integer, UInteger, Long, ULong, Single, Double, Decimal, Byte, SByte, Char, String, Boolean, Date, Object, 사용자 정의 자료형

예전에 VB를 짜보거나 다른 프로그래밍 언어를 사용해 본적이 있다면 쉽게 이해할 수 있는 자료형이라고 생각됩니다.


[참고] Variant
예전 버전에서는 변수선언시 데이터 유형을 지정하지 않으면 Variant형으로 자동 지정되었으나 Visual Basic 2008부터는 Variant형이 지원되지 않는다. 그 대신 object형이 등장함.

여기서는 기본자료형 설명은 제외하고 사용자 정의 자료형을 알아봅니다.

예를 들어, C 언어를 사용해 보신 분들이라면 아시겠지만. 구조체와 비슷한 형태로 만들어서 사용하는 법을 보도록 하겠습니다.

폼 클래스 밑에 아래와 같이 입력합니다.
Structure student

        Dim Name As String

        Dim Number As String

        Dim English As UShort

        Dim History As UShort
End Structure
물론 향후 공부하게 되면 자신만의 모듈을 만들어서 그곳에 넣어놓고 불러서 사용할 수 있습니다.

[예제] 사용자 정의 데이터형

Public Class Form1

'사용자 자료형

    Structure student

        Dim Name As String

        Dim Number As String

        Dim English As UShort

        Dim History As UShort

    End Structure

 

 

    Private Sub Button1_Click(ByVal sender As System.Object,
         ByVal e As System.EventArgs) Handles Button1.Click

       'OurStudent
사용자정의 자료형인 student 선언

        Dim OurStudent As student

       '변수에 할당

        OurStudent.Name = "홍길동"

        OurStudent.Number = "2002975"

        OurStudent.English = 98

        OurStudent.History = 78

 

        MsgBox("학생의 이름, 학번, 영어점수, 국사점수는 각각 " _ 
        &  OurStudent.Name & "," & OurStudent.Number & _

        "," & CStr(OurStudent.English) & "," & _
        CStr(OurStudent.History) & "
입니다.", , _
        "
사용자정의 데이터  예제")

 

    End Sub

End Class

[참고] Cstr() 함수
문자열 자료형으로 변환해주는 함수. 위의 경우에는 English, History가 UShort형이므로
이를 문자열로 바꿔주었음.


실행 화면
(버튼 하나만 배치하였음)


사용자 삽입 이미지

사용자 정의 데이터 테스트 버튼을 눌렀을 때

사용자 삽입 이미지

이상으로 사용자 정의 자료형에 대해서 알아봤습니다. 쉽지요?
그럼 다음 강좌를 기대해 주세요.

'컴퓨터 관련 무료강좌 > 비주엘 베이직 2008' 카테고리의 다른 글

VB2008 강좌-If 조건문  (0) 2008.03.24
VB2008 강좌- 연산자  (0) 2008.03.23
VB2008 강좌-InputBox사용하기  (0) 2008.03.21
강좌-변수 관련 1  (1) 2008.03.20
강좌-MsgBox 다루기  (4) 2008.03.19
Posted by 원철연(체르니)
,