Unity 성결대 미소과 경진대회
3학년 1학기 게임엔진 수업을 들으면서 유니티 3D에 대한 공부를 진행했습니다. 그 결과로 성결대 미디어소프트웨어학과 경진대회에서 우수상을 받게 되었습니다. 경진대회에는 약 74명이 참가했고, 게임엔진 수업을 열심히 듣고 경진대회에 참여할 수 있다는 얘기를 듣고 약 2주간 혼자 개발을 하였습니다. 개인적으로 게임 개발에 대해 너무 재미있게 시간을 보냈고, 다른 프로그래밍 언어들을 공부하는 것도 재미있었지만 유니티만큼의 흥미를 느끼지 못했습니다. 유니티는 개발한 내용이 즉시 시각적으로 보여주고 오류가 있으면 게임이 실행되지 않고 어디서 문제가 발생했는지 자세하게 알려주기 때문에 장점이라고 생각했습니다. 이번 경진대회에서는 2등을 차지했는데, 1등 작품을 보았을 때 게임성은 많이 부족해 보였지만 퀄리티는 뛰..
2023.06.19
no image
C# 주사위게임
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1주차_복습 { class Program { #region 주사위게임 public void diceGame() { Random Ran = new Random(); Console.WriteLine("컴퓨터와 랜덤 주사위 게임"); Console.WriteLine(); bool gam = true; int sel = 0; int cumcount = 0; int mecount = 0; while (gam) { int medice = Ran.Next() % 6 + 1; int cumdic..
2023.03.12
C#
no image
C# 칸 이동 게임
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1주차_복습 { class Program { #region 칸 이동 게임 public void canGame() { Console.WriteLine("게임을 시작하겠습니다."); Console.Write("이름을 입력해주세요: "); string name = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("당신의 이름은 {0} 입니다.", name); Console.WriteLine(); Console.WriteLine()..
2023.03.12
C#
no image
C# 구구단
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1주차_복습 { class Program { #region 구구단 public void GuGuDan() { Console.Write("시작 단을 입력하세요: "); int start = Int32.Parse(Console.ReadLine()); Console.Write("끝 단을 입력하세요 : "); int end = Int32.Parse(Console.ReadLine()); for(int i=start; i
2023.03.12
C#
no image
C# 사칙연산
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1주차_복습 { class Program { #region 사칙연산 public void math() { Console.Write("a값을 입력하세요: "); int a = Int32.Parse(Console.ReadLine()); Console.Write("b값을 입력하세요: "); int b = Int32.Parse(Console.ReadLine()); Console.WriteLine("0번 - 더하기"); Console.WriteLine("1번 - 빼기"); Console.W..
2023.03.12
C#
no image
C# 기본 문법 정리1
C# 기본 문법정리 C# 기본구조 ex) using System; namespace abc{ class Hello{ public static void Main(){ Console.WriteLine("HelloWorld"); } } } 문자열 표시-Console.Write(), Console.WriteLine() 사용 ex) Console.Write("aaa"); Console.WriteLine("aaa"); //뒤에 Line은 줄바꿈을 나타냄, 자바에서 println에서 'ln'과 같음 변수의 선언 - 다른 프로그래밍 언어랑 유사하다 ex) int a; float b; double c; int d, e; 변수의 표시 ex) Console.Write(a); 문자 - 유니코드 1개, char(발음'차')형에..
2023.03.11
C#
no image
SQL 질의문(쿼리문) 문제정답 (개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 select bookname, price form book; 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. select * from book; 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) select distinct publisher from book; 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. select bookname, price from book where price = 10000 a..
2023.03.11
SQL
no image
SQL 질의문(쿼리문) 문제(개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. 질의 3-5 가격이 10,000원 이상 20,000 이하인 도서를 검색하시오. 질의 3-6 출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오. z 질의 3-7 ‘축구의 역사’를 출간한 출판사를 검색하시오. 질의 3-8 도서이름에 ‘축구’가 포함된 출판사를 검색하시오. 질의 3-9 도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오. 질의 3-10 축구에 관한 도서 중 가격이 20,000원 이상인 도서..
2023.03.11
SQL
반응형


3학년 1학기 게임엔진 수업을 들으면서 유니티 3D에 대한 공부를 진행했습니다. 그 결과로 성결대 미디어소프트웨어학과 경진대회에서 우수상을 받게 되었습니다. 경진대회에는 약 74명이 참가했고, 게임엔진 수업을 열심히 듣고 경진대회에 참여할 수 있다는 얘기를 듣고 약 2주간 혼자 개발을 하였습니다.

개인적으로 게임 개발에 대해 너무 재미있게 시간을 보냈고, 다른 프로그래밍 언어들을 공부하는 것도 재미있었지만 유니티만큼의 흥미를 느끼지 못했습니다. 유니티는 개발한 내용이 즉시 시각적으로 보여주고 오류가 있으면 게임이 실행되지 않고 어디서 문제가 발생했는지 자세하게 알려주기 때문에 장점이라고 생각했습니다.

이번 경진대회에서는 2등을 차지했는데, 1등 작품을 보았을 때 게임성은 많이 부족해 보였지만 퀄리티는 뛰어났습니다. 물론 물리적인 요소의 디테일은 부족해 보였지만, 가져온 캐릭터 등을 사용하는 것도 실력에 해당한다고 생각합니다. 저도 에셋을 가져와서 활용하는 데에 어려움을 겪었는데, 이해하는 데 시간이 걸렸습니다. 하지만 이것도 새로운 것을 배울 때의 쾌감을 느낄 수 있어서 너무 재미있었습니다. 개발자로서의 천직일지도 모르겠습니다.

또한 1인 개발로 진행했을 때 기획 부분이 부족하다는 것을 느꼈습니다. 게임을 만들기 전에 기획을 탄탄하게 준비해야 게임 제작이 원활하게 진행될 수 있다는 생각을 했습니다. 처음 경진대회 작품을 만들 때는 아이디어가 생각나면 그때그때 추가하는 방식으로 개발을 진행했는데, 이로 인해 막히는 경우도 있었고 어떤 것을 추가해야 할지 방향성을 잡지 못하는 경우도 있었습니다.

3학년 1학기가 끝난 후에는 편입생 친구들과 함께 3인 개발로 프로젝트를 시작했습니다. 우선 기획적인 부분을 탄탄하게 준비한 뒤 각자 파트를 나눠서 개발하기로 했습니다.

마지막으로, 경진대회에 제출한 탱크 게임의 결과물을 보여드리며 이 글을 마무리하겠습니다.

 

https://youtu.be/bgEv87ISU84

 

 

밑의 영상은 게임엔진 수업을 들으며 중간과제물 입니다.

 

https://youtu.be/EHLeTEsUcNM

 

 

반응형

C# 주사위게임

Dev_Jen
|2023. 3. 12. 00:07
반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1주차_복습
{
    class Program
    {
        #region 주사위게임
        public void diceGame()
        {
            Random Ran = new Random();

            Console.WriteLine("컴퓨터와 랜덤 주사위 게임");
            Console.WriteLine();

            bool gam = true;
            int sel = 0;
            int cumcount = 0;
            int mecount = 0;

            while (gam)
            {
                int medice = Ran.Next() % 6 + 1;
                int cumdice = Ran.Next() % 6 + 1;

                Console.WriteLine("0번 - 주사위 굴리기");
                Console.WriteLine("1번 - 현재 스코어 확인");
                Console.WriteLine("2번 - 종료");
                Console.Write("선택 : ");
                sel = Int32.Parse(Console.ReadLine());
                Console.WriteLine();
                switch (sel)
                {
                    case 0:
                        Console.WriteLine("컴퓨터 {0} , 나 {1}", cumdice, medice);
                        if(cumdice > medice)
                        {
                            Console.WriteLine("컴퓨터 승");
                            cumcount = cumcount + 1;
                            Console.WriteLine();
                        }
                        else if(cumdice == medice)
                        {
                            Console.WriteLine("무승부");
                            Console.WriteLine();
                        }
                        else
                        {
                            Console.WriteLine("나 승");
                            Console.WriteLine();
                            mecount = mecount + 1;
                        }
                        break;
                    case 1:
                        Console.WriteLine("컴퓨터 스코어 - {0}", cumcount);
                        Console.WriteLine("나 스코어 - {0}", mecount);
                        Console.WriteLine();
                        break;

                    case 2:
                        Console.WriteLine("게임 종료");
                        gam = false;
                        break;
                }
            }

        }
        #endregion

        static void Main(String[] args)
        {
            Program Pro = new Program();

            Pro.diceGame();

        }


    }
}
반응형

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

C# 칸 이동 게임  (0) 2023.03.12
C# 구구단  (0) 2023.03.12
C# 사칙연산  (0) 2023.03.12
C# 기본 문법 정리1  (0) 2023.03.11

C# 칸 이동 게임

Dev_Jen
|2023. 3. 12. 00:06
반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1주차_복습
{
    class Program
    {
        #region 칸 이동 게임
        public void canGame()
        {
            Console.WriteLine("게임을 시작하겠습니다.");

            Console.Write("이름을 입력해주세요: ");
            string name = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine("당신의 이름은 {0} 입니다.", name);
            Console.WriteLine();
            Console.WriteLine();

            int sel = 0;
            int up = 0;
            int down = 0;
            int right = 0;
            int left = 0;
            bool gam = true;

            while (gam)
            {
                Console.WriteLine("0번은 오른쪽으로 한칸");
                Console.WriteLine("1번은 왼쪽으로 한칸");
                Console.WriteLine("2번은 위쪽으로 한칸");
                Console.WriteLine("3번은 아래쪽으로 한칸");
                Console.WriteLine("4번은 종료");
                Console.Write("번호를 선택해주세요: ");
                sel = Int32.Parse(Console.ReadLine());
                Console.WriteLine();
                Console.WriteLine();
                switch (sel)
                {
                    case 0:
                        Console.WriteLine("오른쪽으로 한 칸 이동합니다.");
                        if(left > 0)
                        {
                            left = left - 1;
                        }
                        else
                        {
                            right = right + 1;
                        }
                        break;
                    case 1:
                        Console.WriteLine("왼쪽으로 한 칸 이동합니다.");
                        if (right > 0)
                        {
                            right = right - 1;
                        }
                        else
                        {
                            left = left + 1;
                        }
                        break;
                    case 2:
                        Console.WriteLine("위쪽으로 한 칸 이동합니다.");
                        if (down > 0)
                        {
                            down = down - 1;
                        }
                        else
                        {
                            up = up + 1;
                        }
                        break;
                    case 3:
                        Console.WriteLine("아래쪽으로 한 칸 이동합니다.");
                        if (up > 0)
                        {
                            up = up - 1;
                        }
                        else
                        {
                            down = down + 1;
                        }
                        break;
                    case 4:
                        Console.WriteLine("게임종료");
                        gam = false;
                        break;
                }
                Console.WriteLine("현재 이동한 칸 - 오른쪽 {0}, 왼쪽 {1}, 위쪽{2}, 아래쪽{3}", right, left, up, down);
                Console.WriteLine();
                Console.WriteLine();
            }

        }
        #endregion

        static void Main(String[] args)
        {
            Program Pro = new Program();
            
            Pro.canGame();

        }


    }
}
반응형

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

C# 주사위게임  (0) 2023.03.12
C# 구구단  (0) 2023.03.12
C# 사칙연산  (0) 2023.03.12
C# 기본 문법 정리1  (0) 2023.03.11

C# 구구단

Dev_Jen
|2023. 3. 12. 00:04
반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1주차_복습
{
    class Program
    {
        #region 구구단
        public void GuGuDan()
        {
            Console.Write("시작 단을 입력하세요: ");
            int start = Int32.Parse(Console.ReadLine());
            Console.Write("끝 단을 입력하세요 : ");
            int end = Int32.Parse(Console.ReadLine());

            for(int i=start; i<=end; i++)
            {
                for(int j=1; j<=9; j++)
                {
                    Console.WriteLine("{0} x {1} = {2}", i, j, i * j);
                }
                Console.WriteLine();
            }
            Console.WriteLine("{0}단 부터 {1}단 까지", start, end);
        }
        #endregion

        static void Main(String[] args)
        {
            Program Pro = new Program();

            Pro.GuGuDan();

        }


    }
}
반응형

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

C# 주사위게임  (0) 2023.03.12
C# 칸 이동 게임  (0) 2023.03.12
C# 사칙연산  (0) 2023.03.12
C# 기본 문법 정리1  (0) 2023.03.11

C# 사칙연산

Dev_Jen
|2023. 3. 12. 00:03
반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1주차_복습
{
    class Program
    {
        #region 사칙연산
        public void math()
        {
            Console.Write("a값을 입력하세요: ");
            int a = Int32.Parse(Console.ReadLine());
            Console.Write("b값을 입력하세요: ");
            int b = Int32.Parse(Console.ReadLine());
            Console.WriteLine("0번 - 더하기");
            Console.WriteLine("1번 - 빼기");
            Console.WriteLine("2번 - 곱하기");
            Console.WriteLine("3번 - 나누기");
            Console.Write("선택 : ");
            int c = Int32.Parse(Console.ReadLine());

            switch (c)
            {
                case 0:
                    Console.WriteLine("값 : {0}", a + b);
                    break;
                case 1:
                    Console.WriteLine("값 : {0}", a - b);
                    break;
                case 2:
                    Console.WriteLine("값 : {0}", a * b);
                    break;
                case 3:
                    Console.WriteLine("값 : {0}", a / b);
                    break;
            }
        }
        #endregion

        static void Main(String[] args)
        {
            Program Pro = new Program();

            Pro.math();

        }


    }
}
반응형

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

C# 주사위게임  (0) 2023.03.12
C# 칸 이동 게임  (0) 2023.03.12
C# 구구단  (0) 2023.03.12
C# 기본 문법 정리1  (0) 2023.03.11

C# 기본 문법 정리1

Dev_Jen
|2023. 3. 11. 00:58
반응형
C# 기본 문법정리

C# 기본구조
ex)
using System;
namespace abc{
    class Hello{
          public static void Main(){
                 Console.WriteLine("HelloWorld");
           }
    }
}


문자열 표시-Console.Write(), Console.WriteLine() 사용
ex)
Console.Write("aaa");
Console.WriteLine("aaa");     //뒤에 Line은 줄바꿈을 나타냄, 자바에서 println에서 'ln'과 같음


변수의 선언 - 다른 프로그래밍 언어랑 유사하다
ex)
int a;
float b;
double c;
int d, e;


변수의 표시
ex)
Console.Write(a);


문자 - 유니코드 1개, char(발음'차')형에 저장
ex)
char a='A';    //문자는 ''로 묶는다.
                  // ""는 문자열을 묶을때 사용한다. ""를 쓸경우 null문자가 자동으로 삽입되어 두글자가 된다.
                     그러면 컴파일 에러 발생

문자의 표시
ex)
Console.Write('A');


문자열 - string형에 저장
ex)
string a="abc";     //문자열은 ""로 묶는다


문자열의 결합 - + 연산자를 사용하여 연결한다.
ex)
string a="abc";
int b=3;
string c=a+b+"abc";



배열 선언 - new연산자 이용
ex)
int []a=new int[4];
int []a=new int[]{1, 2, 3, 4};   //선언과 동시에 초기화
int []a={1, 2, 3, 4};               //선언과 동시에 초기화



