Backend/Database
View & Index, 백업과 복원
뷰(View) 가상 테이블 조인을 써서 여러 테이블의 값들을 한번에 정의&이용하고 싶을 때 테이블을 선언하는거보다 뷰를 써서 원하는 정보를 얻을 수 있다. - With Read Only => 내용 수정을 불가능하게 만드는 옵션이다. - With Check Option => 조건 컬럼값을 변경 못하게 하는 옵션 View Hierachy : 2단계 뷰 생성 고객 -> 우수회원 -> 단골회원 CREATE or REPLACE VIEW 우수회원 AS SELECT * from 고객 WHERE 등급 IN ('gold', 'vip') WITH CHECK OPTION; CREATE or REPLACE VIEW 단골회원(ID, 이름, 나이, 등급) AS SELECT 고객아이디, 고객이름, 나이, 등급 from 우수회원 W..
SQL - DML(SELECT)
SELECT 데이터 검색 ALL ‒ 결과 테이블이 튜플의 중복을 허용하도록 지정, 생략 가능 DISTINCT ‒ 결과 테이블이 튜플의 중복을 제거하도록 지정 * DISTINCT와 집계함수 같이 쓰려고 할 때 SELECT count(distinct name) from animal_ins where name is not NULL * 시간의 FORMAT을 바꾸는 법 SELECT DATE_FORMAT(DATETIME, "%H") as HOUR, COUNT(DATE_FORMAT(DATETIME, "%H")) as COUNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR >= 9 AND HOUR < 20 ORDER BY HOUR ASC; YEAR YEAR(기준 날짜); MONTH MO..
SQL - DML(JOIN, SELECT 응용)
SELECT JOIN - 각각 독립적인(분리된) 테이블을 읽을 때, 그 테이블이 하나의 테이블로 저장되어 있었던 것과 같은 효과 - 같은 이름의 속성이 서로 다른 테이블에 존재할 수 있기 때문에 속성 이름 앞에 해당속성이 소속된 테이블의 이름을 표시 => EX) 주문.주문고객 FROM 절 : 검색에 필요한 모든 테이블을 나열 WHERE 절 : 공통속성(조인 속성)에 ‘=‘ 적용 * 판매 데이터베이스에서 banana 고객이 주문한 제품의 이름을 검색 * 판매 데이터베이스에서 나이가 30세 이상의 고객이 주문한 제품의 주문제품과 주문일자를 검색 with recursive time as (select 0 as hour union all select hour + 1 from time where hour < 23..
SQL - DML(INSERT, UPDATE, DELETE)
INSERT 데이터 삽입 속성 리스트를 생략하면 테이블을 정의할 때 지정한 속성의 순서대로 값이 삽입됨 INTO 절의 속성 이름과 VALUES 절의 속성 값은 순서대로 일대일 대응되어야 함 부분적 Column에 데이터 삽입을 할 때 속성 리스트를 생략시 NULL 표기 부속 질의문을 이용해 SELECT문의 결과를 삽입 UPDATE 데이터 수정 WHERE 절에 제시된 조건을 만족하는 튜플에 대해서만 속성 값을 수정 WHERE 절을 생략하면 테이블에 존재하는 모든 튜플을 대상으로 수정 * 제품 테이블에 있는 모든 제품의 단가를 10% 인상 * 정소화 고객이 주문한 제품의 주문수량을 5개로 수정 DELETE 데이터 삭제 WHERE 절에 제시한 조건을 만족하는 튜플만 삭제 WHERE 절을 생략하면 테이블에 존재하..
데이터베이스의 목적
스프레드시트 vs 데이터베이스 공통점 - MySQL과 같이 관계형 데이터베이스의 중요한 특징은 스프레드시트와 마찬가지로 데이터를 표의 형태로 표현해준다는 것 - 공통점에 걸맞게 그 두 가지의 기능이 서로 거의 비슷함 차이점 - 데이터베이스는 코딩을 통해서 컴퓨터 언어를 통해서 제어할 수 있음 - 데이터베이스는 마치 사람과 대화하는 것처럼 말을 거는 것 스프레드시트와 MySQL과 같은 관계형 데이터베이스의 아주 중요한 차이점 - 스프레드시트는 사용자가 클릭해서 데이터를 조작한다면 관계형 데이터베이스는 SQL이라고 하는 컴퓨터 언어를 이용해서 데이터를 제어할 수 있음 - 데이터베이스를 구축하면 이런 특성을 이용해서 데이터베이스에 저장된 데이터를 웹을 통해서 사람들에게 공유할 수도 있고, 앱을 통해서도 공유할..
데이터베이스에 대해
Database - 매우 방대한 기능을 가지고 있는 정보 도구 - 기능이 방대한 것은 데이터 관련해서 일어날 수 있는 일들이 많기 때문 어떤 데이터베이스를 만나든 제일 먼저 해야 할 것은 데이터베이스의 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것 - input & output -- 입력 : 데이터의 생성, 수정, 삭제 -- 출력 : 데이터의 읽기 - 이 네 가지 작업을 CRUD라고 부름 - 그 외 복잡한 기능들은 CRUD를 보좌하는 부가적인 기능들에 불과 +---------+ | input | +---------+ | Create | | Update | | Delete | +---------+ +---------+ | output | +---------+ | Read | +---------+..