MySQL/혼공SQL 23

23강. 마우스 클릭만으로 데이터베이스를 입력하거나 조회할 수 있는 GUI 응용 프로그램 만들기(완강)

08-3. GUI 응용 프로그램 - 사용자들이 단순히 마우스 클릭만으로도 DB를 입력하거나 조회하는 프로그램을 만드는 것이 목적 ✅ GUI Graphical User Interface 더보기 GUI(그래픽 사용자 인터페이스)는 사용자가 그림, 아이콘, 버튼 등을 사용하여 소프트웨어와 상호 작용하는 방식을 제공하는 인터페이스입니다. 이는 텍스트 기반의 명령줄 인터페이스(CLI)와 대조적입니다. GUI는 일반적으로 마우스, 키보드 등을 사용하여 소프트웨어를 조작하는 데 사용됩니다. 여기에서 간략하게 GUI에 대해 알려드리겠습니다. 구성 요소: 윈도우(Window): GUI 애플리케이션의 기본 창. 여러 개의 창을 포함할 수 있습니다. 버튼(Button): 사용자가 클릭할 수 있는 단추. 입력 상자(Input..

MySQL/혼공SQL 2023.12.13

22강. 파이썬과 MySQL 연동하기

08-2. 파이썬과 MySQL의 연동 👉🏻DB 연동 MySQL 테이블에 접근할 때 SQL문을 통해 접근했었음 그런데 일반 사용자는 SQL문을 알지 못함 그래서 파이썬으로 일반 사용자는 간단한 명령어 만으로 파이썬 응용 프로그램을 통해서 DB를 사용하게 하는 것 👉🏻 연동 프로그래밍 기본 🧩 활용할 쇼핑몰 DB - DB만 만들고 테이블부터는 파이썬으로 🎮 DB 만들기 - MySQL 워크스페이스에서는 DB만 만든다 🧩 절차 - 파이썬에서 MySQL로 연결해야함 ✅ 커서 연결 후에 연결을 통해 쿼리문을 전달하는 도구 SQL문을 커서에 실어서 전달하는 도구 - 커서를 통해 테이블을 만든다 - 데이터를 입력하는 것은 여러번 가능하기 때문에 필요한 만큼 반복 - 입력이 다 끝나면 하는 APPLY = COMMIT -..

MySQL/혼공SQL 2023.12.13

21강. SQL과 파이썬 연결을 위한 파이썬 설치하기

08-1. 파이썬 개발 환경 준비 👉🏻 파이썬 프로그래밍 언어 MySQL을 연결시키기 위해 PyMySQL이라는 외부 라이브러리도 제공하고 있다 SQL문을 배우지 않더라도 PYTHON을 통해서 마우스 클릭이나 파이썬의 명령문을 통해 데이터베이스와 연결할 수 있게 된다 ✅ 회원가입 원래는 회원을 가입시키기 위해서 INSERT문을 사용해야 한다. 그런데 네이버나 쿠팡 등에서 회원가입할 때 INSERT문을 사용하지 않았다. 해당 사이트에서 사용하는 프로그래밍 언어로 아이디와 비밀번호 등의 칸을 만들어주고 회원가입하기 버튼을 누르면 자동으로 INSERT문이 생성되어 입력이 되었기 때문에 INSERT문이나 UPDATE, DELETE 문을 안 배워도 회원 가입이 가능했던 것 🧩 파이썬 귀도 반 로섬이 만든 프로그래밍..

MySQL/혼공SQL 2023.12.13

20강. 자동으로 실행되는 트리거(trigger)의 개념과 트리거를 활용하여 데이터 백업하는 방법

07-3. 자동으로 실행되는 트리거 👉🏻 트리거 트리거 = 방아쇠 방아쇠를 당기면 자동으로 총알이 튀어나가는 권총처럼 방아쇠에 해당하는 것은 INSERT, UPDATE, DELETE문 위의 것이 실행되면 방아쇠가 당겨져서 어떤 쿼리가 자동으로 실행되는 것 SELECT는 해당되지 않는다 ✅ 만약 블랙핑크가 탈퇴하면 회원 테이블에서 DELETE로 삭제하면 된다. 그런데 만약 탈퇴 뒤에 블랙핑크가 자신의 회원 기록을 요청하면 이미 삭제해서 데이터가 남아있지 않다 이건 위험한 것 삭제 전에 다른 곳에 저장 (탈퇴 회원 테이블)하는 방법이 있다 하지만 사람이 일하다보면 삭제 전에 탈퇴회원 테이블에 저장하지 않고 바로 삭제해버리는 실수를 저지를 수 있다. 어떤 탈퇴 회원은 탈퇴 회원 테이블에 들어있고, 어떤 탈퇴 ..

MySQL/혼공SQL 2023.12.13

19강. 스토어드 함수와 커서의 개념, 커서(cursor)의 단계별 실습 방법

07-2. 스토어드 함수와 커서 👉🏻 스토어드 함수 SUM(), CAST(), CONCAT(), CURRENT_DATE() 등 MySQL에서 제공하는 함수 외에 내가 만들어 쓰는 함수 🧩 형식 - 스토어드 프로시저와 형태 비슷 - 매개변수는 모두 입력 매개변수이다 - 출력매개변수는 형식은 RETURNS의 반환형식 / 변수는 RETURN 반환값에 써주면 된다 - 대부분 SELECT로 호출한다 🎮 손코딩 - 스토어드 함수를 사용해기 위해 형식적으로 실행 - MySQL안에서 사용하는 변수 - 한번 설정하면 다음에는 쓰지 않아도 된다(?) 더보기 SET GLOBAL log_bin_trust_function_creators = 1;은 MySQL 데이터베이스에서 사용되는 SQL 쿼리 중 하나입니다. 이 쿼리는 My..

MySQL/혼공SQL 2023.12.11

18강. 스토어드 프로시저(stored procedure)의 개념과 사용 방법(입출력 매개변수의 활용 방법)

07-1. 스토어드 프로시저 사용 방법 👉🏻 스토어드 프로시저의 개념과 형식 - SQL과 프로그래밍 기능이 합쳐진 것 - 일반적인 C언어, JAVA, PYTHON과 차이는 좀 있지만 큰 흐름은 프로그래밍 기능이 가능하다 🧩 형식 - $$ 외에 다른 것을 써도 된다 (##, %%, &&, // 등) - 고정된 형식이니까 따로 신경쓰지 않아도 된다 - 실제 프로시저를 만드는 것은 CREATE PROCEDURE - 이름은 우리가 직접 만드는 것 - 매개변수 - BEGIN ~ END $$ 사이에 SQL 프로그래밍 코드를 넣음 (몇백줄까지도 가능) - 형식은 고정된 형식이기 때문에 따로 신경쓰지 않아도 된다 - 프로시저 이름, 매개변수, 내용만 신경쓰면 된다 🧩 실행 - 프로시저를 만드는 것과 호출(실행)하는 것..

MySQL/혼공SQL 2023.12.06

17강. 인덱스의 생성과 제거 문법(CREATE INDEX, DROP INDEX)

06-3. 인덱스의 실제 사용 👉🏻 인덱스 생성과 제거 문법 🧩 인덱스 생성 ✅ 자세한 문법 ✅ 간단한 문법 - UNIQUE는 생략 가능 - ASC나 DESC중에 선택, 기본은 ASC ❗UNIQUE는 주의 - UNIQUE를 사용할 경우 해당 열의 데이터 값이 중복을 허용하지 않음 - Ex.이름은 중복된 사람이 있기 때문에 중복 허용해야함 이메일은 중복 허용하지 않아도 됨 🧩 인덱스 제거 ✅ 간단한 문법 ✅ 자동으로 생성된 인덱스 - CREATE자동으로 생성되는것이 아니라 내가 추가로 인덱스를 만드는 것 - PRIMARY KEY와 UNIQUE KEY로 지정하면 자동으로 인덱스가 생성됨 - 자동으로 생성된 인덱스는 DROP으로 지우는 게 아니라 해당 KEY를 제거해야 한다 🧩 인덱스 생성및 제거 실습 🎮 m..

MySQL/혼공SQL 2023.12.06

16강.인덱스의 내부 작동 원리와 구조, 인덱스에서 데이터 검색하기

06-2. 인덱스의 내부 작동 👉🏻 트리 자료구조 - 나무를 거꾸로 뒤집어 놓은 자료구조 ✅ 루트 - 나무(트리)의 맨 위 ✅ 줄기 - 중간 ✅ 리프 - 잎사귀 👉🏻 균형 트리 🧩 노드 - 데이터가 저장되는 공간 - 노드 하나에 데이터가 4건 들어가는 경우에 대한 예시 - 중간 노드는 없는 상황 - 맨 위가 루트 - 거기에 바로 잎사귀가 달려있는 구조 - 노드를 MySQL에서는 페이지라고 한다 - 루트 페이지, 리프 페이지 .. - 한 페이지에 글자를 네 글자 쓸 수 있는 상황인 것 🧩 전체 테이블 검색 Full Table Scan - 루트가 없고 리프 페이지만 있는 상황 - 데이터가 9건 - 각 페이지에 3건씩 골고루 - 인덱스가 없는 상태 - 3페이지짜리 책에 책 뒤 찾아보기가 없는 상황 - M을 찾..

MySQL/혼공SQL 2023.12.06

15강. 인덱스의 개념과 장단점, 클러스터형 인덱스와 보조 인덱스

06-1. 인덱스 개념을 파악하자 👉🏻 인덱스의 개념 - 책의 찾아보기 - 책에 '찾아보기'가 없다면 원하는 글자를 찾기 위해 책의 1페이지부터 쭉 찾아야 한다 - 찾아보기가 있으면 해당 글자가 있는 페이지로 바로 갈 수 있다. - 인덱스는 반드시 필요한 건 아니다 - 현실적으로 실무에서 인덱스 없이 데이터를 사용하기 힘들다 - 현실에서 데이터가 정말 많기 때문에 컴퓨터가 아무리 빨라도 인덱스 없이 모두 뒤지는 것은 한계가 있다 🧩 인덱스의 문제점 - 인덱스를 '무조건'쓰는 건 좋은 게 아닐 수 있다 - 비유하자면 비타민을 매일 한 알씩 복용하는 것은 몸을 건강하게 만들어주지만 좋다고 해서 과다 복용할 경우 문제가 생길 수 있다 - 즉, 인덱스는 적절히 사용할 때는 도움이 되지만 인덱스에 대한 이해 없이..

MySQL/혼공SQL 2023.11.29

14강. 가상의 테이블: 뷰(생성, 수정, 삭제)

05-3. 가상의 테이블: 뷰 - 뷰: 데이터베이스 개체 중 하나 - 바로 가기 아이콘, 더블클릭하면 연결된 실행 파일이 실행되는 것 - 비슷한 개념으로, 테이블은 실체가 있는 진짜 테이블이고 그것에 접근하게 해주는 게 뷰 - 뷰에 접근하면 테이블의 내용이 보이기 때문에 뷰를 일반적으로 테이블이라 생각해도 큰 무리가 없어, 가상의 테이블이라 부름 👉🏻 뷰의 기본 생성 - SELECT 문을 날리면 테이블 형태로 결과가 뜸 - SELECT 자체를 뷰로 만들어놓으면, 그 다음에 거기로 접근했을 때 진짜 테이블로 접근이 되는 효과 🧩 기본 문법 ✅ 뷰 생성하기 ✅ 뷰에 접근하기 - 뷰가 테이블인 것 처럼 접근됨 - 뷰로 접근하면 뷰가 (뷰 생성에서 호출한)SELECT문을 실행하는 것 🧩 뷰의 작동 - 사용자가 ..

MySQL/혼공SQL 2023.11.27