전체 글 81

SQL 레벨업 4장 집약과 자르기

12강 집약 1. 여러 개의 레코드를 한 개의 레코드로 집약 - SQL의 특징적인 사고방식 중에, 레코드 단위가 아닌 레코드의 '집합' 단위로 처리를 기술하는 것이 있습니다. -> 이런 사용 방식을 집합 지향(set-oriented)라고 부릅니다. -> 이러한 특징이 가장 잘 드러나는 때가 GROUP BY 구, HAVING 구와 그것과 함께 사용하는 SUM 또는 COUNT 등의 집약 함수를 사용하는 때입니다. - SQL에는 집약 함수(aggregate function)이라고 하는, 다른 함수와 구별해서 부르는 함수가 있습니다. 다음 5개의 함수가 바로 집약 함수입니다. -> COUNT, SUM, AVG, MAX, MIN - 다음과 같은 비집약 테이블이 있다고 합시다. CREATE TABLE NonAggT..

DB 2022.04.18

프로그래머스 SQL 고득점 KIT(GROUP BY)

프로그래머스 GROUP BY 4문제를 한 포스팅에 정리합니다. 프로그래머스 (programmers.co.kr) 1. 고양이와 개는 몇 마리 있을까 - GROUP BY로 ANIMAL_TYPE을 묶어주고, ORDER BY로 정렬합니다. SELECT ANIMAL_TYPE, COUNT(*) as count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; 2. 동명 동물 수 찾기 - GROUP BY로 NAME을 묶어주고, HAVING COUNT(NAME)>=2로 조건을 추가합니다. SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NA..

SQL 2022.04.17

SQL 기본 문법 정리(5) (GROUP BY, HAVING, 서브쿼리)

1) GROUP BY - GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶입니다. SELECT name FROM sample51 GROUP BY name; 1-1) GROUP BY 구와 집계함수 조합 - GROUP BY 구와 집계함수를 조합할 수 있습니다. SELECT name, COUNT(name), SUM(quantity) FROM sample51 GROUP BY name; 1-2) 결과값 정렬 - GROUP BY 구로 그룹화한 경우에도 ORDER BY 구를 사용해 정렬할 수 있습니다. SELECT name, COUNT(name), SUM(quantity) FROM sample51 GROUP By name ORDER BY SUM(quantity) DESC;..

SQL 2022.04.17

SQL 기본 문법 정리(4) (COUNT, DISTINCT, SUM, AVG, MIN, MAX)

1) COUNT - COUNT 함수는 인수로 주어진 집합의 '개수'를 구해 반환합니다. 단, COUNT 함수는 NULL을 무시합니다. SELECT COUNT(*) FROM sample51; 1-1) COUNT의 인수로 열명을 지정 - COUNT의 인수로 열명을 지정할 수 있습니다. SELECT COUNT(no), COUNT(name) FROM sample51; 2) DISTINCT - DISTINCT는 중복된 값을 제거하는 함수입니다. SELECT DISTINCT name FROM sample51; 2-1) COUNT와 DISTINCT - COUNT와 DISTINCT를 결합해서 사용할 수 있습니다. SELECT COUNT(ALL name), COUNT(DISTINCT name) FROM sample51;..

SQL 2022.04.14

SQL 기본 문법 정리(3) (INSERT, DELETE, UPDATE)

1) INSERT - INSERT 명령은 데이터베이스의 테이블에 행을 추가하기 위해서 사용합니다. INSERT INTO 테이블명 VALUES(값1, 값2...); INSERT INTO sample41 VALUES(1, 'ABC', '2014-01-25'); 2) NOT NULL 제약 - NOT NULL 제약이 걸려 있는 열은 NULL값을 허용하지 않습니다. 3) DELETE - DELETE 명령은 데이터베이스의 테이블에서 행을 삭제하기 위해서 사용합니다. DELETE FROM 테이블명 WHERE 조건식 DELETE FROM sample41 WHERE no=3; 4) UPDATE - UPDATE 명령은 테이블의 셀에 저장되어 있는 값을 갱신하려면 사용합니다. UPDATE 테이블명 SET 열1=값1, 열2=..

