메서드 오버로딩?

다형성을 구현하는 방법중 하나

즉, 하나 이상의 형태를 취할 수 있는 능력

https://www.youtube.com/watch?v=UQmok_QRSKY&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=36

 

 

메서드 오버로딩은

동일한 이름을 가진 여러 메서드를 정의하는 것

 

메서드 오버로딩을 사용하는 때

 

1. 매개변수의 수 변경

2. 다른 타입의 매개변수 사용

3. 서로 다른 타입의 매개변수 순서 변경

 

 

 

생성자 오버로딩

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step36
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Calculator calc = new Calculator();
            //int result = calc.Add(1, 2);
            //Console.WriteLine(result);

            //result = calc.Add(1, 2, 3);
            //Console.WriteLine(result);

            //calc.Subtract(1.3f, 1.5f);
            //calc.Subtract(5, 1.5f);
            //calc.Subtract(10f, 5);

            //calc.Multiple(1.5f, 2);
            //calc.Multiple(2, 1.5f);
            
            //생성자 오버로딩
            Hero hong = new Hero();
            Hero lim = new Hero("임꺽정");
            Hero jang = new Hero("장길산", 3, 10);
            
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step36
{
    internal class Calculator
    {
        //클래스가 생성되면 기본 생성자를 만들자

        public Calculator()
        {

        }

        //메서드 오버로딩
        public int Add(int a, int b)
        {
            int result = a + b;
            return result;
        }
        //다른 매개변수의 수
        public int Add(int a, int b, int c)
        {
            int result = a + b + c;
            return result;
        }

        public int Subtract(int a, int b)
        {
            int result = a - b;
            return result;
        }
        //다른 타입의 매개변수
        public int Subtract(float a, float b)
        {
            int result = Convert.ToInt32(a - b);
            return result;
        }

        public int Subtract(int a, float b)
        {
            int result = a - (int)b;
            return result;
        }
        //서로다른 매개변수의 순서 변경
        public int Multiple(int a, float b)
        {
            int result = a * (int)b;
            return result;
        }

        public int Multiple(float a, int b)
        {
            int result = (int)a * b;
            return result;
        }
        
        //반환타입이 다른것은 오버로딩 불가능

    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step36
{
    internal class Hero
    {
        //생성자
        public Hero()
        {
            Console.WriteLine("매개변수가 없는 기본 생성자");
        }

        //생성자 오버로딩
        public Hero(string anme)
        {
            Console.WriteLine("매개변수가 1개 있는 생성자");

        }

        //생성자 오버로딩
        public Hero(string name, int damage, int maxHp)
        {
            Console.WriteLine("매개변수가 3개 있는 생성자");

        }
    }
}

'낙서장 > C#' 카테고리의 다른 글

virtual ,override, base  (2) 2024.03.08
상속과 다형성  (1) 2024.03.08
흐름 제어  (1) 2024.02.26
데이터를 가공하는 연산자  (0) 2024.02.25
데이터를 담는 변수와 상수  (0) 2024.02.22

특정 개체가 아니라 형식 자체에 속하는

정적 맴버를 정의 할 수 있다.

 

정적 맴버

프로그램이 실행되는 동안 수명이 유지됨

항상 클래스 이름으로 접근됨

 

생성된 인스턴스의 수와 상관 없이

정적 맴버는 항상 한 개

 

정적 메서드는 비정적 필드 및 메서드에 접근 불가

 

https://www.youtube.com/watch?v=CLdJsWLk_wE&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=35

 

 

 

그렇기 때문에 그 동안 Main메서드에서 비정적 메서드를 호출 하거나

맴버에 엑세스 하기 위해 static을 붙여왔다.

 

 

 

정적 생성자는 정적 필드를 초기화 하거나 특정 작업을 한 번만 수행해야 하는데 사용됨

 

 

 

 

정적 생성자는 인스턴스 생성자보다 먼저 호출되며 한번만 실행됨

생성자란?

클래스와 같은 이름을 갖는 함수를 의미

객체가 초기에 생성될 때 자동으로 1회 호출되는 함수

주로 객체 내의 정보를 초기화 하는 수단이며, return 값이 없다

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step35
{
    internal class CallCenter
    {
        //정적 생성자
        static CallCenter()
        {
            Console.WriteLine("콜센터 정적 생성자");
        }

        //인스턴스 생성자
        public CallCenter()
        {
            Console.WriteLine("콜센터 인스턴스 생성자");
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step35
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var center1 = new CallCenter();
            var center2 = new CallCenter();
        }
    }
}

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step35
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var center1 = new CallCenter(201); //인스턴스 생성시 인수 값(내선번호) 전달
            var center2 = new CallCenter(202);

            Console.WriteLine(CallCenter.number); //정적 맴버는 클래스 이름으로 엑세스

            //정적 메서드 호출
            CallCenter.Call();

            //인스턴스 메서드 호출
            center1.CallExtensionNumber(); //변수에 할당된 CallCenter인스턴스의 맴버 메서드 호출
            center2.CallExtensionNumber();
        }
    }
}

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step35
{
    internal class CallCenter
    {
        //정적 맴버 변수
        public static string number;

        //인스턴스 맴버 변수
        public int extenstionNumber;

        //정적 생성자
        static CallCenter()
        {
            //정적 생성자에서 정적 필드(맴버변수)를 초기화 할 수 있다.
            CallCenter.number = "1588-0000";
            Console.WriteLine("콜센터 정적 생성자");
        }

        //인스턴스 생성자
        public CallCenter(int extenstionNumber) //매개변수로 내선번호 전달
        {
            //this 키워드를 사용해 클래스의 현재 인스턴스의 맴버변수에 접근(맴버 엑세스 연산자 사용, .점 연산자)
            this.extenstionNumber = extenstionNumber;
            Console.WriteLine("콜센터 인스턴스 생성자");
            Console.WriteLine("내선번호 : {0}", this.extenstionNumber); //생성된 인스턴스는 다른 내선번호를 가지게 만듬
        }

        //정적 맴버 메서드
        public static void Call()
        {
            Console.WriteLine("상담 가능한 상담사를 찾고있습니다.");
        }

        //인스턴스 맴버 메서드(내선번호로 전화 걸기)
        public void CallExtensionNumber()
        {
            Console.WriteLine("내선번호({0})로 전화를 겁니다.", this.extenstionNumber);
        }

    }
}

