MySQL/MySQL 활용

💡 학습 목표UNION 연산자에 대한 개념을 이해하자. UNION 연산자와 JOIN에 차이점을 이해하자. UNION 연산자UNION 연산자는 SQL에서 여러 SELECT 문의 결과를 하나의 결과 집합으로 결합할 때 사용됩니다. 즉, 서로 다른 테이블이나 같은 테이블의 다른 조건에서 검색된 데이터를 하나의 결과로 볼 수 있도록 하기 위해 사용한다.기능: UNION은 두 개 이상의 SELECT 결과를 결합합니다.조건: 모든 SELECT 문은 동일한 수의 열을 가져야 하며, 열의 데이터 타입이 호환 가능해야 합니다.중복 제거: 기본적으로 UNION은 중복된 행을 제거합니다.중복 포함: 중복된 행을 포함하려면 UNION ALL을 사용합니다.사용 예시SELECT name, email FROM customersU..
💡 제 3정규형(Third Normal Form, 3NF)데이터베이스 테이블이 제 2정규형(2NF)을 만족하며, 추가적으로 모든 비기본 키 속성이 기본 키에만 종속되고 기본 키가 아닌 다른 속성에는 종속적이지 않아야 합니다. 이를 '이행적 종속성이 없어야 한다'고 합니다.이행적 종속이란 A -> B, B -> C의 종속 관계에서 A가 B에 종속되고, B가 C에 종속될 때, 간접적으로 A가 C에 종속되는 관계를 말합니다.  제 3정규형을 만족하지 못하는 예제 학생ID 학생 이름 과목코드 과목명 교수ID 교수 이름학생ID학생 이름과목 코드과목명교수ID교수 이름1홍길동MAT101수학101김교수2이순신ENG101영어103박교수 학생 성적 테이블학생 성적 테이블이 제 3정규형(3NF)을 만족하도록 설계하기 위해..
💡 제2정규형 (2NF)1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 합니다. 즉, 기본 키의 일부에만 종속된 속성이 없어야 합니다. 2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키입니다. 수강 정보 테이블학생ID 과목코드 과목명 담당 교수학생ID과목코드과목명담당교수1MAT101수학김교수1SCI101과학이교수2MAT101수학김교수2ENG101영어박교수위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있습니다. 즉, 학생ID와는 직접 적인 관련이 없습니다.  2NF 문제 해결2NF를 만족시키기 위해 부분 종속성을 제거해..
테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미합니다.어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다.모든 attribute에 반복되는 그룹(repeating group)이 나타나지 않는다.기본 키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다.1. 원자값이 아닌 데이터제 1정규형의 첫 번째 조건은 모든 도메인이 원자값으로 구성되어야 한다는 것원자값이 아닌 예 (수강 과목)학생ID 이름수강 과목1홍길동수학, 과학2이순신역사, 미술, 음악위 표에서 '수강 과목' 필드에 여러 과목이 쉼표로 구분되어 들어가 있어, 이 필드가 원자값이 아님. 2. 반복 그룹이 있는 데이터제 1정규형의 두 번..
subquery란?서브쿼리(subquery)는 SQL 문장 내에서 다른 SQL 쿼리를 내포하는 구문입니다.  서브쿼리의 개념서브쿼리는 보통 소괄호 () 안에 작성되며, 메인 쿼리(main query) 또는 외부 쿼리(outer query)라고 하는 더 큰 SQL 쿼리의 일부로 존재합니다. 서브쿼리는 메인 쿼리에 의해 반환된 데이터를 기반으로 추가적인 조건을 적용하거나, 메인 쿼리의 조건을 정의하는 데 사용됩니다. 문법에 형태 살펴 보기select * from reservationwhere name in( select name from customer where address ='서울' );  서브쿼리를 사용하는 이유복잡성 감소: 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누어 처리할 수 있습니다.재..
tb_categories 테이블Field NameData TypeescriptionConstraintsExample Valuescategory_idINT카테고리의 고유 IDPRIMARY KEY, AUTO_INCREMENT1, 2, 3parent_idINT상위 카테고리의 IDFOREIGN KEY, NULL 가능NULL, 1category_nameVARCHAR(100)카테고리 이름NOT NULL"남성복", "팬츠", "셔츠" category_idparent_idcategory_name1NULL남성복2NULL여성복31팬츠42팬츠51셔츠62셔츠73면바지 (남성복 →팬츠 → 면바지)84면바지 (여성복 → 팬츠 → 면바지)93슬랙스 (남성복 →팬츠 → 슬랙스 )104슬랙스(여성복→팬츠 → 슬랙스 ) create d..
tb_categoriesField NameData Type Descriptionvaluecategory_idint카테고리 고유 ID1, 2, 3, 4,category_namevarchar(100)카테고리 이름“상의”, “하의”, “외투” 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..
User 테이블 명세서Board 테이블 명세서Reply 테이블 명세서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 create table board( id int primary key auto_increment, userId int, title varchar(100) no..
User Table FieldTypeConstraintsdescriptionidINTpk, auto..사용자 고유 IDusernameVARCHAR(50)not null사용자 이름emailVARCHAR(100)not null, Unique이메일 주소passwordVARCHAR(255)not null비밀번호addressVARCHAR(255)-주소created_atTIMESTAMPDefault CURRENT_TIMESTAMP계성 생성 시간     Product Table Field Type Constraintsdescriptionidintpk, auto..식별자namevarchar(100)not null상품 이름descriptionTEXT-상품 설명priceDECIMARL(10, 2)not null가격stoc..
💡Self JoinSelf join은 하나의 테이블 내에서 자기 자신을 조인하는 것을 의미합니다. 이는 동일한 테이블에서 서로 다른 행을 비교하고 조작하는 데 사용됩니다. Self join을 사용하면 동일한 열을 가진 두 개의 서로 다른 인스턴스 간의 관계를 파악하거나 계층적인 구조를 나타낼 때 유용합니다.예를 들어, 조직 구조에서 각 직원이 직속 상급자의 정보를 확인해야 할 때 self join을 사용할 수 있습니다. 각 직원은 같은 테이블에 저장되어 있지만, 상급자와 직속 부하 직원 간의 관계를 파악하기 위해 자기 자신과의 조인을 수행합니다.  Column NameData TypeDescriptionemployee_idINT직원의 식별자employee_nameVARCHAR직원의 이름employee_..
CNOW
'MySQL/MySQL 활용' 카테고리의 글 목록