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

제 3정규형(Third Normal Form, 3NF)은 데이터베이스 테이블이 제 2정규형(2NF)을 만족하며, 추가적으로 모든 비기본 키 속성이 기본 키에만 종속되고 기본 키가 아닌 다른 속성에는 종속적이지 않아야 합니다. 이를 '이행적 종속성이 없어야 한다'고 합니다. 이행적 종속이란 A -> B, B -> C의 종속 관계에서 A가 B에 종속되고, B가 C에 종속될 때, 간접적으로 A가 C에 종속되는 관계를 말합니다. 제 3정규형을 만족하지 못하는 예제 학생 성적 테이블학생 성적 테이블이 제 3정규형(3NF)을 만족하도록 설계하기 위해 이행적 종속성을 제거해야 합니다.현재 테이블에서 교수 이름은 교수ID에 의존적이며, 이는 과목코드에도 간접적으로 의존적인 관계입니다.따라서 이러한 이행적 종속성을..

제2정규형 (2NF): 1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 합니다. 즉, 기본 키의 일부에만 종속된 속성이 없어야 합니다. 2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키입니다. 위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있습니다. 즉, 학생ID와는 직접 적인 관련이 없습니다. 2NF 문제 해결2NF를 만족시키기 위해 부분 종속성을 제거해야 합니다. 이를 위해 위 테이블을 분해하여 부분적 종속성을 제거할 수 있습니다. 수강 정보 테이블: 학생ID, 과목코드과목 정보 테이블: 과목코드, 과목명, 담..
서브쿼리의 개념SQL 문장 내에서 다른 SQL 쿼리를 내포하는 구문입니다.보통 소괄호 ( ) 안에 작성되며, 메인 쿼리(main query) 또는 외부 쿼리(outer query)라고 하는 더 큰 SQL 쿼리의 일부로 존재합니다.메인 쿼리에 의해 반환된 데이터를 기반으로 추가적인 조건을 적용하거나, 메인 쿼리의 조건을 정의하는 데 사용됩니다. 서브쿼리를 사용하는 이유복잡성 감소: 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누어 처리할 수 있습니다.재사용성: 같은 서브쿼리를 여러 쿼리에서 재사용할 수 있어, 코드의 중복을 줄이고 유지 보수를 용이하게 합니다.명확성: 데이터의 특정 부분에 대해 명확한 조건을 설정할 수 있으며, 읽기 쉽고 이해하기 쉬운 쿼리를 작성할 수 있습니다. 서브 쿼리의 종류서브쿼..

1단계 Table 설계 및 Data 입력use mydb3;create table tb_categories( category_id int auto_increment primary key, category_name varchar(100) not null);insert into tb_categories(category_name) values('상의');insert into tb_categories(category_name) values('하의');insert into tb_categories(category_name) values('외투');create table tb_products( product_id int auto_increment primary key, product_name v..
DB 및 Table 생성create database m_board;use m_board;create table user( id int primary key auto_increment, username varchar(100) not null unique, -- 닉네임(중복 검사 가능) password varchar(255) not null, email varchar(100) not null, userRole varchar(20), createDate timestamp);-- board table(게시글), reply table(댓글) (1 : N)create table board( id int primary key auto_increment, userId int,..

주문(orders) 테이블과 주문 상세(order_details) 테이블을 분리하여 설계한 이유는?=> 데이터베이스 정규화 원칙에 기반한 것 정규화는 데이터베이스 설계에서 중요한 과정으로, 데이터 중복을 최소화하고, 데이터 무결성을 향상시키며,수정, 삽입, 삭제 등의 데이터베이스 작업 시 발생할 수 있는 문제점들을 방지하기 위해 사용됩니다. 주문과 주문 상세 테이블 분리의 목적 중복 제거: 주문 정보와 주문 상세 정보를 하나의 테이블로 관리할 경우, 주문 정보(예: 주문자 ID, 주문 날짜)가 각 주문 상품마다 반복적으로 저장됩니다. 이는 데이터 중복을 초래하고, 디스크 공간을 불필요하게 사용하게 합니다. create table User( id int primary key auto_incr..
Self join은 하나의 테이블 내에서 자기 자신을 조인하는 것을 의미합니다. 이는 동일한 테이블에서 서로 다른 행을 비교하고 조작하는 데 사용됩니다. Self join을 사용하면 동일한 열을 가진 두 개의 서로 다른 인스턴스 간의 관계를 파악하거나 계층적인 구조를 나타낼 때 유용합니다. 예를 들어, 조직 구조에서 각 직원이 직속 상급자의 정보를 확인해야 할 때 self join을 사용할 수 있습니다. 각 직원은 같은 테이블에 저장되어 있지만, 상급자와 직속 부하 직원 간의 관계를 파악하기 위해 자기 자신과의 조인을 수행합니다. create table employees( employee_id int, employee_name varchar(255), employee_phone varc..

정규화데이터베이스에서 정규화는 데이터를 조직화하고 중복을 최소화하기 위해 데이터베이스 테이블의 설계를 시스템적으로 개선하는 과정입니다. 정규화를 통해 데이터의 무결성과 일관성을 유지하면서 효율적인 데이터 관리가 가능해집니다 정규화(Normalization)의 기본 목표테이블 내에서 발생할 수 있는 데이터의 중복을 최소화하여 이상 현상을 방지하고, 데이터 무결성을 유지하는 것입니다. 데이터의 무결성(Integrity)은 데이터베이스 관리 시스템에서 데이터의 정확성, 일관성 및 신뢰성을 유지하는 특성을 말합니다. 데이터베이스 내의 정보가 정확하고 일관된 상태로 유지되고 시스템에서 정의한 규칙, 제약 조건, 비즈니스 규칙을 준수하여 데이터의 품질을 보장하며, 응용 프로그램과 사용자가 신뢰할 수 있는 데이터에 ..
DML 이란?(Data Manipulation Language) - (데이터 조작어)데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말한다.SELECT INSERTUPDATEDELETE DDL 이란?(DDL : Data Definition Language) - (데이터 정의어)테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말한다.CREATEALTERDROPRENAMETRUNCATE: TRUNCATE는 SQL에서 사용하는 명령어로, 테이블의 모든 데이터를 빠르고 효율적으로 삭제하는 데 사용됩니다. TRUNCATE 명령어는 테이블 내의 데이터를 삭제할 때 DELETE 명령어보다 훨씬 빠르게 작동하며, 주로 테이..