MySQL 23

(DB) SQL 쿼리의 일반적인 처리 순서 - 23

SQL 쿼리 실행 순서 SQL 쿼리는 작성 순서와 실행 순서가 다릅니다. 아래는 쿼리가 실제로 처리되는 논리적 실행 순서입니다. 각 절의 역활과 처리 방식을 자세히 설명합니다.1. FROM 절-쿼리의 첫 단계로, 데이터를 가져올 테이블 ( 또는 뷰)을 지정합니다. 여러 테이블을 사용할 경우 , 조인(JOIN)을통해 결합 방식을 정의합니다. 이 단계에서 모든 행과 열을 포함하는 가상 테이블이 생성됩니다. 2. ON 절-조인(JOIN)이 사용될 때, 테이블 간의 결합 조건을 정의합니다. 예를 들어 , 두 데이블의 특정 열 값이 일치해야 결합되도록 조건을 설정합니다. 이 절은 조인된 행을 결정합니다. 3. JOIN - from 절에서 지정된 테이블들을 ON 절의 조건에 따라 결합합니다. INNER J..

MySQL 2025.05.16

(GB) GROUP BY 와 HAVING 절 - 22

더보기1.GROUP BY 절이란GROUP BY 절은 SQL에서 특정 열의 값에 따라 행 집합을 요약된 그룹으로 나누는데 사용됩니다.주로 집계 함수(SUM, AVG , MAX, MIN , COUNT 등)와 함께 사용되어 각 그룹에 대한 요약 정보를 제공합니다.특징- 데이터를 원하는 그룹으로 나눌 수 있음.-그룹화할 컬럼명을 SELECT 절과 GROUP BY절에 추가.집계 함수와 함께 사용되는 상수는 GROUP BY 절에 포함하지 않아도 됨- 주의 : 비집계 컬럼은 GROUP BY 포함해야 하며, MySQL의 ONLY_FULL_GROUP_BY 모드에서 이를 위반하면 오류 발생 예시 select class, AVG(score) AS AveragescoreFROM tb_studentGROUP BY clas..

MySQL 2025.05.16

(DB) 테이블 복사 및 데이터 추가 - 20

데이터베이스에서 한 테이블의 구조나 데이터를 다른 테이블로 복사하는 작업은 여러 상황에서 유용하게 사용됩니다테이블의 구조만을 복사하거나. 구조와 테이터 모두를 복사할 수 있습니다. 1.테이블 구조만 복사하기 더보기테이블의 구조만을 새로운 테이블로 복사하고자 할 때, 데이터는 복사하지 않고 구조만 생성합니다.create table 새_테이블as select * from 기존_테이블 where 1=0;-- as 는 create table 과 secelt 사이를 연결하는 역활을 합니다.-- 즉, select 쿼리의 결과(컬럼 구도와 데이터)를 새 테이블(새_테이블)의 정의로 사용하도록 사용하도록지시 합니다.-- 테스트create table new_student as select * from tb_studen..

MySQL 2025.05.16

(DB) 트랜잭션 이란 & (COMMIT,ROLLBACK) -19

1.트랜잭션이란?더보기더보기1.트랜잭션이란?트랙잭션은 데이터베이스에서 여러 SQL문을 하나의 작업 단위로 묶어 실행합니다. 모든 작업이 성공해야 적용되며, 하나라도 실패하면 전체가 취소됩니다. 요약-트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위입니다.-여러 SQL 명령어 묶어 "전부 성공"하거나 "전부 실패"하도록 보장합니다.-실행활 예: 은행 송금- A가 B에게 5만 원 송금: A 계좌에서 5만원 감소, B 계좌에서 5만원 증가-두 작업이 모두 성공해야 데이터가 올바름 트랜젹션의 중요성-데이터 무결성 유지 : 부분 성공/실패로 인한 오류 방지- 예: 송금 중 시스템 오류 발생 시, 돈이 사라지거나 중복 지급 되지 않도록 보호 질문 : 트랜잭션이 없다면 은행 송금에서 어떤 문제가 생길까?트랜잭션이..

MySQL 2025.05.16

(DB) MySQL 별칭, 변수 선언, IF 문 - 18

학습 목표- MySQL에서 변수를 선언하고 사용하는 방법, 조건문(if)을 사용하는 방법을 알아보자 1. 별칭(Alias)에 대해서 살펴 보자. 더보기select 100, '반장';select 100 as student_id, 'captain' as title; MySQL에서 AS 키워드는 별칭(Alias)을 지정할 때 사용합니다.즉, 컬럼명이나 테이블명에 별명을 붙여 결과를 더 읽기 쉽게 하거나, 복잡한 표현식을 간단하게 만들 때 사용합니다. |컬럼에 별칭 주기select 100 as student_id, 'captain' as title; | 컬럼에 별칭 주기SELECT s.name FROM students as AS s; | AS 생략 가능SELECT 100 as student_id,'capta..

MySQL 2025.05.16

(DB)MySQL JOIN - 17

테이블에 기준을 FROM 절에 나오는 테이블 기준입니다. JOIN은 두 개 이상의 테이블에서 관련된 데이터를 결합하여 새로운 결과를 생성하는 데이터베이스 연산입니다. 1.1 JOIN이 필요한 이유-데이터베이스는 중복을 최소화하기 위해 데이터를 여러 테이블에 나눠 저장합니다.-실제 사용 시, 분산되 데이터를 통합해야 할 때가 많습니다.-예 : 학생정보(tb_student)와 성적 등급 정보(tb_grade)를 결합하여 학생별 점수를 확인. 1.2 JOIN의 기본 개념 -JOIN은 테이블 간 공통 열(예: 외래 키와 기본 키)을 기준으로 데이터를 결합합니다.-MySQL에서는 INNER JOIN, LEFT JOIN, RIGHT JOIN을 지원하며 ,FULL OUTER JOIN은 지원하지 않습니다. 2. 테..

MySQL 2025.05.14

(DB)관계 차수란? -15

학습 목표-관계형 데이터베이스에서 관계 차수(Relation Degree)의 개념 이해-1:1, 1:N , N:M 관계의 특징과 설계 방법 학습 관계차수란더보기관계 차수 (Relation Degree)는 관계형 데이터베이스에서 두 테이블 간의 관계 복잡성을 나타내는 개념입니다.관계는 테이블 간의 데이터 연결 방식을 정의하며, 주로 1:1(일대일), 1:N(일대다), N:M(다대다)로 나뉩니다. 혼동 주의 (용어 정리)-테이블 차수 : 테이블 내의 컬럼 수 (예 : tb_user의 컬럼 수 = 3)-관계 차수: 두 테이블 간의 관계 유형 (예: 1:1, 1:N, N:M)2. 1:1 (일대일) 관계 예시더보기사람(Person)테이블과 여권(Passport)테이블이 있다고 가정합니다. 사람(person)테..

MySQL 2025.05.13

(DB)MySQL 기초 복습 하기 - 14

학습 목표- MySQL에서 배운 DDL,DML,DCL의 개념 복습- PRIMARY KEY. UNIQUE KEY , FOREIGN KEY, INDEX 활용실습- SELECT, INSERT , UPDATE , DELETE 구문으로 데이터 조작 연습 1. 테스트 환경 설정(샘플 데이터 입력)더보기---> 연습영 데이터베이스 와 테이블을 생성해주세요.-- 데이터베이스 생성CREATE DATABASE shop;USE shop;-- 회원 테이블 생성(PRIMARTY KEY, UNIQUE KEY 사용)CREATE TABLE member ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(100) UNIQUE, name VARCHAR(50) NOT NULL, phone V..

MySQL 2025.05.13