SQL (21) 썸네일형 리스트형 마우스 클릭만으로 데이터베이스를 입력하거나 조회할 수 있는 GUI 응용 프로그램 만들기 GUI란? Graphical User Interface의 약자로, 윈도에 그래픽 환경으로 제공되는 화면을 통틀어서 말한다. 이를 도와주는 라이브러리가 tkinter이다. GUI는 python이나 sql을 잘 모르는 사용자도 쉽게 접근할 수 있도록 해줄 수 있는 유용한 툴이다. tkinter를 사용한 기본 창 생성 root = Tk()와 root.mainloop()사이에 화면을 구성할 내용을 삽입하면 된다. root는 객체의 이름일 뿐이다. 원하는대로 지정하여 사용하면 된다.(이에 대한 자세한 내용은 파이썬 객체지향의 개념이니 참고바란다.) 앞서 윈도 그래픽 환경으로 제공되는 화면이라고 했던 말이 잘 이해가 가지 않았을지도 모른다. 아래의 코드를 실행해보면 어떤 것인지 조금은 감이 잡힐 것이다. from .. 파이썬과 MySQL 연동하기 파이썬과 MySQL을 왜 연동시킬까? 이유는 간단하다. MySQL은 잘 모르지만 파이썬을 사용할줄 아는 사람이 MySQL의 DB에 조금 더 쉽게 접근하고자하는 것이다. 이를 위해서는 우선적으로 pymysql 라이브러리를 설치한 후에 MySQL과 연동하는 데이터베이스 연동 프로그램을 작성해야한다. 작성한 코드를 따라 천천히 진행해보자. pymysql라이브러리를 사용한 MySQL데이터베이스 연동 실습 아래의 그림이 오늘 우리가 실습할 예제의 큰 틀이다. 커서의 개념을 기억하고 있다면 바로 예제를 진행해보자. (기억이 안나면 이전 포스티을 보러가자! ) 1. pymysql라이브러리를 설치 후 불러오기 터미널 창을 이용해서 pip install pymysql을 설치해준 뒤 불러와준다. (사용한 통합개발환경은 v.. 자동으로 실행되는 트리거(trigger)의 개념과 트리거를 활용하여 데이터 백업하는 방법 트리거 조건에 해당하는 동작이 수행되는 순간 준비해둔걸 실행하게하는 장치 DML(Data Manipulation Language)인 INSERT, DELETE, UPDATE의 이벤트 작업이 발생하면 실행, 아무때나 실행시킬 수 없다. 스토어드 프로시저와 달리 IN, OUT 매개변수를 사용할 수 없다. 트리거의 프레임 DELIMITER $$ CREATE TRIGGER 트리거 이름 { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON 테이블명 FOR EACH ROW BEGIN 트리거 내용 END DELIMITER ; 트리거 예문 1. 트리거 작동구조 알아보기 설명 : 트리거를 부착시킬 테이블을 생성한다. 설명 : 트리거명은 myTrigger로 하고, 작동조건은 trigg.. 스토어드 함수와 커서의 개념, 커서(cursor)의 단계별 실습 방법 스토어드 함수 MySQL의 내장함수(기존에 만들어진) 외에 사용자 지정 함수를 만드는 기능이다. 스토어드함수는 returns로 반환형식을 지정하여 하나의 값을 반환해야 한다. 커서 스토어드 프로시저 안에서 한 행씩 처리하는 프로그래밍 방식이다. 스토어드 함수 프레임 DELIMITER $$ CREATE FUNCTION 스토어드_함수_이름(매개변수) RETURNS 반환형식 BEGIN 이 부분에 프로그래밍 코딩 RETURN 반환값; END $$ DELIMITER ; SELECT 스토어드_함수_이름(); 스토어드 함수와 스토어드 프로시저의 차이점 - 선언 스토어드 함수는 create function 스토어드 프로시저는 create procedure - 반환값 스토어드 함수는 RETURNS 문으로 반환할 값의 데.. 스토어드 프로시저(stored procedure)의 개념과 사용 방법(입출력 매개변수의 활용 방법) 《스토어드 프로시저(Stored Procedure)란?》 MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체이다. SQL문법의 함수(Function)와 유사하지만 SQL함수와는 차이가 있다. - 함수(Function) : 클라이언트에서 처리, 리턴값 필수, 리턴값 하나만 반환가능 - 프로시저(Procedure) : 서버로 보내서 처리, 리턴값 선택, 리턴값 여러개 반환가능 프로시저 같은 경우 실행, 처리를 할 때 주로 사용되고, 함수는 간단한 계산이나 수치 결과를 나타낼 때 주로 사용 👀 스토어드 프로시저의 장점정리! 1. 하나의 요청으로 여러 SQL문을 실행하는 것이 가능하다. 2. 쿼리를 처리할 때 네트워크의 부하를 줄여 실행시간을 줄일 수 있다. - 스토어드 프로시저 프레임 DEL.. 인덱스의 생성과 제거 문법(CREATE INDEX, DROP INDEX) 《 인덱스의 생성 》 · 인덱스 생성 프레임 CREATE [ UNIQUE ] INDEX 인덱스_이름 ON 테이블_이름 (열_이름) [ ASC | DESC ] # UNIQUE 사용시 해당 인덱스는 클러스터형 인덱스가 아닌 보조인덱스로 생성되며, 디폴트 값이다. 중복은 허용하지 않는다. · 인덱스를 생성하는 방법 CREATE INDEX 사용하기 생선된 인덱스는 SHOW INDEX를 통해서 확인할 수 있다. 생성한 인덱스는 ANZLYZE TABLE을 사용해서 적용시켜준 다음 사용할 수 있다. 《 인덱스의 사용법 》 인덱스는 WHERE을 사용하여 작동시킨다. 결과는 아래와 같다. 인덱스를 사용하는 방법인 WHERE사용에 따른 차이? - 위와 같이 WHERE를 사용한 경우 * idx_member_name은 예제실.. 인덱스의 내부 작동 원리와 구조, 인덱스에서 데이터 검색하기 《 균형트리의 개념과 페이지 분할 》 클러스터형 인덱스와 보조 인덱스는 균형 트리(Balanced Tree)구조를 이루고 있다. 균형 트리 : 나무를 거꾸로 표현한 자료 구조 트리에서 제일 상단의 뿌리를 루트(root), 줄기를 중간, 끝에 달린 잎을 리프(leaf)라고 부른다 뿌리에서부터 잘게 나누어 가지치기를 진행한다 노드 : 데이터가 저장되는 공간들, SQL에서는 이를 페이지라고 함 페이지 분할 : 새로운 페이지를 준비하기 위해서 데이터를 나누는 작업 데이터를 INSERT 했을 때 페이지 분할 과정(GGG,III를 넣음) 예시에서 한 페이지당 할당된 데이터의 개수는 4개 루트 노드에 있는 데이터들은 리프 노드의 맨 첫번째 데이터를 기입해둔 것 적당한 개수로 데이터들을 나누기 위해 3,3,2,3으로 .. 인덱스의 개념과 장단점, 클러스터형 인덱스와 보조 인덱스 《 인덱스의 개념 》 · 찾아보기 기능에 비유된다. · 반드시 필요한 것은 아니지만 많은 데이터들 중에서 필요한 정보를 찾아내고자 할 때 소요시간을 줄일 수 있다. 하지만 인덱스를 무조건적으로 사용하는 것은 좋지않다. 무리하게 많이 사용하면 오히려 속도를 늦출 수 있다는 것을 알아두자 《 인덱스의 장점 》 · SELECT 문으로 검색하는 속도가 빨라짐 · 컴퓨터의 부담이 줄어들어서 전체 시스템성능 향상 《 인덱스의 단점 》 · 인덱스도 공간을 차지 · 처음 인덱스 생성시 시간이 오래걸림 인덱스는 처음에 테이블과 정보를 생성하며 같이 만드는 것이 좋음 · SELECT가 아닌 데이터의 변경 작업(INSERT, UPDATE, DELETE)이 자주 일어나면 오히려 성능이 떨어질 수 있음 《 인덱스의 종류 》 ·.. 이전 1 2 3 다음