SQL 2022.04.14

자바(Java) 알고리즘 문제 풀이 - 섬나라 아일랜드(DFS)

문제 이해 - 섬의 개수를 구하라 해결 전략 - 2차원 board 배열을 순회하면서 board[x][y] = 1을 발견하면, DFS 순회를 시작합니다. - 한 번 방문한 점들은 board[x][y] = -1로 변경해서, 재방문하지 않도록 합니다. 구현 import java.util.*; public class Main { static int answer=0, n; static int[] dx={-1, -1, 0, 1, 1, 1, 0, -1}; static int[] dy={0, 1, 1, 1, 0, -1, -1, -1}; public void DFS(int x, int y, int[][] board){ for(int i=0; i

PS 2022.04.13

자바(Java) 알고리즘 문제 풀이 - 토마토(BFS 활용)

문제 이해 - 토마토들이 모두 익는데 걸리는 최소일수를 구하라. 해결 전략 - 큐에 board[x][y] = 1인 점들을 넣습니다. - 큐에서 값을 하나씩 제거하면서, 인접한 위치의 점이 (1) board 내부에 있고 (2) board[x][y]=0 이라면 해당 위치에 일수를 기록합니다. - dis배열에 기록된 값 중 최대값을 반환합니다. 구현 import java.util.*; class Point{ public int x, y; Point(int x, int y){ this.x=x; this.y=y; } } public class Main { static int[] dx={-1, 0, 1, 0}; static int[] dy={0, 1, 0, -1}; static int[][] board, dis; ..

PS 2022.04.13

자바(Java) 알고리즘 문제 풀이 - 미로의 최단 거리 통로(BFS)

문제 이해 - 미로에서 출발점에서 도착점까지 갈 수 있는 최단 거리를 구하라. 해결 전략 - BFS를 통해 다음 이동 가능한 점을 큐에 넣습니다. - dis 배열에 이동 거리를 기록합니다. - 방문한 점은 board[x][y] = 1로 바꾸어서 다시 방문하지 않도록 합니다. 구현 class Point{ public int x, y; Point(int x, int y){ this.x=x; this.y=y; } } public class Main { static int[] dx={-1, 0, 1, 0}; static int[] dy={0, 1, 0, -1}; static int[][] board, dis; public void BFS(int x, int y){ Queue q = new LinkedList()..

PS 2022.04.13

자바(Java) 알고리즘 문제 풀이 - 미로탐색(DFS)

문제 이해 - 미로에서 출발점에서 도착점까지 갈 수 있는 방법의 수를 구하라. 해결 전략 - DFS를 통해 점을 한 칸씩 이동한다. - 점을 이동하기 전에 board 내부에 있는 점인지, 방문한 적 없는 점인지 체크한다. - 한 번 방문한 점은 visited 배열을 통해서 true로 처리한다. 구현 import java.util.*; class Main { static int[] dx={-1, 0, 1, 0}; static int[] dy={0, 1, 0, -1}; static int[][] board; static boolean[][] visited; static int answer=0; public void DFS(int x, int y){ if(x == 7 && y == 7){ answer++; r..

PS 2022.04.13

SQL 기본 문법 정리(2) (ORDER BY, LIMIT, 문자열 연산, 날짜 연산, CASE문)

1) ORDER BY - ORDER BY구를 사용하면 정해진 순서로 결과값을 얻을 수 있습니다. SELECT 열명 FROM 테이블명 ORDER BY 열명 1-1) ORDER BY DESC로 내림차순으로 정렬하기 - 열명 뒤에 DESC를 붙이면 내림차순으로 정렬할 수 있습니다. SELECT 열명 FROM 테이블명 ORDER BY 열명 DESC 1-2) 복수열로 정렬 지정 - ORDER BY 구에는 복수로 열을 지정할 수 있습니다. SELECT * FROM sample32 ORDER BY a,b; SELECT * FROM sample32 ORDER BY a ASC, b DESC; 2) LIMIT 구 - LIMIT 구는 SELECT 명령의 마지막에 지정하는 것으로 WHERE 구나 ORDER BY 구의 뒤에 지..

SQL 2022.04.13