본문 바로가기

Study21

[SQL] Chapter 8. (21~23강) SQL과 Python 연결 준비Python 프로그래밍을 위해서는 개발 환경을 구축해야 한다.Python에는 MySQL을 인식하는 기능이 없으므로 PyMySQL이라는 외부 라이브러리도 설치해야 한다.MySQL과 Python을 연동해서 프로그래밍하면, MySQL 전문가가 할 수 있는 기능들을 일반 사용자도 손쉽게 사용할 수 있다. Python이 없다면 설치를 해주고, CMD 창에서 'pip install pymysql'으로 외부 라이브러리를 설치하면 된다.Anaconda의 Jupyter Notebook을 사용하고 있다면, 여기에 바로 pymysql을 설치하면 된다.22강.MySQL과 Python 연동Python을 사용해서 다음과 같은 database를 만들어 보자. 우선 MySQL Workbench에서 so.. 2025. 7. 8.
[SQL] Chapter 7. (18~20강) 18강.스토어드 프로시저(1) 스토어드 프로시저 사용 방법스토어드 프로시저(Stored Procedure)란 MySQL에서 제공하는 프로그래밍 기능이다.C언어, Java, Python 등의 프로그래밍과는 조금 차이가 있지만, MySQL 내부에서 사용할 때 적절한 프로그래밍 기능을 제공해준다.또한, 스토어드 프로시저는 쿼리 문의 집합으로도 볼 수 있으며, 어떠한 동작을 일괄 처리하기 위한 용도로도 사용한다. 자주 사용하는 일반적인 쿼리를 반복하는 것보다는 스토어드 프로시저로 묶어놓고, 필요할 때마다 간단히 호출만 하면 훨씬 편리하게 MySQL을 운영할 수 있다. ①: 필수 항목으로 스토어드 프로시저를 묶어주는 기능을 한다.$$는 $ 1개만 사용해도 되지만 명확하게 표시하기 위해 2개를 사용한다.##, %%.. 2025. 7. 8.
[SQL] Chapter 6. (15~17강) 15강.인덱스인덱스(Index)는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다.테이블의 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다.인덱스는 책에서의 목차 혹인 색인이라고 생각하면 된다. 책에서 원하는 내용을 찾을 때 목차나 색인을 이용하면 훨씬 빠르게 찾을 수 있는데, 마찬가지로 테이블에서 원하는 데이터를 찾기 위해 인덱스를 이용하면 빠르게 찾을 수 있다.그러므로 '데이터=책의 내용', '인덱스=책의 목차', '물리적 주소=책의 페이지 번호'라고 생각할 수 있다. 장점인덱스의 장점으로는 앞에서 말했듯이 테이블을 검색하는 속도와 성능이 향상된다.이를 통해, 시스템의 전반적인 부하를 줄일 수 있다.핵심은 인.. 2025. 7. 7.
[SQL] Chapter 5. (12~14강) 12강.테이블 생성MySQL에서는 SCHEMA와 DATABASE가 동일한 의미로 사용된다.그러나, Oracle같은 곳에서의 schema는 특정 database의 부분(단일 사용자에게 소유된 테이블이나 객체)를 의미한다.member 테이블 CREATE DATABASE naver_db ;USE naver_db ;CREATE TABLE member #회원 테이블( mem_id CHAR(8) NOT NULL PRIMARY KEY, #회원 아이디(PK) mem_name VARCHAR(10) NOT NULL, #이름 mem_number TINYINT NOT NULL, #인원수 addr CHAR(2) NOT NULL, #주소(경기, 서.. 2025. 7. 7.
[SQL] Chapter 4. (9~11강) 9강.변수 생성SET @myvar1 = 5;SET @myvar2 = 4.25;SELECT @myvar1 + @myvar2출력 결과 SET @txt = '가수 이름==>';SET @height = 166;SELECT @txt, mem_name FROM member WHERE height > @height;출력 결과member 테이블의 height가 @height보다 mem_name을 @txt와 같이 출력. SET @count = 3;SELECT mem_name, heightFROM memberORDER BY heightLIMIT @count; # 오류 발생--------------------------SET @count = 3;PREPARE pre_name FROM 'SELECT mem_name, hei.. 2025. 7. 7.
[SQL] Chapter 3. (6~8강) 7강.ORDER BY 절 (오름차순)SELECT mem_id, mem_name, debut_dataFROM memberORDER BY debute_data #default는 오름차순(ASC)출력 결과 ORDER BY 절 (내림차순)SELECT mem_id, mem_name, debute_dateFROM memberORDER BY debut_date DESC출력 결과SELECT mem_id, mem_name, debut_date, heightFROM memberORDER BY height DESC, debut_data ASCWHERE height >= 164 #오류 발생(SELECT 절 순서 지킬 것)-----------------------------------------------------SELE.. 2025. 7. 7.