db 9

[MYSQL] Section10.pymysql

기본 코드 구성​(1)pymysql 라이브러리 가져오기​(2)pymysql 접속하기​(3)커서 가져오기​(4)SQL구문 생성/조회/수정/삭제​(5)SQL구문 실행하기​(6)DB에 complete하기​(7)DB연결 닫기1.접속 및 SQL 구문 생성​table이 없는 상태로 시작해야 오류 안남python으로 mysql 연결 후 product 테이블 생성​*host,port,user,passwd,db는 workbench 정보와 동일해야 함.​​데베 complete 필수product 테이블 생성 완료2.데이터 삽입(INSERT)​#3번 자리에 insert구문 대체워크벤치에 적용된 데이터3.데이터 조회(SELECT)​(1)fetchall():커서로 쿼리 결과의 모든 행을 튜플형으로 반환.즉, 모든 행을 가져옴​(..

[MySQL] Section9.INDEX

1.클러스터형 인덱스:primary key에 맞춰서 재정렬하여 저장(ex.영어 사전)​​2.보조 인덱스:데이터는 물리적 위치는 그대로 두고, 각 데이터의 위치만 빠르게 찾기 위한참조 번호같은 느낌(1) 인덱스 확인​SHOW INDEX FROM [테이블명];​*FOREIGN KEY로 설정된 컬럼이 인덱스가 없으면 보조 인덱스를 자동 생성​FOREIGN KEY 보조 인덱스(userID)​​+)테이블 변경​ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] UNIQUE(컬럼명);​테이블에 특정 컬럼에 duplicate 값이 나오지 않도록 제약조건 추가(잘 사용되지는 않음)​※UNIQUE : 중복 방지​(2) 보조인덱스 생성​CREATE INDEX [인덱스이름] ON [테이블명](컬럼명)..

[MySQL] Section7.JOIN구문과 SUBQUERY