다차원 배열
ex)
-1차원
int []a=new int[3];

-2차원
int [ , ]a=new[2,3];    //쉼표로 차원을 구분

-3차원
int [ , , ]a=new int[2, 3, 4];



다차원 배열 초기화
ex)
int [ , ]a={
       {10, 20},
       {30, 40},
       {50, 60}
};



재그 배열 - 2차원 이상의 배열에서 각 방향의 요소 수가 일정하지 않은 배열
ex)
int [][]a=new int[3][];
a[0]=new int[3]{1, 2, 3};
a[1]=new int[2]{4, 5};
a[2]=new int[1]{6};


int [][]a=new int[][]{
      new int[]{1, 2, 3}.
      new int[]{4, 5},
      new int[]{6}
};



length - 배열의 요소 수 구하기
ex)
int []a=new int[4];
int b=a.length;      // ()안 붙여도 됨


열거형 선언 - enum(발음 '이념') 사용
ex)
enum A{a, b, c, d, e};
Console.WriteLine(A.a);


bool형 - true 또는 false 중 한개의 값을 가지는 변수의 형
ex)
bool a=(x>y);


조건 연산자 - '조건식 ? a : b; ' 조건식이 참이면 a, 거짓이면 b
ex)
bool bo;
int a= bo ? 100 : 10;   //bo가 참이면 100을, 거짓이면 10을 a에 대입


