전체 글 63

15. 데이터타입, 내장함수, 연산자

1. DATA TYPES01. 데이터 타입 개요💡MySQL은 여러 가지 데이터 유형을 지원(문자열, 숫자, 날짜, 시간)한다. 적절한 데이터 유형을 정의하면 데이터 저장 공간을 효율적으로 사용하고 데이터 입력의 유효성 검사에도 도움이 된다. 02. 데이터 형식 종류(1) 숫자 데이터 형식BIT(N)N/B 1~64Bit 표현, b'0000'형식으로 표현TINYINT1-128 ~ 127정수SMALLINT2-32,768 ~ 32,767정수MEDIUMINT3-8,388,608 ~ 8,388,607정수INT   INTEGER4약-21억 ~ +21억정수BIGINT8약 -900경 ~ +900경정수FLOAT43.40E+38 ~ -1.17E-38소수점 아래 7자리까지 표현DOUBLE   REAL8-1.22E-308 ~..

SKN/02. DB 2025.02.20

14. DML

데이터 조작언어, 테이블에 값을 삽입하거나 수정하거나 삭제하는(데이터베이스 내의 데이터를 조작하는데 사용하는) SQL의 한 부분이다.# DML# 값 추가할 때마다 조회하기 위해 select절 추가SELECT menu_name, menu_code, menu_price, category_code, orderable_statusFROM tbl_menu;#1. INSERT-- INSERT INTO 테이블명 VALUES (컬럼순으로 삽일할 데이터 나열)INSERT INTO tbl_menu VALUES(null, '곰탕', 9500, 6, 'Y');-- INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3, ... )INSERT INTO TBl_Menu(menu_code, menu_name, menu_pr..

SKN/02. DB 2025.02.20

13. SQL 작성 (select / order_by / where / distinct)

SELECT# SELECT FROM 연습use menudb; -- 1. 테이블을 사용할 수 없기 때문에 접근허용 해주기# 단일 컬럼 조회SELECT menu_name FROM tbl_menu;# 다중 컬럼 조회SELECT menu_code, menu_name, menu_price, category_code, orderable_status -- 2. 모든 컬럼은 *로도 표현할 수 있다 (하지만 현업에서는 지양하는 바이다. 기능을 모르니까) FROM tbl_menu;# 연산자나 now 함수도 사용가능하다 / (Oracle에서는 금지. 연산자 사용을 위해서는 FROM DUAL을 사용해야 한다)SELECT 12 + 17;SELECT 12 - 17;SELECT 12 * 17;SELECT 12 / 17;SE..

SKN/02. DB 2025.02.19

04. 개념/논리/물리 모델

1. 개념 모델01. 개념 모델이란?요구분석 단계에서 정의된 핵심 엔터티와 주요 속성을 도출하고 관계를 도출하여 ERD를 생성하는 단계이다데이터의 범위나 구조를 용이하게 파악할 수 있는 상위 수준의 ERD 형태이다02. 개념 모델의 목적요구 사항을 이해관계자들이 이해할 수 있도록 데이터로 간결하게 표현하는 것이다.대규모 프로젝트에서 개발자가 업무의 큰 틀을 잡는 데 도움을 준다.개발 프로젝트 뿐 아니라 시스템의 유지, 보수에 있어서도 유용하게 사용할 수 있다.03. 개념 모델의 주의사항이해 관계자들 사이에서 해석이 다르지 않도록 정확한 의사소통을 해야 한다.개념 모델에서는 데이터만을 대상으로 표현해야 한다.논리 모델링 기간의 1/3 정도에 해당하는 기간을 소요해서라도 의사소통을 하자2. 논리 모델01. ..

SKN/02. DB 2025.02.19

12. 백업 및 복원

