sql4

ilysm·2023년 2월 9일

복습 정리

모델링: 실제 존재, 개념, 사물을 어떻게 DB에 넣을지 고민하는 것
분석→설계→구현(개발)→테스트

설계

  • 논리모델링: 개념 사물 → 개체(=테이블) 만들기
    - 개체 : 명사형
    • 속성 : 이름, 자료형(데이터 생김새)
    • 관계 : 외래키(FK) 지정
    • 제약조건 : 대표 요소
  • 물리모델링: 개체→시스템에 넣기

ERD

테이블 명세서 ERD CLOUD, PPT등을 통해 작성

정규화

목적: 데이터베이스간 중복 최대한 제거
ex) A회원코드 B회원코드간 중복이 있다면 합쳐줌

VIEW

목적

  • SELECT를 임시테이블로 만들 때 사용
  • 보안, 외부통신 (PK와 다른 테이블들을 지키며 내 테이블을 열어주고 싶을 때)
  • 쿼리문 크기 줄일 때
CREATE VIEW v_이름 AS
	SELECT
  1. SELECT용
  2. C,U 가능, 원본테이블에 반영 됨
  3. 집계, OUTER, 서브쿼리 결과물은 C,U 불가

PROCEDURE & TRIGGER

PROCEDURE

  • SQL 함수, 내가 직접 호출해야 함

TRIGGER

  • 어떤 일(C,U,D) 생겼을 때 자동으로 작동

잘 안쓰이는 이유

  • 비직관적임 (SQL에서 자꾸 진행됨)
  • DB만으로 APP을 만들지 않음(python)

파이썬 특징

  1. a=1, a='a' 등 변수 선언에 문제 없다
  2. if문 for문 등 들여쓰기 중요
  3. 데이터 가공 라이브러리 list, tuple, dictionary, pandas
  4. def

sql 파이썬 연동 '혼공s' p 385

pip install pymysql

사용법

  1. mysql 연결하기
    connect()
  2. cursor: row를 가리키는 선택자
    cursor()
  3. Query 사용 (C,R,U,D)
    execute
  4. 저장(C,U,D) 하거나 리스트로 하고 싶은 일을 하면 됨 (분석)
    commit()
  5. 닫기
    close()

모든 데이터를 튜플로 변환

데이터 사용 (여러개)
1. list : []
2. Tuple : ()
3. data dictionary : {key (컬럼): value (실제 데이터)}

C(INSERT),U(UPDATE),D(DELETE)
1. 커넥션 (pymysql.connect)
2. 커서 만들기 (connect.cursor)
3. SQL실행 (execute)
4. 조회 (fetchall, fetchone, fetchmany)
4-2. 입력, 수정(connect.commit)

transaction-자동 생성

INSERT feat.python

바나나가 추가된 것을 볼 수 있다.

profile
한걸음씩 배워나갑니다

0개의 댓글