본문 바로가기

반응형

데이터베이스(DB)

[DB/SQL] 프로그래머스 MySQL 문제 (LEVEL 2) 풀이 (1) [문제] 문제명 : 고양이와 개는 몇 마리 있을까 난이도 : LEVEL 2 링크 : https://programmers.co.kr/learn/courses/30/lessons/59040 [풀이] 고양이(Cat)를 개(Dog)보다 먼저 조회해야 하므로 ANIMAL_TYPE을 오름차순으로 정렬한다. 고양이와 개의 마리수를 각각 계산하기 위해선 GROUP BY를 통해서 그룹으로 묶어주면 된다. SELECT ANIMAL_TYPE, COUNT(*) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE [문제] 문제명 : 루시와 엘라 찾기 난이도 : LEVEL 2 링크 : https://programmers.co.kr/learn/courses/30/lessons/5..
[DB/SQL] 프로그래머스 MySQL 문제 (LEVEL 1) 풀이 [문제] 문제명 : 이름이 없는 동물의 아이디 난이도 : LEVEL 1 링크 : https://programmers.co.kr/learn/courses/30/lessons/59039 [풀이] NAME이 NULL인 항을 뽑아내기 위해선 IS NULL을 이용한다. 만약 NULL이 아닌 항만 뽑아내고 싶다면 IS NOT NULL 키워드를 이용할 수 있다. ANIMAL_ID 기준으로 오름차순 정렬되어야 하기 때문에 ORDER BY를 사용한다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME is null ORDER BY ANIMAL_ID [문제] 문제명 : 최댓값 구하기 난이도 : LEVEL 1 링크 : https://programmers.co.kr/learn/courses/30/..
[DB/SQL] 6. 집계 함수(Aggregate Function), GROUP BY, HAVING [목차] 1. 집계 함수(Aggregate Function)란? 2. COUNT 3. MIN / MAX 4. AVG / SUM 5. GROUP BY 6. HAVING 1. 집계 함수(Aggregate Function)란? 집계 함수는 여러 행으로부터 하나의 결괏값을 반환하는 함수이다. SELECT 구문에서만 사용되며, 이전에 다룬 기본 함수들이 행(row)끼리 연산을 수행했다면, 집계 함수는 열(column)끼리 연산을 수행한다. 주로 평균, 합, 최대, 최소 등을 구하는 데 사용된다. 위와 같이 테이블이 구성되어 있다고 가정하고, 집계 함수를 다루는 방법에 대해서 알아보자. 2. COUNT COUNT는 특정 열(Column)의 행의 개수를 세는 함수이다. COUNT(*)로 작성하면 테이블에 존재하는 행..
[DB/SQL] 5. DML(Data Manipulation Language) - UPDATE, DELETE [목차] 1. UPDATE 2. DELETE 1. UPDATE UPDATE 명령문은 데이터베이스의 테이블에서 데이터를 갱신하는 기능을 한다. 셀 단위로 데이터를 갱신할 수 있고, 만약 테이블에 존재하지 않는 열을 지정하면 에러가 발생한다. UPDATE의 단순한 문법은 다음과 같다. UPDATE table_name SET column1='data1', column2='data2', ... [WHERE condition] column에는 열 이름을, data에는 넣고 싶은 내용을 넣는다. [WHERE condition]은 생략하면 행 전체에, 특정 행을 업데이트시키고 싶다면 WHERE를 이용하면 된다. 여러 열을 동시에 변경하고 싶다면 SET 다음에 콤마(,)로 연결해서 작성해주면 된다. MySQL에서는 작..
[DB/SQL] 4. DML(Data Manipulate Language) - INSERT, SELECT [목차] 1. INSERT 2. SELECT 1) FROM, WHERE 2) AND, OR, NOT 3) LIKE 4) ORDER BY 5) DISTINCT DML(Data Manipulate Language), 데이터 조작 언어는 사용자가 데이터베이스에 대해 검색, 등록, 삭제, 갱신 등을 할 수 있도록 하는 데이터베이스 언어이다. 이전 게시글에 이어서 현재 테이블이 아래와 같이 이루어져 있다고 가정하자. 아직 열의 타입만 정의된 상태이다. 1. INSERT INSERT 명령어는 데이터를 테이블에 추가할 때 사용한다. 입력하지 않은 값은 자동으로 NULL값이 입력된다. 만약 입력하지 않은 열이 NOT NULL 속성을 가지고 있다면 default value를 가지고 있지 않다는 에러가 발생한다. 문법은 ..
[DB/SQL] 3. SQL 특징 & DDL(Data Definition Language) [목차] 1. SQL이란? 2. SQL의 특징 3. DDL (Data Definition Language) 1. SQL이란? SQL은 Structured Query Language의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 데이터를 관리, 처리하기 위해 설계된 프로그래밍 언어이다. 1970년대 IBM에서 SEQUEL(Structured English Query Language)이라는 이름으로 처음 개발되었으며, 후에 Structured Query Language로 다시 이름이 지어졌다. SQL 문법의 종류는 다음 세 가지로 분류된다. - Data Definition Language (DDL) : Schema definition (CREATE, ALTER, RENAME, DROP,...) - ..
[DB] 2. Relational Algebra (관계 대수) [목차] 1. Data Manipulation Languages (DMLs) 2. Relational Algebra 1. Data Manipulation Languages (DMLs) 데이터베이스로부터 정보를 얻거나, 저장하는 데 사용하는 두 가지 방식의 '데이터 언어'가 있다. 절차적 언어 : Relational Algebra (관계 대수). 원하는 결과를 찾기 위해서 데이터의 처리 과정을 구체화해야 한다. 비절차적 언어 : Relational Calculus (관계 해석). 원하는 결과만 구체화하고, 어떻게 찾을지는 필요하지 않다. 원하는 데이터를 얻기 위해서 릴레이션에 필요한 쿼리(Query)를 수행할 때 사용한다. 데이터를 쉽고 빠르고 정확하게 얻기 위해 사용되며, 절차적 또는 비절차적 언어로 모..
[DB] 1. Relational Model (관계형 모델) [목차] 1. Database Management System 2. Relational Model이란? 3. Relation 4. Relational Model의 특징 1. Database Management System 데이터베이스 관리 시스템(Database Management System, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. 범용 DBMS는 데이터베이스의 정의, 생성, 질의, 업데이트, 관리 등을 위해 고안되었다. 초기의 DBMS에서는 데이터베이스가 가진 독립체와 속성인 '논리 계층(Logical layer)'과 이들이 저장되는 방식인 '물리 계층(Physical layer)'이 매우 밀접한 관계였기 때문에, 물리 계층을 바..