-- 수업시간에 다루지 않은 내용이라 기록만 하겠다 --1. 백업💡백업(Backup)은 데이터 손실에 대비하여 현재의 데이터베이스 상태를 저장하는 과정이며, **복원(Restore)**은 백업된 데이터를 사용하여 데이터베이스를 이전 상태로 복구하는 과정이다.MySQL에서 백업과 복원은 데이터의 무결성과 지속성을 보장하는 데 필수적이며, 시스템 장애, 사용자 실수 또는 기타 예기치 않은 상황에 대비할 수 있도록 해준다. 01. 백업의 종류논리적 백업(Logical Backup)데이터베이스의 구조와 데이터를 SQL 문장으로 덤프하여 저장하는 방법이다.mysqldump 유틸리티를 사용한다.이식성이 높고 특정 데이터만 백업 가능한 장점이 있지만, 대용량 데이터의 경우 시간이 오래 걸린다.물리적 백업(Physi..

SKN/02. DB 2025.02.19

11. STORED PROCEDURE / Trigger

* 수업시간에 다루지 않은 내용이므로, 개요와 장점만 다루겠다.1. STORED PROCEDURE01. Stored Procedure 개요💡 Stored Procedure(저장 프로시저)는 미리 컴파일되어 데이터베이스에 저장된 SQL 문의 집합으로, 프로시저라고도 불린다. 복잡한 작업을 하나의 프로시저로 만들어 필요할 때마다 호출할 수 있으며, 코드의 재사용성과 유지보수성을 높여준다. Stored Procedure는 데이터베이스 성능 향상과 보안 강화에 도움이 되며, 클라이언트와 서버 간의 네트워크 트래픽을 감소시킨다.   02. Stored Procedure 장단점장점복잡한 SQL 작업을 프로시저로 만들어 여러 곳에서 재사용 가능하다.미리 컴파일되어 저장되므로 실행 속도가 빠르다.데이터베이스 액세스 ..

SKN/02. DB 2025.02.19

10. VIEW

1. VIEW💡SELECT 쿼리문을 저장한 객체로 가상테이블이라고 불린다. 실질적인 데이터를 물리적으로 저장하고 있지 않고 쿼리만 저장했지만 테이블을 사용하는 것과 동일하게 사용할 수 있다. VIEW는 데이터를 쉽게 읽고 이해할 수 있도록 돕는 동시에, 원본 데이터의 보안을 유지하는데 도움이 된다.  01. VIEW 생성# view 생성 후 조회SELECT * FROM tbl_menu;-- VIEW 생성CREATE VIEW hansik ASSELECT menu_code, menu_name, menu_price, category_code, orderable_statusFROM tbl_menu WHERE category_code = 4;-- 생성된 VIEW 조회SELECT * FROM hansik;#..

SKN/02. DB 2025.02.19

09. INDEX

💡 인덱스(Index)는 데이터 검색 속도를 향상시키는 데이터 구조로 데이터를 빠르게 조회할 수 있는 포인터를 제공한다. 데이터베이스에서 데이터를 찾을 때 전체 테이블을 검색하는 대신 인덱스를 통해 검색을 하므로 속도가 더 빨라진다. 인덱스는 주로 WHERE절의 조건이나 JOIN 연산에 사용되는 컬럼에 생성한다. 다만 인덱스도 데이터 저장 공간을 차지하고 데이터가 변경될 때마다 인덱스 역시 갱신해야 하기 때문에 어떤 컬럼에 인덱스를 생성할지는 신중히 결정해야 한다.  1. 인덱스 생성[인덱스 생성]# PRIMARY KEY 제약 조건을 지닌 기본 테이블 생성 후 기본 데이터 INSERT 후 조회CREATE TABLE phone ( phone_code INT PRIMARY KEY, phone_n..

SKN/02. DB 2025.02.19

08. CONSTRAINTS

💡CONSTRAINT는 제약조건으로 테이블에 데이터가 입력되거나 수정될 때의 규칙을 정의한다.     데이터 무결성을 보장하는데 도움이 된다. 1. NOT NULL NULL값을 허용하지 않는 제약조건 # 제약조건 확인용 테이블 생성 및 테스트 데이터 INSERT 후 조회하기DROP TABLE IF EXISTS user_notnull;CREATE TABLE IF NOT EXISTS user_notnull ( user_no INT NOT NULL, user_id VARCHAR(255) NOT NULL, user_pwd VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, gender VARCHAR(3), phone VARCHAR..

SKN/02. DB 2025.02.19

07. DDL(Data Definition Language)

💡 DDL(Data Definition Language)는 데이터베이스의 스키마를 정의하거나 수정하는 데 사용되는 SQL의 한 부분이다. 1. CREATE테이블 생성을 위한 구문IF NOT EXISTS를 적용하면 기존에 존재하는 테이블이라도 에러가 발생하지 x# 테이블의 컬럼 설정 방법column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;# tb1 테이블 생성CREATE TABLE IF NOT EXISTS tb1 ( pk INT PRIMARY KEY, fk INT, col1 VARCHAR(255), CHECK(col1 IN ('Y', 'N'))) ENGINE=INNODB;..

SKN/02. DB 2025.02.19