데이터베이스 12

12. NoSQL - 패스트캠퍼스 백엔드 부트캠프 3기

1. NoSQL DBMSNoSQL = Not Only SQL데이터가 표의 형태만이 아닌 다양한 형태로 저장될 수 있음2. mongoDBdocument단위로 저장자주 저장되는 데이터를 document 형태로 함께 저장뷰, 인덱스와 같이 MySQL의 기능도 포함되어 있다.document가 모여 collection이 되고, collection이 모여 데이터베이스를 이룬다.특징빅데이터 처리에 특화유연한 구조, 높은 확장성데이터베이스 조회show dbs데이터베이스 생성/사용use test컬렉션 생성db.createCollection("hellomongo")데이터베이스 삭제db.dropDatabase()단일 데이터 삽입db.collection.insertOne()다수의 데이터 삽입db.collection.inser..

데이터베이스 2025.01.20

11. 효율적 쿼리_JOIN - 패스트캠퍼스 백엔드 부트캠프 3기

1. JOIN관계형 데이터베이스의 핵심 : 여러 개의 테이블을 하나로 묶는 방법2. JOIN의 종류INNER JOIN : 교집합(테이블1과, 테이블2의 결합 조건을 모두 만족하는 데이터만을 선택해 결합)SELECT 열명FROM 테이블명1 INNER JOIN 테이블명2 ON 결합조건 SELECT customers.name, customers.age, customers.address, orders.id, orders.product_id, orders.quantity, orders.amountFROM customersINNER JOIN ordersON customers.id = orders.customer_id;OUTER JOINLEFT OUTER JOIN..

데이터베이스 2025.01.20

10. 효율적 쿼리_뷰 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 뷰(view)SELECT의 결과로 만들어지는 가상의 테이블쿼리 단순화 가능모든 데이터를 보여줄 필요가 없어짐# 뷰 생성USE VIEW 뷰이름 AS SELECT 문;# 뷰 삭제DROP VIEW 뷰이름; 2. 뷰에 대한 작업 제한조회는 제한이 없을지 모르나 삽입, 수정, 삭제 등은 안될 '수도' 있다.예제CREATE DATABASE IF NOT EXISTS example;USE example;CREATE TABLE IF NOT EXISTS users( id INT AUTO_INCREMENT PRIMARY KEY, person VARCHAR(255) NOT NULL, age INT, city VARCHAR(255), email VARCHAR(255) NOT NULL);INSER..

데이터베이스 2025.01.19

9. 효율적 쿼리_인덱스 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 인덱스테이블을 더 빠르게 조회하기 위한 참조 수단(책의 '찾아보기'와 유사)실무에서 매우 빈번히 사용 for 검색 속도 향상열 단위로 사용테이블을 가리키는 대상이기에 테이블 삭제되면 같이 삭제2. 인덱스의 부작용인덱스를 저장할 추가적인 저장 공간 필요인덱스 작성 시간도 있다 : 행 데이터가 너무 많으면 이 시간이 오래 걸릴 수 있음검색(SELECT)가 아닌 작업(INSERT, UPDATE, DELETE)시 성능 악화3. 인덱스의 종류클러스터형 인덱스(Clustered index)PRIMARY KEY(우선 지정) / UNIQUE + NOT NULL 제약 조건 지정 시 자동 생성테이블 당 하나행 데이터가 인덱스로 지정된 데이터에 대해 자동 정렬보조 인덱스(Secondary index)테이블당 여러 개 ..

데이터베이스 2025.01.19

8. 데이터 삭제_DELETE - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 삭제 - DELETE조건에 맞는 데이터 삭제DELETE FROM 테이블명 WHERE 조건식;테이블의 모든 데이터 삭제DELETE FROM 테이블명;예제-- CUSTOMERS테이블 생성CREATE TABLE customers( customer_id INT PRIMARY KEY, customer_name VARCHAR(255) NOT NULL);-- 데이터 삽입INSERT INTO customers (customer_id, customer_name) VALUES (1, '고객1'), (2, '고객2'), (3, '고객3'), (4, '고객4'), (5, '고객5'), (6, '고객6');SELECT * FROM customers;DELETE FROM c..

데이터베이스 2025.01.19

7. 데이터 수정_UPDATE - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 수정 - UPDATEUPDATE 테이블 SET 열=값, 열=값 [WHERE 조건식];WHERE를 이용해 특정 행을 식별(조건에 일치하는 모든 행을 대상으로 업데이트)WHERE가 생략된 경우 모든 행이 갱신SET에 사용된 =는 대입 연산예제CREATE DATABASE example;USE example;SHOW DATABASES;CREATE TABLE categories( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY(id));CREATE TABLE products( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, cate..

데이터베이스 2025.01.19

6. 데이터 조회_세부적으로 검색하기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 조회 - 세부적으로 검색하기연산 및 집계 함수COUNTSUMAVGMAXMINSELECT COUNT(*) FROM products; // products의 행의 갯수SELECT SUM(price) FROM products; // products안의 price의 총 합SELECT AVG(price) FROM products; // price의 평균SELECT MAX(price) FROM products; // price의 최댓값SELECT MIN(price) FROM products; // price의 최소값SELECT COUNT(*) FROM products;SELECT COUNT(*) AS number_of_data FROM products; # 별명 붙이기SELECT COUNT(*) AS..

데이터베이스 2025.01.18

5. 데이터 조회_SELECT - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 조회 - SELECTSELECT의 핵심 : 순서SELECT 컬럼 - 열명 FROM 테이블 WHERE 조건 GROUP BY 그룹화할_컬럼 HAVING 필터_조건 ORDER BY 정렬할_컬럼 ;예제DROP DATABASE example;CREATE DATABASE example;USE example;SHOW DATABASES;CREATE TABLE categories( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY(id));CREATE TABLE products( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) N..

데이터베이스 2025.01.17

4. 데이터 입력_INSERT - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 입력 - INSERTCREATE TABLE직후에는 아무런 행도 없는 상태CREATE TABLE users( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, birthdate DATE, registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP);DESC users;SELECT * FROM users; // 조회 명령어데이터 추가하기 : INSERTINSERT INTO 테이블이름 VALUES (값1, 값2, ...);# 모든 열 지정INSERT INTO users VALUES (1, 'user1', 'us..

데이터베이스 2025.01.17

3. 데이터베이스 생성과 관리 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터베이스(스키마)MySQL에서는 데이터베이스를 스키마(Schema)로 표현데이터베이스(스키마) 안에 여러 테이블이 포함됨데이터베이스(스키마) 생성CREATE DATABASE DBNAME;데이터베이스(스키마) 조회SHOW DATABASES;데이터베이스(스키마) 사용USE DBNAME;데이터베이스(스키마) 삭제DROP DATABASE DBNAME;테이블 생성CREATE TABLE 테이블이름 ( 열이름1 자료형, [DEFAULT 기본값] [NULL|NOT NULL], 열이름2 자료형, [DEFAULT 기본값] [NULL|NOT NULL], ...);자료형숫자형TINYINT : 1바이트의 정수(-128~127)SMALLINT : 2바이트의 정수(-32768~32767)MEDIUMINT ..

데이터베이스 2025.01.17