C샵 2020. 4. 16. 23:59

C# 데이타 타입 

C#을 포함한 모든 .NET 프로그래밍 언어는 .NET의 Common Type System에 정의된 .NET 데이타 타입을 사용한다. C#은 int, double, string 과 같은 C# 키워드로 데이타 타입을 표현할 수 있으며, 또한 System.Int32, System.Double, System.String 과 같은 .NET 데이타 클래스로 데이타 타입을 표현할 수도 있다. 내부적으로는 C# 컴파일러는 C# 키워드로 된 데이타 타입을 컴파일 후 .NET 데이타 타입으로 변경하게 된다. 

C# 데이타 타입.NET 데이타 타입설명

bool System.Boolean True or False
byte System.Byte 8비트 unsigned integer
sbyte System.SByte 8비트 signed integer
short System.Int16 16비트 signed integer
int System.Int32 32비트 signed integer
long System.Int64 64비트 signed integer
ushort System.UInt16 16비트 unsigned integer
uint System.UInt32 32비트 unsigned integer
ulong System.UInt64 64비트 unsigned integer
float System.Single 32비트 single precision 부동소수점 숫자
double System.Double 64비트 double precision 부동소수점 숫자
decimal System.Decimal 128비트 Decimal
char System.Char 16비트 유니코드 문자
string System.String 유니코드 문자열
System.DateTime 날짜와 시간, 별도의 C# 키워드가 없음
object System.Object 모든 타입의 기본 클래스로 모든 유형을 포함할 수 있음

C# 리터럴 데이타 

C# 코드에서 123, true, "ABC"와 같이 값을 직접 써줄 수 있는데, 이를 리터럴(Literal)이라 한다. C#에서 리터럴 데이타를 사용할 때, 별도의 접미어 표시(Suffix)가 없는 경우 C# 컴파일러는 int, double, char, string, bool 데이타 타입에 기본적으로 그 값을 할당한다. 따라서, 특정 데이타 타입을 지정하고 싶으면, 리터럴 데이타 뒤에 1~2자의 타입 지정 접미어(Suffix)를 추가해야 한다. Suffix는 대소문자 구분이 없다. 즉 decimal을 나타내는 접미어 M은 1024M 이나 1024m처럼 사용가능하다. 아래는 디폴트 리터럴 타입과 각 데이타 타입별 Suffix에 대한 예제이다. 

디폴트 리터럴 타입

123    // int 리터럴 12.3   // double 리터럴 "A"    // string 리터럴 'a'    // char 리터럴 true   // bool 리터럴



C# 리터럴 데이타 타입 Suffix (대소문자 모두 가능) 예제
long L 1024L
uint U 1024U
ulong UL 1024UL
float F 10.24F
double D 10.24D 또는 10.24
decimal M 10.24M

C# 데이타 타입 예제 

예제

// Bool bool b = true; // Numeric short sh = -32768;    int i = 2147483647;   long l = 1234L;      // L suffix float f = 123.45F;   // F suffix double d1 = 123.45;  double d2 = 123.45D; // D suffix decimal d = 123.45M; // M suffix // Char/String char c = 'A'; string s = "Hello"; // DateTime  2011-10-30 12:35 DateTime dt = new DateTime(2011, 10, 30, 12, 35, 0);

  • float 데이타 타입은 숫자 뒤에 123.45F와 같이 F를 붙여 double이 아닌 float 타입임을 나타낸다.
  • double 데이타 타입은 숫자 뒤에 123.45D과 같이 D를 붙이거나 혹은 아무것도 붙이지 않음으로 해서 double 타입임을 나타낸다.
  • decimal 데이타 타입은 숫자 뒤에 123.45M과 같이 M를 붙여 decimal 타입임을 나타낸다.
  • char 데이타 타입은 작은따옴표 ' (single quotation)을 사용하여 한 문자를 할당한다.
  • string 데이타 타입은 큰따옴표 " (double quotation)을 사용하여 문자열을 할당한다.

최대값, 최소값? 