JOIN 구문:두 개 이상의 테이블로부터 필요한 데이터를 연결해 하나의 포괄적인 구조로 결합시킴​간단히 말해서두 개 이상의 테이블을 하나의 테이블로 연결해 보여줌.​※데이터 분석 및 활용 현업에서는 매우 많이 사용됨.백엔드 개발에서는 많은 시간 소요 문제로 잘 안쓰임.1.INNER JOIN(일반적인 JOIN):두 테이블에 해당 필드값이 매칭되는 레코드만 가져옴​SELECT * FROM [테이블명1] INNER JOIN [테이블명2] ON [테이블명1.동일컬럼명]=[테이블명2.동일컬럼명];​​​tip) INNER JOIN이 기본이기 때문에 INNER는 생략해도 됨.​두 테이블 items와 ranking을 item_code에 맞추어 매칭2.OUTER JOIN*현업 개발에서는 잘 사용되지 않음.(사용 구성은 ..

[MySQL] Section6.FOREIGN KEY와 HAVING

1.외래키(FOREIGN KEY)​FOREIGN KEY (현재 테이블 내 컬럼명) REFERENCES [참조테이블명](참조컬럼명)​​FOREIGN KEY의 역할​데이터 무결성: 두 테이블 간 관계에 있어서, 데이터의 정확성을 보장하는 제약 조건을 넣는 것​(1)user 정보 테이블 생성(2)구매 정보 테이블 생성(3)user정보와 구매 정보 데이터 입력​구매 목록과 구매한 user 사이의 관계를 userID를 이용해FOREIGN KEY로 연결​user정보구매 정보2.GROUP BY와 HAVING​HAVING은 GROUP BY절과 함께 사용 가능.집계함수를 가지고 조건비교를 할 때 사용.(GROUP BY 바로 뒤에 HAVING 사용)​provider컬럼의 각 데이터가 100개 이상인 것만 뽑아내기​집계함수..

[MySQL] Section5.실제 DB활용 SQL과 데이터분석

Section5는 실전 연습 느낌이라딱히 새로운 개념들과 중복 내용도 포함됨.(1) SELECT 문법 : COUNT데이터 수 세기(데이터 행의 수)​SELECT COUNT(*) FROM [테이블명];테이블 전체 데이터 수 세기​SELECT COUNT(*) FROM [테이블명] WHERE [조건문];특정 조건에 맞는 테이블 데이터 수 세기​SELECT COUNT(2) SELECT 문법 : DISTINCT특정 컬럼값 출력 시 중복된 값은 출력X​SELECT DISTINCT [컬럼명] FROM [테이블명];특정 컬럼에 들어가 있는 컬럼값 종류 확인 가능.​※WHERE 조건문도 추가할 수 있음.​SELECT DISTINCT(3) SELECT 문법 : SUM, AVG, MAX, MIN​SUM(): 컬럼값의 합계A..

[MySQL] Section4.DB기본 관리 기능

SQL DCL(Data Control Language)​(1) mysql 사용자 확인​# mysql -u root -pmysql> use mysql;mysql> select*from user;​​(2) 사용자 추가​create user '[user id]'@localhost identified by '[user pw]';:로컬에서만 접속 가능한 userid 생성​create user '[user id]'@'%' identified by '[user pw]';:모든 호스트에서 접속 가능한 userid 생성​create​(3) 사용자 비밀번호 변경​SET PASSWORD FOR '[userid]'@'%' = '[new pw]';​​(4) 사용자 삭제​# mysql -u root -pmysql> use mys..

[MySQL] Section3.데이터 다루기

앞에서 데이터 컬럼까지 만들었으니까이제는 데이터 값들을 넣어줘야 함​SQL DML(Data Manipulation Language)​CRUD : Create(생성), Read(일기), Update(갱신), Delete(삭제)​(1)데이터 생성​INSERT INTO [테이블명] VALUES(1,'a','770','mysql');전체 필드에 순서대로 데이터 값이 들어감.​※''(따옴표)안에는 문자열을 나타냄→ text, char, varchar 등​INSERT INTO [테이블명](필드명1, 필드명2 ...) VALUES('a','770');데이터를 넣어주고자 하는 필드명만 테이블명 옆 괄호에 넣어주면해당하는 필드에만 데이터 값을 넣어줄 수 있음.​(1)데이터 생성(2)데이터 읽기​​SELECT [필드명] ..

[MySQL] Section2.데이터베이스 만들기

데이터베이스 스키마(Schema):통상적으로 하나의 테이블이 아닌 여러 개의 테이블로 만들고,각 테이블 구조, 형식, 관계를 정의함. 즉, 데이터베이스 설계도​SQL(Structured Query Language):관계형 데이터베이스 관리 시스템에서 데이터를 관리하기 위해사용되는 표준 프로그래밍 언어.​데이터 베이스 스키마 생성 및 수정,테이블 관리, 데이터 추가, 수정, 삭제, 조회 등관련 작업 수행에 사용되는 언어​결론적으로 SQL언어로스키마 정의함.​SQL의 종류(1)데이터 정의 언어(DDL, Data Definition Language):테이블, 인덱스 등의 개체를 만들고 관리하는데 사용되는 명령​(2)데이터 처리 언어(DML, Data Manipulation Language):CRUD(Creat..

[MySQL] Section1.데이터베이스와 RDBMS 이해

데이터 베이스(DB):체계화된 데이터의 모임​DBMS: 데이터베이스를 관리하는 시스템​DB 역할1.데이터 중복 최소화2.데이터 공유3.일괄성,무결성,보안성 유지4.최신 데이터 유지5.데이터 표준화 가능6.데이터의 논리적, 물리적 독립성7.용이한 데이터 접근8.데이터 저장 공간 절약​RDBMS(Relational Database Management System):관계형 데이터베이스 관리 시스템 (=테이블)​Primary Key : 한 테이블의 각 레코드를 유일하게 식별해주는 컬럼.즉 , 특정 레코드를 지정할 수 있는 유일한 값.​레코드 값이 겹칠 수도 있기 때문에Primary Key를 지정해 유일하게 식별해주는 것이 필요함​Foreign Key : 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 ..