반응형

Data Analysis 24

[혼공SQL] 6-1 인덱스 개념을 파악하자

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. 인덱스 1.1 인덱스의 장점과 단점 장점 SELECT 문으로 검색하는 속도가 매우 빨라짐 컴퓨터의 부담이 줄어들어 전체 시스템의 성능이 향상됨 단점 데이터베이스 안에 추가적인 공간이 필요함 처음 인덱스를 만드는 데 시간이 오래 걸림 인덱스는 잘 사용하면 SELECT의 검색 속도가 빨라지지만, 잘못 사용하면 오히려 성능이 나빠짐 2. 인덱스의 종류 클러스터형 인덱스 (Clustered Index) → 영어사전 보조 인덱스 (Secondary Index) → 찾아보기 2.1 클러스터형 인덱스 📌 자동 생성됨 기본 키로 지정하면 자동으로 클러스터형 인덱스 가 생성됨 (기본 키는 테이블에 하나만 지정할 수 있으므로 클러스터..

[혼공SQL] 5-3 가상의 테이블: 뷰

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. 뷰의 개념 1.1 뷰의 기본 생성 📌 뷰를 만드는 형식 create view 뷰_이름 as select 문; 📌 뷰에 접근하는 형식 select 열_이름 from 뷰_이름 [where 조건]; 뷰 생성 create view v_member as select mem_id, mem_name, addr from member; 뷰 접근 select * from v_member; -- 필요한 열만 출력, 조건식 추가할 수 있음 select mem_name, addr from v_member where addr in ('서울', '경기'); 1.2 뷰를 사용하는 이유 1) 보안(security)에 도움이 된다. 사용자의 중요한..

[혼공SQL] 5-2 제약조건으로 테이블을 견고하게

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. PRIMARY KEY 제약조건 데이터를 구분할 수 있는 식별자 중복 x NULL 값 입력 x 테이블은 기본 키(PK)를 1개만 가질 수 있음 기본 키(PK)로는 테이블의 특성을 가장 잘 반영하는 열을 선택하는 것이 좋음 1.1 CREATE TABLE 에서 설정하는 기본 키 제약조건 1) 열 이름 뒤에 primary key 를 붙여줌 create table member ( mem_id char(8) not null **primary key**, mem_name varchar(10) not null, height tinyint unsigned null ); 2) 제일 마지막 행에 primary key (mem_id) 추..

[혼공SQL] 5-1 테이블 만들기

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 데이터베이스와 테이블 설계하기 1) 회원테이블(member) 아이디(mem_id) : 기본 키(primary key / PK) 평균 키(height) : TINYINT UNSIGNED → 0~ 255 범위 UNSIGNED 예약어 (4-1 MySQL의 데이터 형식) 2) 구매테이블(buy) 순번(num) : 1, 2, 3, … 자동 입력하도록 설정 아이디(mem_id) : 외래 키(Foreign Key / FK) **AUTO_INCREMENT (**3-3. 데이터 변경을 위한 SQL문) 1. 테이블 생성하기 데이터 베이스 생성 -- 데이터베이스(naver_db) 생성 DROP DATABASE IF EXISTS naver_d..

[혼공SQL] 4-3 SQL 프로그래밍

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 📌 스토어드 프로시저 : MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체 DELIMITER $$ CREATE PROCEDURE 스토어드_프로시저_이름() BEGIN 이 부분에 SQL 프로그래밍 코딩 END $$ → 스토어드 프로시저 종료 DELIMITER; → 종료 문자를 다시 세미콜론으로 변경 CALL → 스토어드 프로시저 실행 1. IF문 1.1 IF 문의 기본 형식 조건문으로 가장 많이 사용되는 프로그래밍 문법 중 하나 📌 기본 IF문의 형식 두 문장 이상이 처리되어야 할 때는 BEGIN ~ END로 묶어줘야 한다. IF THEN SQL 문장들 END IF; 📌 예시 DELIMITER $$ --..

[Kaggle] House Prices - Advanced Regression Techniques

대회 : https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques 코드 : https://www.kaggle.com/code/pmarcelino/comprehensive-data-exploration-with-python 목차 1. Import Library & Data 2. Analysing 'SalePrice' 3. SalePrice's relationship 3.1 Relationship with numeric variables 3.2 Relationship with categorical variables 4. SalePrice's Correlation 4.1 Correlation matrix (heatmap st..

[혼공SQL] 4-2 두 테이블을 묶는 조인

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 📌 조인(join)이란? 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 1. 내부 조인 1.1 일대다 관계 두 테이블의 조인을 위해서는 테이블이 일대다(one to many) 관계로 연결되어야 함 데이터베이스의 테이블은 하나로 구성되는 것보다는 여러 정보를 주제에 따라 분리해서 저장하는 것이 효율적이며 분리된 테이블은 서로 관계를 맺고 있음 1.2 내부 조인의 기본 조인은 3개 이상의 테이블로도 할 수 있지만 대부분 2개로 조인함 SELECT FROM INNER JOIN -- JOIN이라고만 써도 INNER JOIN으로 인식 ON [WHERE 검색 조건] 📌 두 테이블을 내부 조인 USE market_db;..

[혼공SQL] 4-1 MySQL의 데이터 형식

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. 데이터 형식 1.1 정수형 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128~127 SMALLINT 2 -32,768~32,767 INT 4 약 -21억~+21억 BIGINT 8 약 -900경~+900경 정수형 데이터를 확인하기 위해 테이블을 만들어보자. use market_db; create table hongong4 ( tinyint_col tinyint, smallint_col smallint, int_col int, bigint_col bigint); 각 열의 최댓값을 입력해보자. insert into hongong4 values (127, 32767, 2147483647, 9000000000000..

[혼공SQL] 3-3. 데이터 변경을 위한 SQL문

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. INSERT 1.1 INSERT 문의 기본 문법 테이블에 행 데이터를 입력하는 SQL문 INSERT INTO 테이블[(열1, 열2, ...)] VALUES (값1, 값2, ...) 테이블 이름 다음에 나오는 열 생략 가능 열 생략 시 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 떄의 열 순서 및 개수가 동일해야 함 use market_db; create TABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT); insert into hongong1 values (1, '우디', 25); ‘age’를 입력하고 싶지 않다면 테이블 이름 뒤에 열의 이름 추가해..

[혼공SQL] 3-2. SELECT

본 포스팅은 '한빛출판네트워크'의 '혼공SQL' 책을 기반으로 작성한 포스팅입니다. 1. ORDER BY 절 순서 정렬 기본 값은 ASC (오름차순) select mem_id, mem_name, debut_date from member order by debut_date; DESC 추가하면 내림차순 select mem_id, mem_name, debut_date from member order by debut_date DESC; ORDER BY절은 WHERE 절 다음에 나와야 한다. (그렇지 않으면 오류 발생) select mem_id, mem_name, debut_date, height from member where height >= 164 order by height DESC; 정렬 기준을 여러 개..

반응형