728x90

02_Database 16

16_파이썬-mySQL 연동

파이썬과 MySQL의 연동 pymysql라이브러리를 이용하면 파이썬과 MySQL을 연동하는 데이터베이스 연동 프로그램을 작성할 수 있음 01. pymysql설치 Anaconda Prompt를 실행 「pip install pymysql」을 입력해, pymysql을 다운로드  02. 파이썬에서 데이터 입력mysql 연결하기연결자 = pymysql.connect(연결옵션)커서 생성하기커서이름 = 연결자.cursor()테이블 만들기커서이름.execute("CREATE TABLE 문장")데이터 입력하기커서이름.execute("INSERT 문장")입력한 데이터 저장하기연결자.commit()mysql 연결 종료하기연결자.close() 03. mysql연결pymysql.connect(host = 서버IP주소, user..

02_Database 2025.01.30

15_트랜잭션(Transaction)

트랜잭션(Transaction) 트랜잭션은 더 이상 분할할 수 없는 최소 수행 단위를 뜻함하나의 작업 또는 밀접하게 연관된 작업을 수행하기 위해 한 개 이상의 데이터 조작 명령어(DML)로 이루어짐즉, 어떤 기능 한 가지를 수행하는 ' SQL 문 덩어리' 라고도 볼 수 있음 트랜잭션을 제어하기 위해서 사용하는 명령어를 TCL(Transaction Control Language)라고 함 트랜잭션은 데이터베이스 계정을 통해 접속하는 동시에 시작되고여러 SQL문을 실행하고 트랜잭션을 제어하는 명령어를 실행할 때 기존 트랜잭션이 종료그리고 그 후에 새로운 트랜잭션이 다시 시작 하나의 트랜잭션에 묶여 있는 데이터 조작어의 수행 상태는 모든 명령어가 정식적으로 수행 완료된 상태 또는모든 명령어가 수행되지 않아 취소..

02_Database 2025.01.30

13_정규화

정규화 데이터베이스의 테이블을 올바른 형태로 개선해 나가는 것일반적으로 데이터베이스의 설계 단계에서 진행하고,경우에 따라서는 기존 시스템을 재검토 할 때 정규화하는 경우도 있음 정규화 과정을 통해 데이터베이스가 효율적으로 동작하도록 설계할 수 있음 01. 제1 정규형 관계형 데이터베이스의 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다는 제약이 있음따라서 주문상품 데이터를 그대로 테이블로 만들 수 없음☞ 상품코드, 상품명, 개수의 3개의 열로 나누어야 함 제1 정규화를 수행하면 하나의 셀에 하나의 값만 저장되므로 정상적으로 테이블화 할 수 있음제1 정규화 과정에서 열이 두 개 더 추가되고 행도 늘어나게 됨☞  하나의 셀에 하나의 값만 저장될 수 있도록 하고, 반복되는 부분을 행으로 늘려나가는 것이 제..

02_Database 2025.01.30

12_인덱스(index)

인덱스(index) 데이터를 빠르게 찾을 수 있도록 도와주는 도구실무에서는 현실적으로 인덱스없이 데이터베이스 운영이 불가  01. 인덱스의 개념 ● 책의 색인 또는 찾아보기와 유사한 개념예) 책의 내용 중 찾아보고 싶은 내용이 있다면 책의 제일 뒤에 수록되어 있는 색인을 알아보고원하는 단어를 찾아서 해당 페이지를 빠르게 확인할 수 있음 ● 지금까지 사용한 테이블들은 인덱스를 고려하지 않았는데, 이는 색인이 없는 책과 마찬가지로 테이블을 사용한 것임인덱스가 없었음에도 지금까지 문제가 되지 않았던 이유는 데이터의 양이 적었기 때문 ● 실무에서 운영하는 테이블에서는 인덱스의 사용 여부에 따라 성능 차이가 날 수도 있고,대용량 테이블일 경우에는 그 차이가 더욱 커짐인덱스 사용 여부에 따른 결괏값의 차이는 없음...

02_Database 2025.01.30

11_뷰(View)

뷰(View) 데이터베이스 개체 중 하나데이터베이스 개체 중에서도 테이블과 밀접한 연관이 있음한 번 생성된 뷰는 일반 테이블과 거의 동일한 개체로 취급할 수 있음 하지만 뷰는 테이블처럼 데이터를 가지고 있지는 않고, 뷰의 실체는 select문임뷰에 접근하면 select문이 실행되고 그 결과가 화면에 출력되는 방식윈도우의 '바로가기 아이콘'과 유사 01. 뷰의 종류 단순 뷰: 하나의 테이블과 연관된 뷰복합 뷰: 2개 이상의 테이블과 연관된 뷰 02. 뷰의 개념 use market_db;select mem_id, mem_name, addr from member; ☞ select문으로 mem_id, mem_name, addr을 조회하면 3개의 칼럼을 가진 테이블과 유사한 형태가 조회됨☞ select문의 실행 ..

02_Database 2025.01.29

10_테이블(Table)

테이블(Table) 표 형태로 구성된 2차원 구조로, 행과 열로 구성됨 행은 로우(row)나 레코드(record)라고 부르며열은 컬럼(column) 또는 필드(field)라고 부름 엑셀과 유사한 형태 create database naver_db;☞ 데이터베이스 만들기 drop database if exists naver_db;☞ 기존에 naver_db가 있다면 삭제  sql로 테이블 만들기 use naver_db;☞  naver_db 데이터베이스를 사용하겠다 drop table if exists member;☞ 기존에 member 테이블이 있다면 삭제 create table member( mem_id char(3) not null primary key, -- 회원 아이디(pk)mem_name varcha..

02_Database 2025.01.29

09_조인

조인 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 예) 인터넷 마켓 데이터베이스의 회원 테이블과 구매 테이블회원 테이블에는 회원의 이름, 연락처구매 테이블에는 구매한 물건에 대한 정보 관계형DB에서 데이터는 주제에 따라 분리해서 저장하고 있고, 이 분리된 테이블은 서로 관계를 맺고 있음테이블의 조인을 위해서는 테이블이 일대다 관계로 연결되어야 함일대다 관계: 회원 테이블의 아이디에는 하나의 값이 한 번만 등장해야 하지만,다른 테이블에서는 여러 개의 값이 존재할 수 있는 관계 예) 회원테이블에서 회원아이디는 한 번만 등장하지만, 구매테이블에서는 한 아이디를 여러 번 찾을 수 있음 이 때, 회원테이블의 아이디를 기본키(Primary Key), 구매 테이블의 아이디를 외래키(Foreign Ke..

02_Database 2025.01.29

08_MySQL의 데이터 형식

Mysql의 데이터 형식데이터 형식은 크게 숫자형, 문자형, 날짜형이 있음 실제로 저장될 데이터의 형태가 다양하기 때문에 이를 효율적으로 저장하기 위해위의 데이터 형식에서 세부적으로 다시 여러 데이터 형식으로 나뉨 예) 사람의 이름을 저장하기 위해 100글자를 저장할 칸을 준비하는 것은 비효율적임 01. 정수형TINYINT (숫자 범위: -128 ~ 127)SMALLINT (숫자 범위: -32768 ~ 32767)INT (숫자 범위: 약 -21억 ~ 21억)BIGINT (숫자 범위: 약 -900경 ~ 900경) create table tbl_type (tinyint_col tinyint,smallint_col smallint,int_col int,bigint_col bigint); 각 열의 최댓값까지는 ..

02_Database 2025.01.29
728x90