MySQL 26

UNION 연산자

UNION 연산자는 SQL 에서 여러 SELECT 구문의 결과를 하나의 결과 집합으로 결합할 때 사용된다.즉, 서로 다른 테이블이나 같은 테이블의 다른 조건에서 검색된 데이터를 하나의 결과로 볼 수 있도록 하기 위해 사용한다.기능 : UNION은 두 개 이상의 SELECT 결과를 결합한다.조건 : 모든 SELECT 문은 동일한 수의 열을 가져야 하며, 열의 데이터 타입이 호환 가능해야 한다.중복 제거 : 기본적으로 UNION은 중복된 행을 제거한다.중복 포함 : 중복된 행을 포함하려면 UNION ALL을 사용한다.사용 예시SELECT name, email FROM customersUNIONSELECT name, email FROM suppliers;-------------------------------..

MySQL 2024.07.10

제 3정규형(Third Normal Form, 3NF)

제 3정규형제 3정규형(Third Normal Form, 3NF)는 데이터베이스 테이블이 제 2정규형을 만족하며, 추가적으로 모든 비기본 키 속성이 기본 키에만 종속되고 기본 키가 아닌 다른 속성에는 종속적이지 않아야 한다. 이를 '이행적 종속성이 없어야 한다.'고 한다. 이행적 종속이란 A → B , B → C 의 종속 관계에서 A가 B에 종속되고, B가 C에 종속될 때, 간접적으로 A가 C에 종속되는 관계를 말한다.  제 3 정규형을 만족하지 못하는 예제학생ID학생 이름과목코드과목명교수ID교수 이름1홍길동MAT101수학101김교수2이순신ENG101영어103박교수 학생 성적 테이블 학생 성적 테이블이 제 3정규형(3NF)을 만족하도록 설계하기 위해 이행적 종속성을 제거해야 한다. 현재 테이블에서 교수 ..

MySQL 2024.07.10

제 2정규화(Second Normal Form, 2NF)

제 2 정규형(2NF) 1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 한다. 즉, 기본 키의 일부에만 종속된 속성이 없어야 한다.   2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키이다. 수강 정보 테이블학생ID과목코드과목명담당교수1MAT101수학김교수1SCI101과학이교수2MAT101수학김교수2ENG101영어박교수 위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있다. 즉, 학생ID와는 직접적인 관련이 없다. 2NF 문제 해결 2NF를 만족시키기 위해 부분 종속성을 제거해야 한다. 이를 위해 위 테이블을 분해하여 부..

MySQL 2024.07.08

제 1정규화(First Normal Form, 1NF)

테이블(Relation)이 제 1 정규형을 만족했다는 것은 아래 세 가지 조건을 만족했다는 것을 의미한다.어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다.모든 attribute에 반복되는 그룹(repeating group)이 나타나지 않는다.기본 키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다. 1. 원자값이 아닌 데이터제 1정규형의 첫 번째 조건은 모든 도메인이 원자값으로 구성되어야 한다는 것원자값이 아닌 예 (수강과목) 학생ID 이름 수강 과목 1홍길동수학, 과학2이순신역사, 미술, 음악 위 표에서 '수강 과목' 필드에 여러 과목이 쉼표로 구분되어 들어가 있어, 이 필드가 원자값이 아님.  2. 반복 그룹이 있는 데이터제 1정..

MySQL 2024.06.13

서브 쿼리(subquery)

서브 쿼리(subquery)SQL 문장 내에서 다른 SQL 쿼리를 내포하는 구문 : 서브쿼리는 보통 소괄호 ( ) 안에 작성되며, 메인 쿼리 (main query) 또는 외부 쿼리 (outer query) 라고 하는 더 큰 SQL 쿼리의 일부로 존재한다.서브쿼리는 메인 쿼리에 의해 반환된 데이터를 기반으로 추가적인 조건을 적용하거나, 메인 쿼리의 조건을 정의하는 데 사용된다. 서브쿼리 문법의 형태select * from reservationwhere name in( select name from customer where address ='서울' );  서브쿼리를 사용하는 이유복잡성 감소 : 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누어 처리할 수 있다.재사용성 : 같은 서브쿼리를 여러 쿼리에서 ..

MySQL 2024.06.13

쇼핑몰 서비스의 DB 구축

테이블 설계 User Table Field Type Constraints description idINTpk, auto..사용자 고유 IDusernameVARCHAR(50)not null사용자 이름emailVARCHAR(100)not null, Unique이메일 주소passwordVARCHAR(255)not null비밀번호addressVARCHAR(255)-주소created_atTIMESTAMPDefault CURRENT_TIMESTAMP계성 생성 시간 Product Table Field Type Constraints description idintpk, auto..식별자namevarchar(100)not null상품 이름descriptionTEXT-상품 설명priceDECIMARL(10, 2..

MySQL 2024.06.12

SELF JOIN

SELF JOIN하나의 테이블 내에서 자기 자신을 조인 하는 것을 의미.이는 동일한 테이블에서 서로 다른 행을 비교하고 조작하는 데 사용된다.Self join을 사용하면 동일한 열을 가진 두 개의 서로 다른 인스턴스 간의 관계를 파악하거나 계층적인 구조를 나타낼 때 유용하다.예를 들어, 조직 구조에서 각 직원이 직속 상급자의 정보를 확인해야 할 때, self join을 사용할 수 있다.각 직원은 같은 테이블에 저장되어 있지만, 상급자와 직속 부하 직원 간의 관계를 파악하기 위해 자기 자신과의 조인을 수행한다.   Column Name Data Type Description employee_idINT직원의 식별자employee_nameVARCHAR직원의 이름employee_phoneVARCHAR직원의 ..

MySQL 2024.06.12

정규화(1단계)

정규화데이터베이스에서 정규화는 데이터를 조직화하고 중복을 최소화하기 위해 데이터베이스 테이블의 설계를 시스템적으로 개선하는 과정이다.정규화를 통해 데이터의 무결성과 일관성을 유지하면서 효율적인 데이터 관리가 가능해진다. 정규화(Nomalization)의 기본 목표테이블 내에서 발생할 수 있는 데이터의 중복을 최소화하여 이상 현상을 방지하고, 데이터 무결성을 유지하는 것이다.데이터의 무결성(Integrity)은 데이터베이스 관리 시스템에서 데이터의 정확성, 일관성 및 신뢰성을 유지하는 특성을 말한다.데이터베이스 내의 정보가 정확하고 일관된 상태로 유지되고 시스템에서 정의한 규칙, 제약 조건, 비즈니스 규칙을 준수하여 데이터의 품질을 보장하며, 응용 프로그램과 사용자가 신뢰할 수 있는 데이터에 접근할 수 있..

MySQL 2024.06.11

DML, DDL, DCL

DML(Data Manipulation Language) - 데이터 조작어데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어SELECT INSERTUPDATEDELETE DDL(Data Definition Language) - 데이터 정의어테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어CREATEALTERDROPRENAMETRUNCATE : TRUNCATE 는 SQL에서 사용하는 명령어로, 테이블의 모든 데이터를 빠르고 효율적으로 삭제하는데 사용된다.TRUNCATE 명령어는 테이블 내의 데이터를 삭제할 때 DELETE 명령어보다 훨씬 빠르게 작동하며, 주로 테이블을 재사용하기 위해 데이터를 초기화 할 때 사용된다.TR..

MySQL 2024.06.11