숫자형 데이타 타입의 최대값 혹은 최소값을 알아내기 위해서는 .NET 데이타 타입 클래스들의 MaxValue, MinValue 프로퍼티를 사용한다. C# 데이타 타입 키워드 뒤에서도 이러한 프로퍼티를 직접 호출할 수 있다. 즉, int.MaxValue 혹은 Int32.MaxValue 처럼 사용할 수 있다. 

 




NULL 

어떤 변수가 메모리 상에 어떤 데이타도 가지고 있지 않다는 의미로서 NULL을 사용하는데, NULL을 표현하기 위하여 C# 에서는 소문자 null 이라는 키워드를 사용한다.

모든 데이타 타입이 NULL을 가질 수 있는 것은 아니며, 사실 데이타 타입은 NULL을 가질 수 있는 타입 (Reference 타입)과 가질 수 없는 타입 (Value 타입)으로 구분될 수 있다.

아래는 NULL을 가질 수 있는 문자열(string) 타입의 변수 s 에 null 을 할당하는 예이다. 


 




Nullable Type 

정수(int)나 날짜(DateTime)와 같은 Value Type은 일반적으로 NULL을 가질 수 없다. C# 2.0에서부터 이러한 타입들에 NULL을 가질 수 있게 하였는데, 이를 Nullable Type 이라 부른다.

C#에서 물음표(?)를 int나 DateTime 타입명 뒤에 붙이면 즉, int? 혹은 DateTime? 같이 하면 Nullable Type이 된다. 이는 컴파일하면 .NET의 Nullable<T> 타입으로 변환된다. Nullable Type (예: int?) 을 일반 Value Type (예: int)으로 변경하기 위해서는 Nullable의 .Value 속성을 사용한다.
 

예제

// Nullable 타입 int? i = null; i = 101;              bool? b = null; //int? 를 int로 할당 Nullable<int> j = null; j = 10; int k = j.Value;

'C샵' 카테고리의 다른 글