캐스트 연산자 - 형명을 (0로 묶은것. 값이나 변수 앞에 쓰면 지정한 형으로 변환할 수 있다.
ex)
int a = 3;
int b = 2;
int c = (int) 1/b ;
반응형

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

C# 주사위게임  (0) 2023.03.12
C# 칸 이동 게임  (0) 2023.03.12
C# 구구단  (0) 2023.03.12
C# 사칙연산  (0) 2023.03.12
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오
select bookname, price
form book;


질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.
select *
from book;


질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)
select distinct publisher
from book;


질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.
select bookname, price
from book
where price < 20000;


질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.
select bookname, price
from book
where price >= 10000 and price <= 20000;


질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select *
from book
where publisher IN ('굿스포츠', '대한미디어');

또는

select *
from book
where publisher not IN ('굿스포츠', '대한미디어');

질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오. (LIKE) - LIKE 연산자는 문자열의 패턴을 검색하는 데 사용
select publisher, bookname
from book
where bookname LIKE '축구의 역사';


질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.
select publisher, bookname
from book
where bookname like '%축구%';


질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.
select bookname
from book
where bookname like '_구%';


질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.
select bookname
from book
where bookname like '%축구%' and price >= 20000;


질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select bookname, publisher
from book
where publisher in('굿스포츠', '대한미디어');


