MySQL 28

MySQL Function - 18

ANSI SQL 표준이란? 💡ANSI(미국국가표준협회, American National Standards Institute) 표준은 미국에서 광범위한 산업과 기술 분야에 대해 자발적인 표준을 설정하는 기관입니다. 특히 컴퓨터와 데이터베이스 분야에서 ANSI는 데이터베이스 관리 시스템(DBMS)의 호환성, 일관성, 이식성을 보장하기 위한 표준 SQL(Structured Query Language)을 정의하고 유지 관리합니다.  ANSI SQL 표준의 주요 목표 호환성: 다양한 데이터베이스 시스템 간의 호환성을 보장하여 사용자가 한 시스템에서 다른 시스템으로 쉽게 전환할 수 있도록 합니다. 일관성: SQL 쿼리 언어의 문법과 기능에 대해 일관된 표준을 제공함으로써, 개발자와 사용자가 다양한 시스템에서 일관..

MySQL/MySQL 기본 2024.06.10

테이블 복사 및 데이터 추가 - 17

데이터베이스에서 한 테이블의 구조나 데이터를 다른 테이블로 복사하는 작업은 여러 상황에서 유용하게 사용됩니다. 테이블의 구조만을 복사하거나, 구조와 데이터 모두를 복사할 수 있습니다 . 1. 테이블 구조만 복사하기 테이블의 구조만을 새로운 테이블로 복사하고자 할 때, 데이터는 복사하지 않고 구조만 생성합니다 CREATE TABLE 새_테이블AS SELECT * FROM 기존_테이블 WHERE 1=0;use employees;-- 테이블 복사(구조만 복사) create table dept_emp_copyas select * from dept_emp where 1 = 0; select * from dept_emp_copy;desc dept_emp_copy; 이 쿼리는 기존 테이블의 모든 컬럼을 선택하지만, ..

MySQL/MySQL 기본 2024.06.10

MySQL JOIN - 16

조인(Join) 이란? 데이터베이스에서 조인(Join) 은 두 개 이상의 테이블에서 관련된 데이터를 결합하여 새로운 결과를 생성할 때 사용하는 중요한 연산입니다. Join이 필요한 이유? 데이터베이스에서 정보는 중복을 최소화하고 효율적으로 저장하기 위해 여러 테이블에 분산되어 저장. 실제로 정보를 사용할 때는 여러 테이블에 흩어져 있는 데이터를 통합해야 할 필요가 발생. 예를 들면 어떤 학생이 어떤 수업을 듣고 있는지 알고 싶을 때, '학생' 테이블과 '수업' 테이블을 결합해야만 필요한 정보를 얻을 수 있습니다. 복잡한 질의를 수행하기 위해서는 종종 여러 테이블의 데이터를 결합하고 비교해야 합니다. 조인을 사용하면 이러한 요구사항을 효과적으로 처리할 수 있습니다. ----------------------..

MySQL/MySQL 기본 2024.06.10

관계 차수란? - 15

관계 차수(Relation Degree)는 관계형 데이터베이스에서 사용되는 용어로 테이블 간의 관계를 설명할 때는 '일대일', '일대다', '다대다' 같은 관계를 설명하는 용어입니다.  혼동하지 말자.테이블 차수 - 테이블 내의 컬럼 수를 나타냅니다.관계 차수 - 두 테이블 간의 관계의 복잡성(예: 일대일, 일대다, 다대다)을 나타냅니다.  💡 테이블 간의 관계를 정의하는 방식에는 주로 네 가지 유형이 있습니다.1:1 관계 (One-to-One Relationship)두 개의 테이블에서 각각 하나의 레코드가 서로 직접 매칭되는 관계입니다.이 관계는 보통 서로 다른 테이블의 기본키와 외래키를 사용하여 연결합니다.예: 사용자 테이블과 사용자 상세 정보 테이블, 여기서 각 사용자는 상세 정보와 정확히 하나씩..

MySQL/MySQL 기본 2024.06.10

연습 문제 - 14

