본문 바로가기

전체 글376

[MariaDB] 카테시안 곱(Cartesian Product) 두 개 이상의 테이블 병합 / inner join 테이블 병합 함수 / on() 테이블 병합 시 조건 추가 함수 / Column 'deptno' in field list is ambiguous 에러 / outer join 특정 테이블의 n.. 카테시안 곱(Cartesian Product)이란? From절에 2개 이상의 Table이 있으며, 두 Table 사이에 유효 join 조건을 적지 않았을때, 해당 테이블에 대한 모든 데이터를 전부 결합하여 Table에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것이다. 사원정보(emp) 테이블과 부서정보(dept) 테이블을 유효 조건없이 결합해보겠습니다. select * -> from emp inner join dept; 아래 부서번호(deptno)만 봐도 이 테이블의 정리가 필요한 것을 알 수 있습니다. 그렇다면, 두 테이블이 결합할 때 조건을 하나 추가해보겠습니다. 조건은 기존 테이블의 있는 부서번호(deptno)와 결합하는 테이블에 존재하는 부서번호가 같다는 조건입니다. select * ->.. 2022. 10. 18.
[MariaDB] 서브쿼리 사용법(단일행 서브 쿼리, 복수행 서브 쿼리) / any, all / ERROR 1242 (21000): Subquery returns more than 1 row 에러 scott의 급여보다 큰 급여를 받는 사원에 대한 사원이름과 급여를 출력 위와 같은 문제가 주어졌을 때 첫번째로는, soctt의 급여를 출력하는 쿼리문을 하나 작성하고, select sal from emp where ename = "scott"; 두번째로는, 사원이름과 급여를 출력하는데 where문을 사용해서 첫번째 쿼리문을 조건을 둔다고 생각하면 됩니다. select ename, sal from emp where sal > (조건) 따라서, 두 쿼리문을 결합한다면 아래와 같습니다. select ename, sal from emp where sal > (select sal from emp where ename = "scott"); 정말 KING만 존재하는지 확인해보겠습니다. 사원이름과 급여를 출력하는데 .. 2022. 10. 18.
[SQLD] 3. 관계에 대해서 1. 관계의 개념 가. 관계의 정의 나. 관계의 패어링 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다. 2. 관계의 분류 UML(Unified Modeling Language)에는 클래스다이어그램의 관계중 연관관계(Association)와 의존관계(Dependency)가 있다. 이 둘의 차이는 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고 의존관계는 상대방 클래스의 .. 2022. 10. 18.
[SQLD] 2. 속성(Attribute)에 대해서 1. 속성(Attribute)의 개념 데이터 모델링 관점에서 속성을 정의하면 "업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위"로 정의할 수 있다. 업무상 관리하기 위한 최소의 의미 단위로 생각할 수 있고, 엔터티에서 한 분야를 담당하고 있다. 속성의 정의 업무에서 필요로 한다. 의미상 더 이상 분리되지 않는다. 엔터티를 설명하고 인스턴스의 구성요소가 된다. 2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔터티, 인스턴스, 속성, 속성값의 관계 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다. 한 개의 엔터티는 두 개 이상의 속성을 갖는다. 한 개의 속성은 한 개의 속성값을 갖는다. 예를 들어, 사원이라는 엔터티에는 홍길동이.. 2022. 10. 18.
[MariaDB] if( 조건문, 참일때 값, 거짓일때 값 ) / ifnull( null, "치환값") null 값을 다른 숫자 또는 문자로 치환 / case문 / sql 한글깨짐 현상 UTF-8에서 ANSI로 변경 / source 경로 sql파일 실행시키기 / count(.. if( 조건문, 참일때 값, 거짓일때 값 ) select if( 1=2, '참', '거짓' ); deptno(부서번호)가 20인 사원 중 급여가 2000을 기준으로 적은지 많은지에 대해서 출력 select ename, sal, if( sal < 2000, '적음', '많음') from emp where deptno = 30; ifnull(필드명, '치환값') select ifnull( null, '참'); ifnull(필드명, '치환값'), null 값을 다른 숫자 또는 문자로 치환 select comm, ifnull( comm, 0) from emp; ifnull(필드명, '치환값'), null 값을 다른 숫자 또는 문자로 치환 급여*12와 수당을 합쳐서 연봉을 출력 select sal, comm, s.. 2022. 10. 17.
[CS] 컴퓨터의 데이터 / 비트(bit)와 바이트(bite) / 2진수와 10진수 / binary 비트(bit)와 바이트(bite) 우리가 사용하는 모든 데이터는 컴퓨터 내부에서 0과 1로 이루어져 있습니다. 그 이유는, 컴퓨터 내부를 구성하는 반도체가 데이터를 0과 1로만 표현할 수 있기 때문입니다. 집에서 사용하는 전구를 예로 들어보겠습니다. 전구는 불이 켜지는 경우와 꺼지는 경우, 두 가지 밖에 없습니다. 이와 같이 0 또는 1로 표현할 수 있는 최소 단위를 비트(bit)라고 하며, 8비트가 모이면 1바이트(byte)가 됩니다. 2진수와 10진수 우리는 일상 생활에서 사용하는 숫자는 0부터 9까지 한 자릿수이고, 10부터는 두 자릿수가 됩니다. 이를 10진수라고 합니다. 하지만 위에서 설명한 바와 같이 컴퓨터 내부에서는 모든 데이터를 0과 1로 표현해야 합니다. 10진수를 2진수로 빠르고 쉽게 .. 2022. 10. 17.
[CS] 문자 자료형과 Java에서의 char 자료형 / 아스키 코드 / 유니코드 / UTF-8과 UTF-16의 차이점 / 왜 UTF - 8 인코딩 방식을 사용할까? 문자는 컴퓨터 내부에서 어떻게 나타내야 할까요?  이전 포스팅에서 컴퓨터는 0과 1로만 표현할 수 있다고 했으므로,문자 역시 컴퓨터 내부에서 표현할 때 0과 1의 조합으로 나타내야 합니다.2022.10.17 - [Computer Science] - [CS] 컴퓨터의 데이터 / 비트(bit)와 바이트(bite) / 2진수와 10진수 / binary 어떤 문자를 컴퓨터 내부에서 표현하려면 특정 정수 값으로 정하자고 약속합니다. 예를 들자면 A를 얼마로 표현할 것인지 약속하는데, 이러한 코드 값을 모은 것을 '문자 세트'라고 하고 문자를 정해진 코드 값으로 변환하는 것을 '문자 인코딩(encoding)', 코드 값을 다시 문자로 변환하는 것을 '문자 디코딩(decoding)' 이라고 합니다. 가장 기본이 되는.. 2022. 10. 15.
[Java] 바이트 단위 스트림과 문자 단위 스트림 실습 바이트 단위 스트림과 문자 단위 스트림 기본적으로 Java의 스트림은 바이트(byte) 단위로 자료의 입출력이 이루어집니다. Image, Video, Music 등 파일 대부분은 바이트 단위로 읽거나 쓰면 됩니다. 그런데 Java에서 하나의 문자를 나타내는 char형은 2바이트이기 때문에 1바이트만 읽으면 한글과 같은 문자는 깨집니다. 따라서 문자를 위해 문자 스트림을 별도로 제공하고 있습니다. 종류(주요 키워드) 예시 바이트 단위 스트림(Stream) FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream 등 문자 단위 스트림(Reader, Writer) FileReader, FileWiter, BufferedReader.. 2022. 10. 15.
[Java] 입출력 스트림을 사용해서 구구단을 메모장에 저장 시 오류 발생 / 한글 깨짐 현상 왼쪽은 출력 스트림을 fileOutputStream . 즉, 기반 스트림 하나만 사용 오른쪽은 출력 스트림을 fileOuputStream인 기반 스트림과 보조 스트림(BufferedWriter)을 사용했다. 우선, for문을 통해 정수를 출력했을 경우다. 두번째로는 정수에 + 48을 더한 결과다. 1을 의미하는 아스키 코드는 49이기 때문이다. 곱셈을 제외한 구구단의 기본 형식 출력은 성공 곱하기를 했을 때는, 결과값(곱셈 값)만 이상하게 출력되었습니다. 또, 두 스트림은 다르게 출력된 것을 확인했습니다. 문자를 출력해본다면 어떨까? fileOutputStream에서는 바이트 단위로만 출력하기 때문에 왼쪽에서는 오류가 발생했음. 오른쪽에서는 아스키 코드가 아닌 수 들의 곱셈이 출력된 것을 확인했습니다. .. 2022. 10. 14.