728x90

📘 개념 요약

LINQ는 C# 컬렉션을 SQL처럼 다루는 문법으로, 데이터를 필터링하고 가공하는 강력한 도구입니다. 리스트, 배열, DB, XML, JSON 등 다양한 소스에 적용할 수 있습니다.


🧠 용어 설명

용어 설명
Where() 조건에 맞는 요소 필터링
Select() 변환 및 항목 추출
OrderBy() 정렬
GroupBy() 그룹화
Join() 두 컬렉션 연결 (조인)
 

💻 코드 예제

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

        // 짝수 필터링
        var evens = numbers.Where(n => n % 2 == 0);

        Console.WriteLine("짝수 목록:");
        foreach (var n in evens)
            Console.WriteLine(n);
    }
}

🔧 사용법 정리

  • 람다식 (n => 조건): 간결하게 필터링
  • IEnumerable<T>: LINQ 결과는 지연 평가(lazy evaluation)
  • ToList() 사용 시 즉시 평가

🏷 추천 태그

C#, LINQ, 람다, 데이터 처리, Where, Select, 프로그래밍, 컬렉션 처리, IEnumerable

728x90
728x90

1. 테이블 생성 구문 형식

CREATE TABLE 테이블_이름 (
    컬럼명1 DATATYPE [DEFAULT 값],
    컬럼명2 DATATYPE [DEFAULT 값],
    컬럼명3 DATATYPE [DEFAULT 값]
);

테이블 생성 규칙

  • 테이블 이름: 적절한 이름을 사용하고 단수형 권장.
  • 컬럼 이름: 중복 불가, 데이터베이스 내에서 일관성 유지.
  • 데이터 유형 지정: 모든 컬럼에 반드시 데이터 유형 지정.
  • 명명 규칙:
    • 문자(A-Z, a-z), 숫자(0-9), _, $, #만 허용.
    • 예약어 사용 금지.
  • SQL 문법: 대소문자 구분하지 않음, 문장 끝에 ; 사용.

2. CREATE TABLE 예제

CREATE TABLE PLAYER (
    PLAYER_ID CHAR(7) NOT NULL,
    PLAYER_NAME VARCHAR2(20) NOT NULL,
    TEAM_ID CHAR(3) NOT NULL,
    E_PLAYER_NAME VARCHAR2(40),
    NICKNAME VARCHAR2(30),
    JOIN_YYYY CHAR(4),
    POSITION VARCHAR2(10),
    BACK_NO NUMBER(2),
    NATION VARCHAR2(20),
    BIRTH_DATE DATE,
    SOLAR CHAR(1),
    HEIGHT NUMBER(3),
    WEIGHT NUMBER(3),

    CONSTRAINT PLAYER_PK PRIMARY KEY (PLAYER_ID),
    CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID)
);

설명

  • DATE 유형: 별도 크기 지정하지 않음.
  • 제약 조건:
    • NOT NULL: 필수 입력.
    • PRIMARY KEY: 고유 식별 키.
    • FOREIGN KEY: 다른 테이블의 키를 참조.
  • 제약 조건 정의 위치:
    • 컬럼 레벨: 각 컬럼의 정의에 직접 추가.
    • 테이블 레벨: 테이블 생성 마지막에 선언.

3. 제약조건 (CONSTRAINT)

제약조건 설명

구분설명

PRIMARY KEY - 기본키: 행 데이터를 고유하게 식별.
- NULL 입력 불가.
- 자동으로 UNIQUE 인덱스 생성.
UNIQUE KEY - 고유키: 행 데이터를 고유하게 식별.
- NULL 값 허용.
NOT NULL - NULL 값 입력 금지.
- 필수 입력 컬럼.
CHECK - 값의 범위 제한.
- 논리식 평가(TRUE or FALSE).
FOREIGN KEY - 다른 테이블과의 관계를 정의.
- 참조 무결성 제약 옵션 제공.

4. 생성된 테이블 구조 확인 (DESC)

Oracle:

DESC PLAYER;

MySQL:

DESCRIBE PLAYER;

5. SELECT 문을 통한 테이블 생성

SELECT를 사용한 테이블 복제

CREATE TABLE TEMPPLAYER
    AS SELECT * FROM PLAYER;

특징

  • 기존 테이블에서 컬럼과 데이터를 복제.
  • 제약 조건:
    • NOT NULL: 유지.
    • PRIMARY KEY, FOREIGN KEY, CHECK: 적용되지 않음.
  • 제약 조건 추가:
     
ALTER TABLE TEMPPLAYER
ADD CONSTRAINT TEMPPLAYER_PK PRIMARY KEY (PLAYER_ID);

6. 실습 예제

테이블 생성

CREATE TABLE TEAM (
    TEAM_ID CHAR(3) PRIMARY KEY,
    TEAM_NAME VARCHAR2(30) NOT NULL
);

CREATE TABLE PLAYER (
    PLAYER_ID CHAR(7) NOT NULL,
    PLAYER_NAME VARCHAR2(20) NOT NULL,
    TEAM_ID CHAR(3) NOT NULL,
    POSITION VARCHAR2(10),
    BIRTH_DATE DATE,

    CONSTRAINT PLAYER_PK PRIMARY KEY (PLAYER_ID),
    CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID)
);

테이블 구조 확인

DESC PLAYER;

데이터 삽입

INSERT INTO TEAM (TEAM_ID, TEAM_NAME) VALUES ('001', 'Team A');
INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, BIRTH_DATE)
VALUES ('P001', 'John Doe', '001', 'Forward', TO_DATE('1990-01-01', 'YYYY-MM-DD'));

데이터 조회

SELECT * FROM PLAYER;
728x90

+ Recent posts