앞서 배운내용을 기반으로 아래 문제를 풀어 봅시다.표를 기반으로 테이블을 설계 해주세요.표를 기반으로 데이터를 입력해주세요.직접 쿼리문 작성을 위한 문제를 스스로 만들고 결과를 확인해 주세요(5문제)데이터 베이스 이름은 통일 합시다. (db_movie)테이블 명을 직접 설계 해주세요테이블 스키마를 적절하게 설정아래표를 참고해서 테이블에 데이터를 구축 하세요데이터를 통해 의미 있는 쿼리문 5개를 만들고 결과를 검증하세요가장 괜찮은 문제를 디스코드 일반에 제출하세요  create database db_movie;use db_movie;create table movie ( id int primary key auto_increment, title varchar(10) not null, direc..

MySQL/MySQL 기본 2024.06.10

MySQL에서 인덱스(index)란 - 13

MySQL에서 인덱스(index)는 데이터베이스 테이블의 검색 성능을 향상시키기 위해 사용되는 데이터 구조입니다. 인덱스는 특정 열(Column)에 대한 정렬된 데이터 집합으로, 데이터베이스 엔진이 더 빠르게 데이터를 찾을 수 있도록 도와줍니다. 인덱스는 일종의 색인이며, 테이블의 특정 열에 대한 빠른 검색을 가능하게 합니다.인덱스를 사용하면 데이터베이스 엔진은 테이블을 전체적으로 스캔하는 것보다 더 빠르게 특정 조건에 맞는 행을 찾을 수 있습니다.인덱스를 선언하는 방법 -- 테이블 설계시에 인덱스 제약을 추가 하는 방법 create table student2( id int primary key, name varchar(50) not null, grade int not null, maj..

MySQL/MySQL 기본 2024.06.10

UNIQUE 제약에 이해 - 12

UNIQUE key는 데이터베이스 테이블의 열(Column)에 적용되는 제약 조건입니다. 이를 통해 해당 열의 값들이 고유(unique)하다는 것을 보장합니다. 즉, 중복된 값이 허용되지 않습니다. 또한 UNIQUE 제약 조건은 데이터베이스에서 인덱스(index)를 생성할 때도 사용됩니다. UNIQUE 제약 조건이 설정된 열은 인덱스를 생성할 때 자동으로 인덱스로 지정되어 검색 속도를 높일 수 있습니다.UNIQUE Key의 특징고유한 값 보장: 특정 열에 UNIQUE key가 적용되면 해당 열에 있는 모든 값들이 고유해야 합니다. 즉, 중복된 값을 허용하지 않습니다.NULL 값 허용: 기본적으로 UNIQUE key는 NULL 값을 허용합니다. 즉, 해당 열에는 NULL 값이 최대 하나까지만 허용됩니다. ..

MySQL/MySQL 기본 2024.06.10

DELETE 구문과 조건절 - 11

DELETE 구문은 특정 테이블에서 특정 조건을 만족하는 행을 삭제하는 데 사용됩니다. DELETE 구문을 사용할 때는 삭제할 행을 신중하게 선택해야 합니다. DELETE 구문을 사용하여 데이터를 삭제하면 복구하기 어렵거나 불가능할 수 있습니다. 따라서 DELETE 구문을 사용하기 전에 데이터를 백업하거나, 테스트용 데이터를 사용하거나, WHERE 절을 사용하여 조건을 만족하는 행을 선택하는 데 주의해야 합니다. -- member 테이블에서 id가 3인 행 삭제DELETE FROM member WHERE id = 3;-- member 테이블에서 gender가 'F'이고 age가 20보다 큰 행 삭제DELETE FROM member WHERE gender = 'F' AND age > 20; 샘플 데이터 C..

MySQL/MySQL 기본 2024.06.07

UPDATE 구문과 조건절 - 10

UPDATE 구문은 이미 존재하는 테이블의 레코드를 수정하는 명령문입니다. 이 구문은 WHERE 절을 포함하여 사용됩니다. WHERE 절을 사용하여 특정 조건에 해당하는 레코드만 수정할 수 있습니다.UPDATE 구문은 다음과 같은 형식으로 작성합니다. 💡UPDATE [테이블 이름]SET [칼럼 이름1] = [새로운 값1], [칼럼 이름2] = [새로운 값2], ...WHERE [조건];  위의 구문에서 SET 절은 테이블의 특정 칼럼 값을 변경하는 부분입니다. WHERE 절은 조건에 해당하는 레코드만 변경할 수 있도록 필터링 합니다.예를 들어, student 테이블에서 grade 가 2 인 학생들의 major 값을 '전자공학과' 로 변경하려면 다음과 같이 작성할 수 있습니다.  💡UPDATEstude..

MySQL/MySQL 기본 2024.06.07

SELECT 구문과 조건절 - 9

학습 목표 WHERE 절에 대한 이해WHERE 절에 연산자와 피 연산자 활용 -- student 샘플 데이터 INSERT INTO student (student_id, name, grade, major)VALUES (2, '박영희', 2, '경영학과'), (3, '이민수', 4, '전자공학과'), (4, '홍길동', 1, '디자인학과'), (5, '임성민', 3, '컴퓨터공학과'), (6, '한지원', 2, '경영학과'), (7, '박준형', 4, '전자공학과'), (8, '김민지', 1, '디자인학과'), (9, '이현수', 3, '컴퓨터공학과'), (10, '정미경', 2, '경영학과'), (11, '김성진', 4, '전자공학과'), (12, '임승환', 1, '디자인학과'); 조..

MySQL/MySQL 기본 2024.06.07