질의 3-12   도서를 이름순으로 검색하시오. (order by 기본적으로 오름차순, ASC)
select bookname
from book
order by bookname;


질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.
select bookname, price
from book
order by price, bookname;


질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC) @


질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.
select sum(saleprice)
from orders;

또는 

select sum(saleprice) as 총매출
from orders;


질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)
select sum(saleprice) as 김연아고객매출
from orders
where custid = 2;


질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)
select sum(saleprice) as 총매출, avg(saleprice) as 평균값, min(saleprice) as 최저가, max(saleprice) as 최고가
from orders;


질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))
select count(*)
from orders;


질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)
select custid, count(*) as 도서수량, sum(saleprice) as 총가격
from orders
group by custid;


질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)  @
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.


질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.
select *
from customer, orders
where customer.custid=orders.custid


질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.
select name, sum(saleprice)
from customer c, orders o
where c.custid=o.custid
group by c.name
order by c.name;


질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.
select c.name, b.bookname
from customer c, orders o, book b
where c.custid=o.custid and b.bookid=o.bookid;


질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
select name, bookname
from customer c, orders o, book b
where c.custid=o.custid and o.bookid=b.bookid
    and price = 20000;
    

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오. LEFT OUTER JOIN @@
select name, saleprice
from customer left outer join orders
    on customer.custid=orders.custid;
    

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX) @
select bookname, price
from book
where price = (select max(price)
            from book);
            

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN) @
select name
from customer
where custid in (select custid
                from orders);


질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN) @
select name
from customer
where custid in (select custid
                    from orders
                    where bookid in (select bookid
                                from book
                                where publisher = '대한미디어'));


질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)@
select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2
                where b2.publisher=b1.publisher);
또는

select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2);
또는

select bookname
from book
where price > (select avg(price)
                from book);


(합집합 UNION, 차집합 MINUS, 교집합 INTERSECT)


질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. @
select name
from customer
minus
select name
from customer
where custid in(select custid 
        from orders);


질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오. (EXIXTS)
select name, address
from customer
where exists (select *
                from orders
                where customer.custid = orders.custid);
또는

select name, address
from customer
where exists (select custid
                from orders
                where customer.custid = orders.custid);
반응형
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오

질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.

질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)

질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.

질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.

질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
z
질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오.

질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.

질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.

질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.

질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.

질의 3-12   도서를 이름순으로 검색하시오. (order by 사용)

질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.

질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC)

질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.

질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)

질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)

질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))

질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)

질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.

질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.

질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.

질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.

질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.

질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.

질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오.

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX)

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN)

질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN)

질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)

질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. - 합집합 UNION, 차집합 MINUS, 교집합 INTERSECT

질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오.
반응형