'Study > C#' 카테고리의 다른 글

[C#] virtual, override  (0) 2024.06.12
[C#] 상속  (1) 2024.06.03
[C#] this 키워드  (0) 2024.05.31
[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 맴버변수와 지역변수  (0) 2024.05.29

 

새게임 시작 시

나머지를 초기화 후 저장

재시작 시

기존에 가지고 가야 할 정보들만 따로 저장하고 시작됨

 

이어하기는 기존의 데이터를 가져옴

 

나머지 도감 클릭시 준비카드 or 행동카드 도감 선택

환경설정 시나와야 할 UI 구성

 

 

this란?

클래스의 현재 인스턴스를 가리키는 키워드

 

https://www.youtube.com/watch?v=w3YquM7W_cY&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=34

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step34
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Character hong = new Character("홍길동", 3, 10);
            Character lim = new Character("임꺽정", 2, 12);
            Console.WriteLine("캐릭터의 이름: {0}, 공격력: {1}, 체력:{2}/{3} ", hong.name, hong.damage, hong.hp, hong.maxHp);
            Console.WriteLine("캐릭터의 이름: {0}, 공격력: {1}, 체력:{2}/{3} ", lim.name, lim.damage, lim.hp, lim.maxHp);
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step34
{
    internal class Character
    {
        //맴버변수 정의
        public string name;
        public int damage;
        public int hp;
        public int maxHp;

        //생성자
        public Character(string name, int damage, int maxHp)
        {
            this.name = name;
            this.damage = damage;
            this.maxHp = maxHp;
            this.hp = this.maxHp;



        }
    }
}

 

 

 

'Study > C#' 카테고리의 다른 글

[C#] 상속  (1) 2024.06.03
[C#] static 한정자  (0) 2024.06.02
[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 생성자 메서드  (0) 2024.05.29

car.name => 맴버 변수

car.Move(); => 맴버 메서드

 

다음과 같이 .을 사용하여 형식 맴버에 액세스

 

참조하고 있지 않는 참조변수에서 맴버에 액세스하려면

NullReferenceException 발생

 

여기서 Exception이란?

애플리케이션 실행 중에 발생하는 오류

 

예시

 

참조가 없는 변수의 맴버를 액세스 하려고 했기 때문에

NullReferenceException 발생

 

'Study > C#' 카테고리의 다른 글

[C#] static 한정자  (0) 2024.06.02
[C#] this 키워드  (0) 2024.05.31
[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 생성자 메서드  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29

맴버변수 ?

 

클래스에 정의된 변수

맴버변수는 인스턴스가 메모리에 있는동안 접근 가능

 

지역변수?

메서드에 정의된 변수

메서드가 실행되는 동안 접근 가능

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

가비지 컬렉션?

메모리를 자동으로 관리해주는 메커니즘

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

null은 참조하지 않음

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step32
{
    internal class Car
    {
        public string name;
        public float speed;
        public Car(string carName)
        {
            name = carName;
            Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
        }

        public void Move(float moveSpeed)
        {
            speed = moveSpeed;
            Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step32
{
    internal class Car
    {
        public string name;
        public float speed;
        public Car(string carName)
        {
            name = carName;
            Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
        }

        public void Move(float moveSpeed)
        {
            speed = moveSpeed;
            Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
        }
    }
}

 

'Study > C#' 카테고리의 다른 글

[C#] this 키워드  (0) 2024.05.31
[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 생성자 메서드  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28

생성자 메서드?

 

class 내부에 정의된 특수한 메서드

 

생성자?

 

이름이 해당 형식의 이름과 동일한 메서드

 

메서드 이름과 매개 변수 목록만 포함되고

반환 형식은 포함되지 않는다

 

클래스 정의

class Car

{

}

 

생성자 메서드 정의

class Car

{

Car()

{

}

}

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

 

일반 메서드는 정의 후 호출을 통해 실행된다.

 

생성자 메서드는 객체생성시 자동으로 호출된다

 

생성자를 통해 맴버변수의 기본값을 설정할 수 있다

 

 

 

매개변수가 있는 생성자 => 객체 생성시 값을 전달

 

예를들어 자동차 객체를 생성할 때 자동차 이름을 전달

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31
https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

 

 

 

생성자는 클래스안에 정의된 특수한 메서드
반환 타입이 없으며 이름이 클래스명과 동일한 메서드
인스턴스가 생성된 후 자동으로 호출
매개변수가 있는 생성자도 있다.

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step31
{
    internal class Car
    {
        public string name; //맴버 변수

        //생성자 메서드는 클래스의 이름과 동일
        //외부로부터 전달된 인수(문자열값은) 매개변수
        //carName에 할당된다.
        public Car(string carName)
        {
            //생성자에 반환 타입을 작성해서는 안된다.
            Console.WriteLine("생성자가 호출 됨");
            //매개변수 출력
            Console.WriteLine("매개변수 : {0}", carName);
            //맴버변수 출력
            Console.WriteLine("맴버변수 : {0}", name);
            //생성자 메서드 호출이 완료되면
            //매개변수의 값이 사라지므로
            //매개변수의 값을 맴버변수에 할당
            name = carName;
            Console.WriteLine("맴버변수 : {0}", name);
            //이렇게 할당된 맴버 변수는
            //해당 객체의 수명동안 사라지지 않는다
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step31
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //인스턴스가 호출 된후
            //인스턴의 생성자가 호출된다

            //매개 변수가 있는 생성자일 경우 반드시 인수를 전달해야 한다
            //new Car("싼타페");

            //변수에 Car인스턴스 할당
            Car car = new Car("싼타페");
            //car변수의 속성 name 출력
            Console.WriteLine(car.name);
            
        }
    }
}

'Study > C#' 카테고리의 다른 글

[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28

클래스?

 

사용자 정의 형식

 

객체를 생성하기 위해 변수와 메서드를 정의하는 틀

 

객체?

 

클래스로부터 생성된 메모리에 저장된 값

 

객체는 고유한 속성을 가지며 클래스에서 정의한 기능을 수행

 

 

클래스 정의하는 방법

 

1. class 키워드 적고

2. 고유한 이름 적기

3. 블록의 쌍

ex) class Car {}

 

자동차 이름을 속성으로 정희하는 방법

 

클래스안에 변수를 정의

class Car

{

string name

}

 

자동차 기능을 정의 => 정면으로 이동

 

1. 이름짓기 => MoveForward

2. void 붙여 주기

3. () 붙여주기

4. 불록을 쌍으로 만들기

void MoveForWard()

{

}

 

자동차 클래스 내부에 작성해야 한다.

 

속과 기능이 정의된 자동차 클래스

 

class Car <----자동차 클래스

{

string name; <----자동차 이름을 정의할 변수

void MoveForward() <-------앞으로 이동하게 하는 메서드

{

}

}

 

자동차 객체 만들기

 

new 키워드를 적고

클래스명을 적기

스괄호를 열고 닫기

세미클론을 적어주면 완성

new Car();

 

자동차 객체에 이름 설정하기

 

public을 붙이자 public string name;

 

생성된 자동차 객체를 변수에 할당

Car car = new Car();

 

car변수에 .을 찍어주고 => 클래스 속성 또는 메서드에 접근 할 수 있게 해준다.

속성명을(name => 클래스 내부의 변수) 적어주고

클래스 내부에 정의된 변수에 값 할당 => car.name = "싼타페";

 

생성된 자동차 객체의 이름이 싼타페로 설정됨

Car car = new Car();

car.name = "싼타페";

Console.WriteLine(car.name);

 

 

 

자동차 객체 움직이기

car에 .을 찍고

클래스에 정의된 메서드 호출 => car.MoveForward();

 

 

 

클래스 파일로 생성하기

 

 

클래스는 사용자 정의 형식
객체를 만들고 싶다면 new 키워드 사용
생성된 객체는 값이다
이 값을 인스턴스라고 부른다.

 

맴버 => 맴버 변수 + 맴버 메서드

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step30
{
    internal class Car
    {
        public string name; //속성, 필드, 맴버 변수

        public void MoveForward() //맴버 메서드
        {
            Console.WriteLine("{0}가 전진합니다.", name);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step30
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Car 인스턴스를 담는 변수 선언
            //변수타입 변수명
            //자동차 (Car)인스턴스를 할당할 예정이므로
            //변수 타입은 Car

            //변수 선언
            Car car;

            //변수에 값 (Car 클래스의 객체(인스턴스)) 할당
            // = 는 같다라는 뜻이 아니라 오른쪽 값을 왼쪽 변수에 할당하는 연산자
            car = new Car();

            //car변수의 name 속성(맴버 변수)에 값 할당
            //자동차 이름 설정하기
            //car 변수 이름을 적고 속성명(name)을 적기
            //다음과 같이 에러 메시지가 보이면 읽기
            //보호 수준 때문에 엑세스 할 수 없다
            //name 속성은 현재 private이기 때문
            //name 속성의 접근 제한자를 public으로 변경하고
            // 값을 할당
            //문자열 값을 할당
            car.name = "싼타페";

            //car 변수에 .을 찍고 클래스에 정의되어 있는
            //메서드 호출
            //보호수준 때문에 엑세스 할 수 없다는 에러 메시지
            //메서드의 접근제한자를 private => public으로 변경
            car.MoveForward();
            //컨트롤 + f5를 눌러 실행

            //새로운 Car객체를 생성하고
            //새 변수에 할당
            Car car2 = new Car();
            //속성을 설정
            car2.name = "쏘렌토";
            //메서드 호출
            car2.MoveForward();
            //실행

            //클래스로부터 생성된 인스턴스는 독립적
        }
    }
}

 

 

'Study > C#' 카테고리의 다른 글

[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 생성자 메서드  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28

https://cafe.naver.com/thisismysql

 

이것이MySQL이다 : 네이버 카페

한빛미디어 [이것이 MySQL이다] 카페입니다.

cafe.naver.com

 

위의 링크를 타고 글에 있는 이 링크를 클릭

 

https://drive.google.com/drive/folders/1KNAvefMzJpAurCj42-kTQmIoOvUTOe4T

 

10278_이것이 MySQL이다(2판) - Google Drive

이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요.

drive.google.com

 

movies 를 설치 후

 

 

해당 폴더들을 만들고 넣어준다.

 

그럼 이제 시작을 하기 위해한 자료들은 준비가 된 것이다.

 

이제 켜져있는 워크벤치를 꺼준다.

 

그 후 위와 같은 명령들로 해당 파일에 접근

 

여기서 수정해야 할 곳은 2개가 있다.

 

동영상을 업로드하기 위해 용량을 바꿔주는 것과

 

 

 

my.ini 파일을 저장후

net stop mysql을 하면 잠시 후 정지가 되고

net start mysql을 하면 다시 실행이 된다.

 

그리고 나서 워크 벤치를 키고 접속을 하면 적용이 된다.

 

CREATE DATABASE movieDB;

USE movieDB;
CREATE TABLE movietbl
(movie_id INT,
movie_title VARCHAR(30),
movie_director VARCHAR(20),
movir_star VARCHAR(20),
movie_script LONGTEXT,
movie_film LONGBLOB)
DEFAULT CHARSET = utf8mb4;

INSERT INTO movietbl VALUES (1,'쉰들러 리스트', '스필버그', '리암 니슨',
LOAD_FILE('C:/SQL/Movies/Schindler.txt'),
LOAD_FILE('C:/SQL/Movies/Schindler.mp4'));

SELECT * FROM movietbl;

SHOW variables LIKE 'max_allowed_packet';

SHOW variables LIKE 'secure_file_priv';

use moviedb;
TRUNCATE movietbl;
INSERT INTO movietbl VALUES (1, '쉰들러 리스트', '스필버그', '리암 니슨',
load_file('C:/SQL/Movies/Schindler.txt'), load_file('c:/sql/movies/Schindler.mp4'));
insert into movietbl values(2, '쇼생크 탈출', '프랭크 다라본트', '팀 로빈스',
load_file('c:/sql/movies/Shawshank.txt'), load_file('c:/sql/movies/Shawshank.mp4'));
insert into movietbl values(3, '라스트 모히칸', '마이클 만', '다니엘 데이 루이스',
Load_file('c:/sql/movies/mohican.txt'),load_file('c:/sql/movies/mohican.mp4'));

SELECT movie_script from movietbl where movie_id =1
INTO OUTFILE 'c:/sql/movies/schindler_out.txt'
LINES TERMINATED BY '\\n';

SHOW VARIABLES LIKE 'secure_file_priv';
SELECT * FROM movietbl;

use moviedb;
SELECT movie_film from movietbl where movie_id=3
into dumpfile 'c:/sql/movies/Mohican.mp4';

use sqldb;
create table pivottest
(uName CHAR(3),
season CHAR(2),
AMOUNT INT);
insert into pivotTest VALUES
('김범수', '겨울', 10), ('윤종신', '여름', 15), ('김범수', '가을', 25), ('김범수', '봄', 3),
('김범수', '봄', 37), ('윤종신', '겨울', 40), ('김범수', '여름', 14), ('김범수', '겨울', 22),
('윤종신', '여름', 64);

select * from pivotTest;

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sqldb' -- 여기에 데이터베이스 이름을 지정하세요
  AND TABLE_NAME = 'pivotTest'; -- 여기에 테이블 이름을 지정하세요

select uName,
	SUM(IF(season = '봄', amount, 0)) as '봄',
    sum(if(season = '여름', amount, 0)) as '여름',
    SUM(IF(season = '가을', amount, 0)) as '가을',
    SUM(IF(season = '겨울', amount, 0)) as '겨울',
    sum(amount) as '합계' from pivottest group by uName;
    
SELECT
    season,
    SUM(IF(uName = '김범수', amount, 0)) AS '김범수',
    SUM(IF(uName = '윤종신', amount, 0)) AS '윤종신'
FROM
    pivottest
GROUP BY
    season;

use sqldb;
SELECT JSON_OBJECT('name', name, 'height', height) as 'json 값'
from usertbl
where height >= 180;

SET @json = '{
    "usertbl": [
        {"name": "임재범", "height": 182},
        {"name": "이승기", "height": 182},
        {"name": "성시경", "height": 186}
    ]
}';

SELECT @JSON;

SELECT JSON_VALID(@JSOON) AS JSON_VALID;
SELECT JSON_SEARCH(@json, 'one', '성시경') AS JSON_SEARCH; -- 여기서 one대신에 all사용가능한데 one은 앞에 있는것 1개를 지칭
SELECT JSON_EXTRACT(@json, '$.usertbl[2].name') as JSON_EXTRACT;
SELECT JSON_INSERT(@json, '$.usertbl[0].mDate', '2009-09-09') AS JSON_INSERT;
SELECT JSON_REPLACE(@json, '$.usertbl[0].name', '홍길동') AS json_replace;
select json_remove(@json, '$.usertbl[0]') AS JSON_REMOVE;



-- JOIN
use sqldb;

SELECT *
FROM buytbl
INNER JOIN usertbl ON buytbl.userid = usertbl.userid
WHERE buytbl.userid = 'jyp';

select *
from buytbl
inner join usertbl
on buytbl.userid = usertbl.userid
order by num;

-- 이렇게하면 userid가 모호해져서 오류가 난다.
select userid, name, prodname, addr, concat(mobile1, mobile2) as '연락처'
from buytbl
inner join usertbl
on buytbl.userid = usertbl.userid
order by name;

select buytbl.userid, name, prodname, addr, concat(mobile1, mobile2) as '연락처'
from buytbl
inner join usertbl
on buytbl.userid = usertbl.userid
order by name;

-- 011-xxx-xxxx로 바꾸기
set @mobile1 = '011';
set @mobile2 = '2222222';
select concat(@mobile1, @mobile2);
-- case1
SELECT CONCAT(@mobile1, '-', left(@mobile2,3),'-', right(@mobile2,4));
-- case2
SELECT CONCAT(@mobile1, '-', SUBSTRING(@mobile2, 1, 3), '-', SUBSTRING(@mobile2, 4)) AS formatted_mobile;

메서드란?

일련의 문을 포함하는 코드 블록

특정 작업을 수행하기 위한 일련의 명령문이 포함된다.

 

값을 반환할 수 있다.

 

ex)원주율의 값을 반환하는 메서드

https://www.youtube.com/watch?v=Y_SP8FBlr9E&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=29

 

값을 반환하는 메서드라면

반환 값을 변수에 할당할 수 있다.

float pi = GetPi();

 

메서드 반환 타입은 반환 값에 따라 결정된다

 

'Study > C#' 카테고리의 다른 글

[C#] 생성자 메서드  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27

+ Recent posts