데이터베이스 8

Group by & Having 절

Group by & Having 절 GROUP BY 절은 특정 열을 기준으로 결과를 그룹화합니다. HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹에 대한 조건을 지정합니다. HAVING 절은 일반적으로 집계 함수와 함께 사용되어 그룹화된 결과에서 필터링을 수행합니다. HAVING 절은 WHERE 절과 유사하지만, WHERE 절은 개별 행을 필터링하고, HAVING 절은 그룹을 필터링합니다. [예시 1] SELECT c.first_name, c.last_name, count(*) FROM customer c INNER JOIN rental r ON c.customer_id = r.customer_id GROUP BY c.first_name, c.last_name HAVING count(*) >..

SQL 2024.01.10

Tables 테이블 유형2: 임시 테이블

Tables 테이블 유형2: 임시 테이블 SQL에서 임시 테이블은 일시적으로 데이터를 저장하고 처리하기 위한 임시적인 데이터 저장소입니다. 이러한 테이블은 쿼리 실행 도중에만 존재하며, 세션 종료 시에는 자동으로 삭제됩니다. 임시 테이블은 주로 중간 결과를 저장하거나 복잡한 쿼리를 단순화하기 위해 사용됩니다. 임시 테이블을 생성하려면 다양한 방법이 있습니다. 가장 일반적인 방법은 CREATE TEMPORARY TABLE 문을 사용하는 것입니다. 예를 들어: CREATE TEMPORARY TABLE temp_table ( column1 INT, column2 VARCHAR(255) ); 임시 테이블에 데이터 삽입 INSERT INTO temp_table (column1, column2) V..

SQL 2023.12.18

Tables 테이블 유형1: 파생 테이블

Tables 테이블 유형1: 파생 테이블 SQL에서 테이블은 데이터베이스에 저장된 일련의 행 집합입니다. 하지만 관련 행들의 집합의 저장 형태에 따라 테이블을 나눌수 있습니다. 영구 테이블(permanent table): create table 문으로 생성 파생 테이블(derived table): 하위 쿼리에서 반환하고 메모리에 보관 임시 테이블(temporary table): 메모리에 저장된 휘발성 데이터 가상 테이블(virtual table): create view 문으로 생성 파생 테이블 서브쿼리는 다른 상위 쿼리가 참조하는 쿼리로 괄호로 묶여 있으며 select 문에서 찾을 수 있습니다. 그러나 from 절 내에서의 서브쿼리는 from 절에 명시된 다른 쿼리의 테이블과의 상호작용이 가능합니다. S..

SQL 2023.12.16

Sakila 샤키라 예시

MySQL에 입문하시는 분들을 위한 연습용 데이터베이스는 샤키라(Sakila)를 추천 드립니다. 해당 데이터베이스는 DVD 대여점 체인을 설계하였습니다. 테이블 구성으로 customer, film, actor, payment, rental 그리고 category가 포함 되어 있습니다. 샤키라 예시를 다루기 위한 몇가지 쿼리 절입니다. SELECT ⇒ 쿼리 결과에 포함할 열을 결정합니다. FROM ⇒ 데이터를 검색할 테이블과, 테이블을 조인하는 방법을 식별합니다. WHERE ⇒ 불필요한 데이터를 걸러냅니다. GROUP BY ⇒ 공통 열 값을 기준으로 행을 그룹화합니다. HAVING ⇒ 불필요한 그룹을 걸러냅니다. ORDER BY ⇒ 하나 이상의 열을 기준으로 최종 결과의 행을 정렬합니다. SELECT 문 ..

SQL 2023.12.14

SQL table 테이블 수정

이번 장에서는 지난번에 설계한 person과 favorite_food 테이블을 활용하여 insert, update, delete, select 등을 사용하여 테이블의 데이터를 수정해 보도록 하겠습니다. ALTER TABLE 테이블 데이터 수정 전 데이터를 추가 할 때 person_id의 값이 null인 경우 person_id에서 사용 가능한 값 다음으로 넣어주는 기능입니다. 이를 ‘auto_increment’라고 합니다. ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT INSERT 문 INSERT INTO person (person_id, fname, lname, eye_color, birth_date) VALUES (null, ..

SQL 2023.12.13

SQL table 테이블 생성 2

SQL table 테이블 생성 지난번 ‘SQL table 테이블 생성 1’에서 사람과 좋아하는 음식에 대한 두 테이블 설계를 했었습니다. 이번장에서는 설계한 테이블에 이어서 SQL문을 만들어 데이터베이스에 테이블을 만들어 보겠습니다. CREATE TABLE person (person_id SMALLINT UNSIGNED, Fname VARCHAR(20), lname VARCHAR(20), eye_color CHAR(2), birth_date DATE, street VARCHAR(30), city VARCHAR(20), state VARCHAR(20), country VARCHAR(20), postal_code VARCHAR(20), CONSTRAINT pk_person PRIMARY KEY (person..

SQL 2023.12.11

Numerical Data 숫자 데이터

Numerical Data 숫자 데이터 숫자 데이터는 단일 숫자 자료형을 갖을수 있지만 실제로는 다양한 방식으로 반영이 가능합니다. 예시는 다음과 같습니다. 고객 주문의 배송 여부를 나타내는 열: 불리언 (boolean) 데이터라는 열은 false를 나타내는 0과 true를 나타내는 1 고객의 온라인 장바구니 품목 번호: 1부터 200 까지 등의 양의 정수 트랜잭션 테이블의 시스템 생성 기본 키: 1에서 시작하여 매우 큰 수까지 1씩 증가 회로 기판 드릴 기계의 위치 데이터: 제조 데이터 등은 소수점 8자리까지 정확도가 필요 정수를 저장할 때 사용되는 5가지 자료형 자료형 부호 있는 정수 저장값의 범위 부호 없는 정수 저장값의 범위 tinyint -128 부터 127 0 부터 255 smallint -3..

SQL 2023.12.10

SELECT, FROM, WHERE 절

SELECT, FROM, WHERE 절 쿼리를 시작할 때 데이터를 가지고오자 하는 테이블을 정하고 FROM 절을 추가합니다. 그런 다음 원하고자 하는 테이블의 데이터만 가져오기 위해서 WHERE 절을 사용합니다. 마지막으로 선택한 테이블에서 가져올 열을 결정하고 SELECT 절에 추가합니다. 예시는 다음과 같습니다. SELECT cust_id, fname FROM individual WHERE lname = ‘Brown’; 이 쿼리는 lname 열이 ‘Brown’과 일치하는 모든 행을 individual 테이블에서 찾아 해당 행에서 cust_id와 fname 열만을 반환합니다. INSERT, UPDATE 절 위와 같이 테이블과 열을 선택하여 WHERE 절을 사용해 구체적으로 찾고자하는 데이터를 반환할 수..

SQL 2023.12.09