[C#] C#의 버전 알아보자  (0) 2020.04.16
[C#] C#이란 무엇일까? 기초알아보기 (1)  (0) 2020.04.16
[C#] TXT 불러오기 소스  (0) 2020.04.13
[C#] 네이버 카페 인증소스  (0) 2020.04.13
posted by 핵커 커뮤니티
:
C샵 2020. 4. 16. 20:32

 

C#은 .NET Framework 버전 및 Visual Studio 버전과 밀접한 관련이 있으며, 다음 도표에서 각 버젼별 연관성을 살펴 볼 수 있다.

 

셀 전체 선택

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 2열 선택2열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
  • 5행 선택5행 다음에 행 추가
  • 6행 선택6행 다음에 행 추가
  • 7행 선택7행 다음에 행 추가
  • 8행 선택8행 다음에 행 추가
  • 9행 선택9행 다음에 행 추가
  • 10행 선택10행 다음에 행 추가
  • 11행 선택11행 다음에 행 추가
  • 12행 선택12행 다음에 행 추가
  • 13행 선택13행 다음에 행 추가

열 너비 조절

행 높이 조절

.NET 버전

C# 버전

Visual Studio

.NET 1.0

C# 1.0

Visual Studio .NET

.NET 1.1

C# 1.1

Visual Studio .NET 2003

.NET 2.0

C# 2.0

Visual Studio 2005

.NET 3.0

C# 2.0

Visual Studio 2005 Extensions

.NET 3.5

C# 3.0

Visual Studio 2008

.NET 4.0

C# 4.0

Visual Studio 2010

.NET 4.5

C# 5.0

Visual Studio 2012

Visual Studio 2013

.NET 4.6

C# 6.0

Visual Studio 2015

.NET 4.6.2

C# 7.0

Visual Studio 2017

.NET 4.7

C# 7.1

Visual Studio 2017 Update 15.3

.NET 4.7.1

C# 7.2

Visual Studio 2017 Update 15.5

.NET 4.7.2

C# 7.3

Visual Studio 2017 Update 15.7

.NET Core 3.0

C# 8.0

Visual Studio 2019 Update 16.3 + .NET Core 3.0

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

Visual Studio 2010은 .NET 4.0 뿐만 아니라 .NET 2.0, .NET 3.0, .NET 3.5도 지원한다.

Visual Studio 2008은 .NET 3.5 뿐만 아니라 .NET 2.0, .NET 3.0도 지원한다.

C# 7.1, C# 7.2, C# 7.3은 Minor 버전으로 자동으로 Enable되지 않으며, VS에서 C# 프로젝트 속성창 => Build 탭 => Advanced 버튼 => Language Version 콤보박스에서 해당 버전을 선택해야 한다.

C# 8.0을 사용하기 위해서는 VS 2019를 Update 16.3 이상으로 업데이트하고 .NET Core 3.0 을 설치한 후 사용한다. C# 8.0은 .NET Framework 4.8에서 사용할 수 없다.

 

 


C# 버전별 주요 기능

 

다음은 C# 버전별로 새로 추가된 주요 기능들을 요약한 것이다.

 

셀 전체 선택

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
  • 5행 선택5행 다음에 행 추가
  • 6행 선택6행 다음에 행 추가
  • 7행 선택7행 다음에 행 추가

열 너비 조절

행 높이 조절

C# 버전

주요 기능

C# 2.0

C# Generics

Anonymous Method (무명 메서드)

Nullable Type

Partial Type

C# yield 키워드

Delegate에 대한 Covariance / Contravariance

C# 3.0

Lambda Expression (람다식)

Anonymous Type (익명 타입)

Extension Method (확장 메서드)

C# var 키워드 (implicit type)

LINQ

Expression Tree

C# 4.0

C# dynamic (Late binding)

Named Argument

Optional Argument

Indexed Property

보다 쉬운 Office COM API 지원

C# 5.0

C# async / await

Caller Information

C# 6.0

널 조건 연산자 (Null-conditional operator)

문자열 내삽(內揷) 기능 (String Interpolation)

Dictionary Initializer

nameof 연산자

using static 문

catch/finally 블럭에서 await 사용

Exception Filter 지원

자동 속성 초기자 (Auto-Property Initializer)

읽기전용 자동 속성 (Getter only)

Expression-bodied member 사용

C# 7.0

C# 7.0: 패턴 매칭

C# 7.0: 튜플 (Tuple)

C# 7.0: 로컬 함수 (Local Function)

C# 7.0: out 파라미터

C# 7.0: 자리수 분리자와 이진 리터럴

C# 7.0: Deconstructor

C# 7.0: ref local 과 ref return

C# 7.0: async 커스텀 리턴 타입

C# 7.0: 향상된 Expression-bodied 표현

C# 7.0: throw expression

C# 8.0

C# 8.0: 디폴트 인터페이스 멤버 (Default Inteface Members)

C# 8.0: 향상된 패턴 매칭 기능 (Pattern Matching)

C# 8.0: Nullable Reference Type

C# 8.0: 인덱싱과 슬라이싱 (Indexing / Slicing)

C# 8.0: 비동기 스트림 (Async Stream)

C# 8.0: using 선언

C# 8.0: 널 병합 할당 연산자 (Null-coalescing assignment)

C# 8.0: 구조체(struct) 읽기 전용 멤버

C# 8.0: 기타 기능들

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

 

posted by 핵커 커뮤니티
:
C++ 2020. 4. 15. 09:11

<stdio.h>#include <Windows.h>#include <conio.h> //로컬디스크 D 에 ID 라는 파일을 생성해주세요 (대문자)#include <string.h> //프로젝트 - 속성 - c/c++ - 전처리기 ;_CRT_SECURE_NO_WARNINGS 를 추가#include <stdlib.h>#include <ctype.h>

void menu(int*); //로그인프로그램메뉴void login(char*, char*); //로그인void singup(char*, char*); //회원가입

int main(void){ int cho; //선택화면에서 선택값을 저장하는곳 char loginid[15]; //로그인에서 아이디를 저장하는곳 char loginpassword[15]; //로그인에서 비밀번호를 저장하는곳 char singupid[15]; //회원가입에서 아이디를 저장하는곳 char singuppassword[15]; //회원가입에서 비밀번호를 저장하는곳

menu(&cho);

switch (cho) { case 1: login(loginid, loginpassword); break; case 2: singup(singupid, singuppassword); break; default: printf("잘못입력하셨습니다."); main(); break; }}

void menu(int *cho) //메인화면{ printf_s("제작자 : staff2303@gmail.com \n"); printf_s("==============================================. \n"); printf_s("1.login \n"); printf_s("2.sing up \n"); printf_s("주의! 문자입력시오류! (수정중)\n"); scanf_s("%d", cho); system("cls");

}

void login(char *loginid, char *loginpassword) //로그인화면

{ FILE *rfp; char file[50]; char loginpassword2[15]; int amo; printf_s("login. \n"); printf_s("==========================================. \n"); printf_s("  I  D   : "); scanf_s("%s", loginid, 15); sprintf_s(file, "D:\\ID\\%s.txt", loginid); // 아이디와 똑같은 파일을 오픈 fopen_s(&rfp, file, "r"); // 파일이없어서열수없을경우 rfp에는 NULL이들어온다. 

if (rfp == NULL) { system("cls"); printf_s("아이디가없습니다. \n"); printf_s("==========================================. \n"); system("Pause"); system("cls"); main(); }

printf_s("PASSWORD : "); scanf_s("%s", loginpassword, 15); printf("암 호 키 : "); scanf_s("%d", &amo); FILE* fp = fopen(file, "r");   //파일오픈 fgets(loginpassword2, 15, fp); //메모장에서 password를  password2로 저장 fclose(fp); for (int i = 0; loginpassword2[i] != '\0'; i++) //password 복호화 { if (isalpha(loginpassword[i])) { if (loginpassword2[i] - amo < 'a') { int plus = 'a' + amo - 1 - loginpassword2[i]; loginpassword2[i] = 'z'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } else { if (loginpassword2[i] - amo < '0') { int plus = '0' + amo - 1 - loginpassword2[i]; loginpassword2[i] = '9'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } }

if (strcmp(loginpassword, loginpassword2) == 0) // 입력한 password와 복호화된 password를 비교 { printf_s("\n로그인완료\n"); system("Pause"); system("cls"); exit(1); } else { system("cls"); printf_s("비밀번호 혹은 암호키가 틀립니다.\n"); system("Pause"); system("cls"); main(); }}

void singup(char *singupid, char *singuppassword)

{ FILE *fp; char file[50]; int amo; printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("아이디를입력하시오(15자이내). \n"); scanf_s("%s", singupid, 15); sprintf(file, "D:\\ID\\%s.txt", singupid); // 폴더의 이름과 경로를 file 에 저장 (아이디 = 폴더의 이름) fp = fopen(file, "w+"); fclose(fp); Sleep(1000); system("cls");

printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("비밀번호를입력하세요(영문, 숫자 15자이내).\n"); scanf_s("%s", singuppassword, 15); printf_s("암호키를 입력하세요(1~5) \n"); scanf_s("%d", &amo);

for (int i = 0; singuppassword[i] != '\0'; i++) //password 암호화 { if (isalpha(singuppassword[i])) { if (singuppassword[i] + amo > 'z')

{ int less = singuppassword[i] - 'z';

singuppassword[i] = 'a' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } else { if (singuppassword[i] + amo > '9')

{ int less = singuppassword[i] - '9';

singuppassword[i] = '0' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } } fp = fopen(file, "w+"); fprintf(fp, "%s", singuppassword); fclose(fp); Sleep(1000); system("cls"); //완료창  printf_s("회원가입완료. \n"); printf_s("==========================================. \n"); Sleep(1000); system("cls"); main();}

'C++' 카테고리의 다른 글

[C++] 네이버 RSA 로그인 소스  (0) 2020.04.14
posted by 핵커 커뮤니티
:
VB 2020. 4. 15. 09:08

먼저 폼에 커맨드버튼 1개, 텍스트 박스 1개를 준비한후,

프로젝트▶구성 요소로 들어간다음 잘 찾아보시면

Microsoft Internet controls 가 있습니다. 그것을 체크하신후,

확인을 누르면 도구 탭에 지구(?)가 등록되는 대요,

그걸 클릭하고 폼에 추가 해 줍니다.

커맨드버튼에 무엇을 입력하냐면

Private sub CommandButton1_click()

WebBrowser1.Navigate (Text1)

End sub 가 되겠죠.

그리고 Text1에 주소를 입력하고 커맨드 버튼을 누르면 웹 브라우저에 인터넷이 표시됩니다.

만약 뒤로, 앞으로, 홈으로, 새로고침 을 추가 하고 싶다면,

뒤로는

Private sub CommandButton1_click()

WebBrowser1.GoBack

End sub 이고

앞으로는

Private sub CommandButton1_click()

WebBrowser1.GoForward

End sub 이고

홈으로는

Private sub CommandButton1_click()

WebBrowser1.GoHome

End sub 이고

새로고침은

Private sub CommandButton1_click()

WebBrowser1.Refresh 가 되겠죠.

만약 웹브라우저에서 새로운 창을 추가하면,

Internet Explorer 로 새 창이 나옵니다.

만약 만든 브라우저로 새 창을 열고 싶을때는,

이 코드를 폼에 추가 하면 됩니다.

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Dim frm As Form1

Set frm = New Form1

Set ppDisp = frm.WebBrowser1.Object

frm.Show

End Sud

'VB' 카테고리의 다른 글

[VB] 랜덤숫자을 출력해보자  (0) 2020.04.15
[VB] 다음 로그인 소스  (0) 2020.04.15
[VB] 스마일파일 로그인 소스  (0) 2020.04.15
[VB] 한글판 패치하기  (0) 2020.04.15
posted by 핵커 커뮤니티
:
VB 2020. 4. 15. 09:06

Private Sub Form_Load()

Timer1.Enabled = True

Timer1.Interval = 1

End Sub

Private Sub Timer1_Timer()

Dim Notice As String

Notice = Int(Rnd * 100000) + 1

Form1.Caption = Notice

End Sub

'VB' 카테고리의 다른 글

[VB] 인터넷창 띄우기 (소스)  (0) 2020.04.15
[VB] 다음 로그인 소스  (0) 2020.04.15
[VB] 스마일파일 로그인 소스  (0) 2020.04.15
[VB] 한글판 패치하기  (0) 2020.04.15
posted by 핵커 커뮤니티
:
VB 2020. 4. 15. 09:05

Function DaumLogin(id As String, Pw As String) As Boolean

winhttp.Open "POST", "https://logins.daum.net/accounts/login.do?slogin=2", True

winhttp.SetRequestHeader "Host", "logins.daum.net"

winhttp.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"

winhttp.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"

winhttp.SetRequestHeader "Referer", "https://logins.daum.net/accounts/loginform.do"

winhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"

winhttp.Send "id=" & id & "&pw=" & Pw

winhttp.WaitForResponse

 

If InStr(winhttp.ResponseText, "Daum 로그인 오류") = 0 Then

 

Login = True

Else

Login = False

 

End If

 

End Function

'VB' 카테고리의 다른 글

[VB] 인터넷창 띄우기 (소스)  (0) 2020.04.15
[VB] 랜덤숫자을 출력해보자  (0) 2020.04.15
[VB] 스마일파일 로그인 소스  (0) 2020.04.15
[VB] 한글판 패치하기  (0) 2020.04.15
posted by 핵커 커뮤니티
:
SQL 2020. 4. 14. 19:28

JOIN 의 개념

서로 다른 테이블을 공통 컬럼을 기준으로 합치는(결합하는) 테이블 단위 연산

조인의 결과 테이블은 이전 테이블의 컬럼 수의 합과 같다.

SELECT * FROM 테이블 1 JOIN 테이블 2 ON 테이블1.컬럼명 = 테이블2.컬럼명 ...

조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 사용해서 표시

 

예제

- city 테이블과 country 테이블을 조인하시오. (city.CountryCode = country.Code)

- 국가코드와 해당 나라의 GNP 를 표시하시오

 

결과 확인

- SELECT * FROM city JOIN country ON city.CountryCode = country.Code;

- SELECT city.CountryCode, country.GNP FROM city join country ON

city.CountryCode = country.Code;

 

 

 

 

 

 

JOIN 의 종류

조인 시 NULL 값을 허용하는 내부 조인(불가)과 외부조인(허용)으로 구분

INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL JOIN

 

INNER JOIN

조인 시 NULL 값을 허용하지 않음

(NULL 값을 가진 레코드는 조인결과에 빠짐)

LEFT JOIN

조인 시 JOIN 의 왼쪽 테이블의 NULL 값을 포함해서 표시

RIGHT JOIN

조인 시 JOIN 의 오른쪽 테이블의 NULL 값을 포함해서 표시

FULL JOIN

MySQL 은 지원하지 않음

 

 

예제

- city 테이블에 국가코드가 없는 도시가 있는지 확인

- country 테이블에는 존재하지만 도시가 하나도 없는 나라가 있는지 확인

- 이 때 INNER JOIN / LEFT JOIN / RIGHT JOIN 의 차이점으로 확인

 

결과 확인

- SELECT COUNT(*) FROM city WHERE CountryCode is NULL;

- SELECT COUNT(*) FROM city LEFT JOIN country ON city.CountryCode = country.Code;

(country 값이 존재하지 않는 city 는 포함)

- SELECT COUNT(*) FROM city RIGHT JOIN country ON city.CountryCode = country.Code;

(country 중 도시 수가 하나도 없는 country 는 포함)

 

 

 

 

 

 

별명(ALIAS)

SQL 쿼리 결과 생성 시 컬럼명에 대한 별명을 사용해 표시하는 기능

SELECT 테이블명1.컬럼명1 AS 별명1, 테이블명2.컬럼명2 AS 별명2 FROM ....

조인할 때 많이 사용된다

 

예제

- city 테이블과 country 테이블을 조인해서 국가코드 'KOR' 인 나라의 축약표시명(Abbr) 과 정식명(Full Name)을 표시하시오

 

결과 확인

- SELECT city.CoutryCode AS Abbr, country.Name AS FullName FROM city JOIN country on city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';

 

 

 

 

뷰 (VIEW)

SQL 쿼리의 결과값을 임시 테이블로 저장해서 사용할 수 있음

사용 용도가 끝나면 명시적으로 삭제해야 함 (DROP VIEW ....)

CREATE VIEW 뷰명 AS SELECT ...

 

예제

CREATE VIEW sampleView AS SELECT city.CountryCode AS Abbr, country.Name AS FullName FROM city JOIN country ON city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';

SELECT * FROM sampleView;

posted by 핵커 커뮤니티
:
SQL 2020. 4. 14. 19:18

DISTINCT 연산자

SELECT 문의 결과 값에서 특정 컬럼만 출력할 경우 중복된 값들이 나오는 경우에 이를 제거해서 표시하는 기능

SELECT DISTINCT 컬럼명 1, 컬럼명 2, ... FROM 테이블명

 

예제

- 국가코드가 'KOR' 인 도시들의 국가코드를 표시하시오.

- 국가코드가 'KOR' 인 도시들의 국가코드를 중복제거해서 표시하시오.

 

결과 확인

- SELECT CountryCode FROM city WHERE CountryCode = 'KOR';

- SELECT DISTINCT CountryCode FROM city WHERE CountryCode = 'KOR';

 

 

 

 

논리연산자 (AND, OR, NOT)

SELECT 문의 조건절에 논리 조건 적용해서 적용할 수 있는 연산자

SELECT * FROM 테이블명 WHERE (NOT) 조건 1 AND/OR (NOT) 조건 2 ..... 

 

예제

- 국가코드가 'KOR' 이면서 인구가 100만 이상인 도시를 찾으시오

- 국가코드가 'KOR', 'CNN', 'JPN' 인 도시를 찾으시오

- 국가코드가 'KOR' 이 아니면서 인구가 100만 이상인 도시를 찾으시오.

 

 

 

결과 확인

- SELECT * FROM city WHERE CountryCode = 'KOR' AND Population > 1000000

- SELECT * FROM city WHERE CountryCode = 'KOR' OR CountryCode = 'CNN' OR CountryCode = 'JPN'

- (위와 같은 코드) SELECT * FROM city WHERE CountryCode in ('KOR', 'CNN', 'JPN')

 

- SELECT * FROM city WHERE CountryCOde != 'KOR' AND Population > 1000000

posted by 핵커 커뮤니티
: