본문 바로가기

전체 글42

[MySQL] 집계함수 ( MAX, MIN, SUM, AVG, COUNT ) 함수 기능 예시 MAX 최대값 select MAX(COL1) from dual; MIN 최소값 select MIN(COL1) from dual; AVG 평균값 selcet AVG(COL1) from dual; SUM 합계 select SUM(COL1) from dual; COUNT(COL) 개수(NULL 미포함) select COUNT(COL1) from dual; COUNT(*) 개수(NULL 포함) select COUNT(*) from dual; - MySQL에서 제공하는 sakila 데이터베이스에서 payment 테이블을 조회하였을 때 나오는 화면 payment_id : 기본키, Auto Increment customer_id : 외래키, 대여한 고객의 id staff_id : 외래키, 해당 렌탈을.. 2024. 4. 14.
[MySQL] Join, 조인( Inner Join, Outer Join ) Join 이란? ● 둘 이상의 테이블에서 데이터가 필요한 경우 두 테이블을 연결하는 것 ● Inner Join, Outer Join, Natural Join, Cross Join 등이 존재함 ● 조인의 처리는 어느 테이블을 먼저 읽을지를 결정하는 것이 성능차이를 일으키기 때문에 중요함 ● Inner Join은 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 옵티마이저가 조인의 순서를 조절해 최적화를 진행 ● Outer Join은 옵티마이저가 조인 순서 선택이 불가능함 * Inner Join ● 가장 일반적인 Join으로, 교집합을 의미함. ● 동등 조인 ( Equal Join )이라고도 하며 N개의 테이블을 조회하려면 N-1번의 Join이 필요함 ● Join 후 Select를 할 때, 두 테이블에 공통된.. 2024. 4. 13.
[MySQL] Index, View ( 인덱스, 뷰 ) * Index란? - 책의 '찾아보기', '색인'과 같이 원하는 내용을 바로 찾을 수 있도록 지원해주는 자료구조 - 테이블의 데이터 조회 시 동작 속도를 높여주는 효과를 갖고 있음. - 즉, 데이터의 위치를 빠르게 찾도록 찾아주는 역할을 하며 컬럼의 값과 레코드가 저장된 주소를 키와 쌍으로 만들어둠. * 주의 사항 1. 필요없는 Index를 만들면 데이터베이스에 쓸데없는 공간을 차지하며, 오히려 검색 속도가 저하될 수 있음. 2. 데이터베이스의 공간을 차지하므로 추가적인 공간을 차지함 3. 처음 Index를 생성하는 데 시간이 소요됨 4. 데이터의 변경 작업( INSERT, UPDATE, DELETE )이 자주 일어나는 경우, 오히려 성능 저하가 일어날 수 있음. *인덱스의 종류 1. 클러스터형 인덱스 .. 2024. 4. 13.
[MySQL] DDL, 데이터 정의어(Data Definition Language) DDL ( Data Definition Language ) - CREATE, DROP, ALTER, RENAME - 데이터베이스 객체(Table)의 구조를 정의 - 테이블 생성, 수정, 삭제, 제약조건 지정, 타입 변경 등 제약 사항 - 컬럼에 저장될 데이터의 조건을 설정하는 것 - 제약조건을 설정하면 이에 위반하는 데이터는 삽입 불가 - 테이블 생성시 직접 지정하거나 constraint로 지정, 혹은 alter로 지정 1. NOT NULL - 컬럼에 NULL값을 지정할 수 없고 반드시 쿼리문을 이용하여 값을 지정 2. UNIQUE - 컬럼에 중복된 값을 저장할 수 없음 NULL값은 허용 3. PRIMARY KEY - 컬럼에 중복된 값을 저장할 수 없고, NULL도 허용하지 않음 - 주로 ROW를 구분하.. 2024. 4. 13.
[MySQL] Data Type 데이터 타입 Data Type ( char, varchar, text ) 1. CHAR - 고정 길이를 갖는 문자열을 저장 - CHAR(20)에 10글자만 저장 하더라도 실제로 차지하는 길이는 20임. - CHAR는 저장공간이 낭비될 순 있지만, 추가적인 연산이 필요하지 않아 검색 및 읽는 속도가 VARCHAR보다 빠름 2. VARCHAR - 가변길이를 갖는 문자열을 저장 - VARCHAR(20)에 10글자만 저장하면 실제로의 길이만 차지 - 가변길이라 하더라도 VARCHAR(5)에 "123456"을 삽입하면 에러가 발생 (MySQL 기준) 3. TEXT - 길이제약을 받지 않음. - index의 일부로 사용 불가능 - max size limit가 불가, 오직 65535 VARCHAR: 짧은 문자열을 저장하는 데 적.. 2024. 4. 13.
소프티어 5회 기출 - 업무 처리 난이도 - Lv3 사용 개념 - 구현, 자료구조( 다중 Queue) 풀이 시간 - 40분 ( 설계 25분, 구현 15분 ) 핵심 키워드 1. 말단 직원은 왼쪽, 오른쪽의 구분이 없이 하루에 하나씩 업무를 처리한다. 2. 중간직원과 부서장은 홀수 날에는 왼쪽 직원이 보낸 업무를, 짝수 날에는 오른쪽 직원이 보낸 업무를 처리한다. -> 말단 직원이 일을 올려보내고 하루가 지나야 상사들이 일을 시작할 수 있음. -> 부서는 완전 이진트리로 되어있기 때문에 트리를 구현하면 가능함. 3. 왼쪽, 오른쪽의 구분이 있기 때문에 Queue[][] 2차원 배열을 사용하여 각 사원들이 왼쪽업무, 오른쪽 업무를 가져갈 수 있게끔 하였음. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 .. 2024. 3. 21.