#SQL
22025.02.22
인플루언서 
넬티아
4,143프로그래머
참여 콘텐츠 21
[SQLD/데이터베이스] SQL문 - 그룹 함수

목차 그룹 함수 그룹 함수에서 CASE/DECODE 문 사용하기 그룹 함수 ROULLUP ROULLUP 함수는 SQL에서 그룹화된 다차원 집계를 생성하는 데 사용한다. GROUP BY 절과 함께 사용되며, 지정된 컬럼에 대한 소계와 합계를 계산해 계층 구조를 형성한다. 부서별, 직원별 급여 합계 dept_id + emp_name 별 합계 > dept_id 별 합계 > 전체 합계(최상위 NULL) 까지 자동 생성 SELECT dept_id, emp_name, SUM(salary) AS total_salary FROM employees GROUP BY ROLLUP (dept_id, emp_name); dept_id emp_name total_salary 10 김철수 5,000,000 10 박민준 6,000,000 10 NULL 11,000,000 20 이영희 7,000,000 20 NULL 7,000,000 NULL NULL 18,000,000 CUBE CUBE 함수는 ROULLUP과 유사하지만 가능한 모든 조합의 집계를 계산한다. GROUP BY 절과 함께 사용되며, 지정된 컬럼에 대한 모든 가능한 소계와 합계를 계산해 계층 구조를 형성한다. 부서별, 직원별 급여 합계 부서별 합계, 직책별 합계, 부서 & 직책 조합 합계까지 모든 경우를 계산 SELECT dept_id, job_title, SUM(salary) AS total_sala...

23시간 전
[SQLD/데이터베이스] SQL문 - 집합 연산자

집합 연산자 집합 연산자(set operations): 두 개 이상의 select 문에서 반환된 결과 집합을 결합해 하나의 결과 집합으로 만드는 데 사용 모든 SELECT 문은 동일한 수의 컬럼을 반환해야 하며, 각 컬럼의 데이터 타입은 호환 가능해야 함] ODER BY는 최종 결과에만 적용 가능하다. 집합 연산자로 UNION, UNION ALL, INTERSECT, MINUS가 있다. 연산자 설명 중복 제거 UNION 두 개의 결과를 합쳐 중복을 제거한 데이터 반환 O UNION ALL 두 개의 결과를 합치되, 중복 제거 없이 모든 행 반환 X INTERSECT 두 개의 결과에서 공통된 데이터만 반환 O MINUS 첫 번째 쿼리 결과에서 두 번째 쿼리 결과를 제외한 데이터 반환 O UNION employees와 managers 테이블에서 부서 ID(dept_id)를 가져오되, 중복을 제거한 결과 반환 UNION은 중복을 자동으로 제거하여 반환 부서 ID 20은 employees와 managers 테이블에 모두 있지만, 한 번만 출력됨 SELECT dept_id FROM employees UNION SELECT dept_id FROM managers; UNION ALL UNION ALL은 중복을 제거하지 않고 모든 데이터를 그대로 반환 부서 ID 20이 두 번 출력됨 (employees, managers 각각 포함) SELECT de...

1일 전
[SQLD/데이터베이스] SQL문 - 뷰(VIEW)

목차 뷰 개념과 장단점 뷰 예제 뷰(VIEW) 개념과 장단점 뷰(VIEW) : 하나 이상의 테이블에서 데이터를 검색하는 SQL 쿼리의 결과를 저장하는 가상 테이블 실제 데이터를 저장하지 않고, 기본 테이블에서 데이터를 가져옴 동적이며 읽기 전용의 데이터 집합 제공 복잡한 쿼리를 단순하고 데이터 접근을 제어하며 보안과 편의성을 높일 수 있음 뷰 쿼리 형식 SELECT 문을 기본으로 하고, 가장 첫 줄에 CREATE VIEW를 적어 뷰 이름을 지정하면 끝이다. CREATE VIEW 뷰이름 SELECT 컬럼1, 컬럼2 FROM 테이블 WHERE 조건; 예시 CREATE VIEW EMP_DEPT_VIEW AS SELECT E.NAME, E.JOB, D.DNAME, D.LOC FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE D.LOC = 'CHICAGO'; 뷰 장점 데이터 중복 방지 실 데이터를 저장하지 않아 중복을 피할 수 있음. 신규 테이블은 데이터를 복제해 저장 공간을 더 많이 사용 데이터 일관성 항상 최신 데이터를 보여줌. 신규 테이블은 주기적으로 갱신해야 하며, 그 사이 데이터 불일치가 일어날 수 있음 보안 강화 특정 컬럼이나 행에 대한 접근 제한을 걸 수 있음, 원본 테이블의 구조를 숨기면서 필요한 정보만 제공 복잡한 쿼리 단순화 자주 사용되는 복잡한 쿼리를 뷰로 만들어 재사용, 실무에서...

1일 전
[SQLD/데이터베이스] SQL문 - JOIN과 서브 쿼리

목차 JOIN 개념과 종류 JOIN 예제 서브 쿼리 개념과 종류 서브 쿼리 예제 JOIN 개념과 종류 데이터모델링에서의 관계는 서로 연결되어 있다는 의미 부모 테이블의 식별자를 자식 테이블의 식별자로 포함시키면 식별 관계, 그렇지 않으면 비식별 관계라고 함 관계 개념을 SQL에서 JOIN으로 부름 JOIN은 데이터베이스에서 여러 개의 테이블을 결합해 원하는 데이터를 추출할 때 사용하는 구문 식별자 관계만 JOIN이 가능한가? -> 주식별자(PK)나 보조식별자(FK)에 의해 JOIN이 이뤄지지만, 논리적인 값들의 연관만으로도 이뤄질 수 있음 조인 예시 및 조인 과정 전체 구문 SELECT 별칭1.컬럼명, 별칭2.컬럼명 FROM 테이블1 AS 별칭1 JOIN 테이블2 AS 별칟2 ON 별칭1.컬럼명 = 별칭2.컬럼명; JOIN 이후 최종적으로 출력할 컬럼 선택 SELECT 별칭1.컬럼명, 별칭2.컬럼명 두 테이블의 JOIN이 이뤄짐 FROM 테이블1 AS 별칭1 JOIN 테이블2 AS 별칟2 서로 일치하는 조건으로 JOIN 설정 ON 별칭1.컬럼명 = 별칭2.컬럼명; JOIN의 종류는 다양하고, 주로 다음이 있음 JOIN 종류 설명 INNER JOIN 두 테이블에서 매칭되는 데이터만 가져옴 LEFT JOIN 왼쪽(기준) 테이블의 모든 데이터와 매칭되는 데이터 가져옴 RIGHT JOIN 오른쪽(기준) 테이블의 모든 데이터와 매칭되는 데이터...

1일 전
[SQLD/데이터베이스] 정규화와 계층형 데이터 모델링

정규화 정규화 : 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 해 입력/수정/삭제 이상 현상을 제거하는 것 정규형 종류 : 주로 1차, 2차, 3차가 사용된다. 제1정규형 : 속성은 하나의 값만 가져야 함 제2정규형 : 1정규형 + 기본 키의 부분적 종속성이 제거되어 기본 키 전체에 종속되어야 한다. 제3정규형 : 2정규형 + 모든 비주요 속성이 모든 주식별자에만 종속되고 비주요 속성 간 종속성이 없어야 한다. 종속 : 특정 값이 무엇에 의해 결정되는지를 나타냄 함수종속성 : 데이터가 특정 기준값에 의해 종속되는 현상, 기준 값이 결정자가 되고 종속되는 값이 종속자가 됨 제2정규화의 필요성 데이터 중복 : 데이터 중복으로 저장 공간 차지 및 데이터 관리 복잡성 증대 업데이트 이상 삽입 입상 삭제 이상 반정규화: 정규화의 원칙을 일부 또는 전부 역행해 데이터의 중복을 의도적으로 허용하거나 테이블 구조를 단순화하는 과정 반정규화가 고려되는 상황 조회 성능 향상 쿼리 간소화 트랜잭션 처리 SQL 쿼리 실행 순서 SQL 쿼리 실행 순서 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 가져올 곳을 찾고 재료를 선택해서 분류하고 재선별 요리 방법 선택 플레이팅 관계와 조인 관계 : 서로 연결돼 있음 조인: 데이터 모델링에서 관계 개념, 두 개 이상의 테이...

5일 전
[SQLD/데이터베이스] 데이터 모델링 개요와 ERD

데이터 모델링 모델링 : 사람이 살아가면서 접할 수 있는 다양한 현상을 표기법에 따라 표기하는 것 자체 모델링 종류 정보시스템 모델링 : 데이터 모델링을 포함함. 복잡한 데이터를 컴퓨터 저장 구조로 변환하는 과정, 데이터를 구조화하고 체계화하는 모든 것을 망라함 수리 모델링 : 수학적 모델링, 공학 분야에서 사용되는 미분 방정식, 상태 방정식, 시스템 방정식, 시스템 함수 등이 해당 통계 모델링 : 확률 현상을 차트, 표, 수식, 함수 등으로 표현. 회로 모델링 : 회로 소자를 이용해 증폭, 필터링, 스위칭 등 연산을 수행하는 회로를 특정한 규칙에 따라 표현하는 것 모델링 특징 추상화 - 단순화 - 명확화 데이터 모델링 : 정보시스템 구축을 위해 데이터 관점에서 업무를 분석하고, 현실의 데이터를 약속된 표기법으로 표현하는 과정 데이터 모델링 3단계 (개념 - 논리 - 물리) 개념 : 추상화 수준이 높고, 업무 중심적, 포괄적인 수준의 모델링 진행 논리 : 시스템 구축을 위한 키, 속성, 관계 등을 정확하게 표현해 높은 재사용성 물리 : 성능, 저장 등 물리적인 성격을 고려해 실제 데이터베이스 구성 설계 데이터 독립성의 구성 요소, 데이터 베이스 스키마 (외부 - 개념 - 내부) 외부 : 서비스 스키마 또는 뷰 스키마, 화면에서 사용자가 보는 개인적인 DB 스키마 개념 : 모든 애플리케이션 사용자가 필요로 하는 데이터를 통합해 조직 전...

6일 전
6
[SQLD/Oracle] SQLD 소개 및 오라클 SQL 실습 환경 구성

목차 SQLD 시험 소개 오라클(Oracle) 데이터베이스 소개 오라클(Oracle) 데이터베이스 실습 환경 구성 SQLD 시험 소개 SQLD 자격증은 국가공인 데이터베이스 SQL 자격증이다. SQLD(Structued Query Language Developer) 자격증은 상위 자격증인 SQLP와 달리 데이터베이스 분야만 본다는 점에서 정보처리기사와 함께 응시하려는 수험생이 많다. https://www.dataq.or.kr/www/sub/a_04.do 데이터자격검정 데이터자격검정, 빅데이터분석기사, DAP, DAsP, SQLP, SQLD, ADP, ADsP www.dataq.or.kr SQLD 자격증은 필기 시험으로만 구성돼 있다. 시험 시간은 총 90분이며, 다음 문항이 출제된다. 1과목 - 데이터 모델링의 이해: 10문제(문항당 2점) → 총 20점 (8점 미만 과락) 2과목 - SQL 기본 및 활용: 40문제(문항당 2점) → 총 80점 (32점 미만 과락) 과목명 SQLP SQLD 데이터 모델링의 이해 O O SQL 기본 및 활용 O O SQL 고급 활용 및 튜닝 O X SQLD의 문제는 오라클(Oracle)과 MS SQL Server의 두 DBMS 기준으로 혼용돼 출제되어 MySQL과는 문법이 조금 다르다. 오라클(Oracle) 데이터베이스 소개 오라클 DB는 Oracle Corporation에서 개발한 RDBMS다. 관계...

2025.02.16
5
[PostgreSQL] MySQL과의 비교, docker 활용 설치

목차 개요 MySQL과의 비교 docker container 활용 설치 개요 PostgreSQL : 오픈소스로 개발된 관계형 데이터베이스, 1996년을 시작으로 1997년에 첫 번째 오픈소스가 공개됐다. 다양한 영역에서 활용되고 있고 다른 DB와 비교해서 현재 우위를 차지하고 있는 추세다. 그림. PostgreSQL 로고 '코끼리는 크고 강하고 믿음직하며 기억력이 좋다'는 데에서 로고에 코끼리 사용 구글 트렌드를 기초 데이터로 데이터베이스의 검색 지표를 확인했을 때 PostgreSQL은 4위 정도로 높은 순위권에 있음을 확인해볼 수 있다. https://pypl.github.io/DB.html - PostgreSQL은 2020년 가장 빠르게 성장하는 DBMS로 선정되어 올해의 데이터베이스 상을 수상했다. (2021년과 2022년에는 Snowflake가 수상했다.) - PostgreSQL을 사용하는 주요 기업으로 Apple, Cisco, Facebook, Red Hat 등이 있다. MySQL과의 비교 처음 RDBMS를 배울 때 MySQL과 MariaDB 등을 먼저 접하는데 소규모 사업장이나 교육장에서 이용하기 쉽고 충분한 성능을 가지는 이점 때문이다. PostgreSQL과 MySQL을 데이터 처리 측면에서 비교하면 다음과 같다. 항목 PostgreSQL 13 MySQL 8 최대 DB 크기 무제한 무제한 최대 테이블 크기 32TB 32T...

2024.07.21
8
[CentOS] 리눅스 CentOS 8에서 Mysql 설치(install)

Mysql 설치 및 사용 절차 요약 CentOS 8 운영체제에 Mysql 데이터베이스를 설치하자. 설치 및 사용 절차를 요약하면 다음과 같다. -1. mysql-server 설치 -2. mysql 서비스 시작 -3. mysql 설정 -4. mysql secure installation 설정 -5. mysql 설치 확인 1. mysql-server 설치 mysql-server를 설치한다. centos 8버전에서는 별도 설정없이 바로 패키지 관리자로 설정 가능하다. sudo yum install mysql-server 2. mysql 서비스 시작하기 설치한 mysql 서비스 데몬을 시작하고 상태를 확인한다. sudo systemctl start mysqld.service sudo systemctl status mysqld 3. mysql 설정 운영체제가 시작될 때마다 서비스가 구동되도록 enable 설정을 필요에 따라 설정한다. $ sudo systemctl enable mysqld Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service. 4. mysql secure installation 설정 mysql 설정 후 mysql에 접속할 준비를 마친다. mysql_secure_installa...

2021.08.02
[정보처리산업기사] 필기 Part 3. 관계형 데이터베이스 모델, 언어

#정보처리산업기사 R-DB 개요 관계형 데이터베이스(Relational Database)는 1970년 IBM에 근무하던 코드(E. F. Codd)에 의해 제안되었다. - 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현한다. - 릴레이션은 개체를 표현하는 개체 릴레이션, 관계를 나타내는 관계 릴레이션으로 구분할 수 있다. 장점 : 간결하고 직관적이며 다른 데이터베이스로의 변환이 용이하다. 단점 : 성능이 다소 떨어진다. 릴레이션 : 데이터를 표 형태로 표현, 구조를 나타내는 릴레이션 스키마와 실제 값인 릴레이션 인스턴스로 구성 튜플 : 릴레이션을 구성하는 행 (= 레코드) - 카디날리티 : 튜플의 수 속성 : 데이터 필드 (= 컬럼) - 디그리, 차수 : 속성의 수 도메인 : 같은 컬럼에 해당하는 값 집합 릴레이션의 특징은 다음과 같다. - 릴레이션은 하나에 같은 튜플이 포함될 수 없으므로 포함된 튜플은 모두 다르다. - 한 릴레이션에 포함된 튜플 사이에는 순서가 없다. - 튜플들의 삽입, 삭제 등 작업으로 릴레이션은 시간에 따라 가변적이다. - 릴레이션 스키마를 구성하는 속성간 순서는 중요치 않다. - 속성의 유일한 식별을 위해 속성의 명칭은 고유해야 하지만 속성을 구성하는 값은 동일할 수 있다. - 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정한다. - 속성의 값은 논리적...

2021.05.12
[정보처리산업기사] 필기 Part 1. DB 개념

#정보처리산업기사 데이터베이스 실무 이론 글 참고 : https://blog.naver.com/dsz08082/221243494500 * 본 글은 위 글에서 조금씩 보강해 작성되었습니다. 정보 시스템 자료(Data) : 관찰이나 측정을 통해 수집한 단순한 사실이나 결과값, 가공되지 않은 상태 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태로 자료를 가공 처리해 얻을 수 있는 결과 정보 시스템 : 조직체에 필요한 데이터를 수집, 저장해 두었다가 필요 시 처리해 정보를 생성하고 분배하는 수단 정보 시스템의 처리 형태에 따라 다음 세 가지로 분류 1. 일괄 처리 시스템 : 시스템 효율성을 최대한 높이기 위해 일정 시간 혹 일정량 데이터를 한 번에 처리하는 방식 - 반환 시간이 늦지만 하나의 작업이 모든 자원을 독점해 CPU 유휴 시간이 줄어들며 트랜잭션당 처리 비용이 적다. - 급여 계산, 회계 마감, 세무 처리, 수도/전기 요금 처리, 연말 결산 등에 사용된다. => 유휴 시간 : 작업이 비는 시간 2. 온라인 실시간 처리 시스템 : 데이터 발생 즉시 처리해 결과를 산출하는 방식 - 사용자 중심의 처리 방식, 시간이 단축되어 처리 비용이 절감된다. - 우주선 운행, 데이터 수집, 은행 온라인 업무 등 시간에 제한을 두고 수행되어야 하는 업무에 사용된다. 3. 분산 처리 시스템 : 지리적으로 분산돼 있는 여러 ...

2021.04.15
[정보처리산업기사] 실기 2과목: DB - SQL(DDL, DML, DCL, JOIN)

SQL 개념 SQL : 표준 관계형 데이터베이스 언어, 관계대수와 관계해석을 기초로 한 혼합 데이터 언어다. 사용 용도에 따라 DDL, DML, DCL로 구분한다. - 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 유도하는지를 기술하는 절차적 언어 (순수관계: Select 선택, Project 추출, Join 병합, Division 나누기 / 집합연산: Union 합집합, Intersection 교집합, Difference 차집합, Cartesian Product 교차곱 ) - 관계해석 : 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성 (연산자: OR, AND, NOT) - DDL : Data Define - 데이터 정의어 - DML : Data Manipulation - 데이터 조작어 - DCL : Data Control - 데이터 제어어 메타 데이터(Metadata) = 스키마(Schema) : 데이터를 설명하는 데이터 -> "학년은 숫자 1자리고 1~3만 저장할 수 있다"는 실제 데이터가 아닌 메타 데이터에 해당한다. 스키마는 다음 세 가지 종류가 있다. ① 외부 스키마(External Schma, 서브스키마) 사용자 요구 사항을 도출하는 과정 데이터베이스 시스템 사용자의 관점에서 보고자 하는 정보의 집합 ② 개념 스키마(Conceptual Schma, 논리 스키마) 사용자 관점 스키마인 외부 스키마를 분석...

2021.10.14
5
[Raspberrypi] 라즈베리파이 몽고(MongoDB) 설치와 원격 설정

몽고 데이터베이스(MongoDB) 설치와 원격 설정 Raspberrypi MongoDB란? 데이터베이스는 크게 관계형 데이터베이스인 Only-SQL과 비관계형인 NoSQL(Not Only SQL)로 구분한다. 몽고(Mongo) 데이터베이스는 비관계형 데이터베이스로 Collection 데이터 모델 구조를 가진다. 라즈베리파이 MongoDB 설치 먼저 다음 명령을 사용해 몽고를 설치한다. sudo apt install mongodb-server systemctl로 서비스를 제어할 수 있으며 설치한 mongodb 서비스를 동작시키자. - start : 서비스 시작 - status : 상태 확인 - enable : 부팅 시 자동으로 켜지게 sudo systemctl start mongodb sudo systemctl status mongodb sudo systemctl enable mongodb mongo를 실행해 실행된 몽고 데이터베이스에 접속할 수 있다. sudo mongo 원격 접속 설정 몽고 설정 파일을 확인해 bin_ip가 127.0.0.1이라면 앞에 "#"을 추가해 막고 bind_ip = 0.0.0.0을 추가한다. sudo vi /etc/mongodb.conf 파이썬 코드를 사용해 원격에서 라즈베리파이의 몽고 데이터베이스를 제어한다. 다음은 단순히 데이터베이스에 연결해 Test의 collection에 데이터 하나를 삽입하는 예제다...

2021.02.05
[R] sqldf를 이용한 데이터 분석, R에 SQL 사용하기

sqldf를 이용한 데이터 분석, R에 SQL 사용하기 R. R언어에 SQL? R에는 많은 데이터 처리 함수가 있어 데이터를 편리하게 원하는대로 변환해 사용할 수 있다는 장점을 가진다. R 패키지 중 Sqldf 패키지는 SQL문을 사용할 줄 아는 사용자가 쉽게 데이터에 접근할 수 있게 한다. 데이터베이스 실무 : https://dsz08082.blog.me/221243494500 데이터베이스 실무 데이터베이스 (DB, DataBase) 관련된 데이터들의 모임, 조직체의 응용 시스템이 공유해서 사용하는 운... dsz08082.blog.me 예제를 통한 SQL 언어 사용 방법 : https://dsz08082.blog.me/221850527996 [MairaDB] 마리아 DB 데이터베이스 제어, SQL 쿼리 사용 방법 마리아 DB 데이터베이스 제어 서론라즈베리파이에 마리아 DB를 설치해 사용한다.라즈베리파이 마리아... dsz08082.blog.me R. R언어의 데이터 관리 패키지, Sqldf 사용하기 패키지 사용을 위해 Sqldf 패키지를 설치하자. install.packages("sqldf") library(sqldf) Sqldf 패키지 실습을 위해 사용할 데이터셋은 iris 붓꽃 데이터셋이다. 이전에 산점도 그리기에서 사용해봤다. SQL 언어의 조회 명령어인 select 문을 사용해 데이터셋의 내용을 조회해보자. select *...

2020.03.31
19
[Python Flask] #12 파이썬 플라스크 로그인과 세션, SQLite DB

#12 로그인과 세션, SQLite DB 파이썬 플라스크 > 목차 - 개요 - 회원가입 및 로그인 폼 만들기 - 데이터베이스 설정 - 세션 설정 - 완성된 페이지 개요 어떤 애플리케이션도 애플리케이션을 사용하는 사용자가 필요하고 사용자 정보를 관리할 수 있어야 한다. 플라스크 웹 프레임워크의 로그인 및 세션 처리를 알아보고 데이터베이스를 연결해 사용자 정보를 관리해보자. 우선 로그인을 위한 데이터베이스 사용 및 소스코드를 실행하기 위해 다음 라이브러리를 설치한다. 해당 라이브러리는 MysqL, MariaDB 등 MySQL 계열의 관계형 데이터베이스를 별도 사용하기 위해 설치한다. >pip install flask-sqlalchemy 소스코드 : https://github.com/neltia/flask-basic/tree/main/03_Login_EX_sqlite 파일 구조 : 이미지에 네이버 아이콘을 사용한다. 사용하는 html 파일은 총 5개, 각 베이스, 메인 페이지, 로그인, 404 에러 처리, 가입 페이지다. 간단히 회원가입 및 로그인을 할 수 있는 폼을 만들고 데이터베이스로 로그인 기능을 만든다. 로그인 여부에 따라 세션을 구현해 로그인을 해야만 서비스를 이용할 수 있게 해보자. 여기서는 간단히 네이버 블로그 페이지를 여는 서비스를 다룬다. 회원가입 및 로그인 폼 만들기 base.html 은 모든 페이지의 베이스 코드다. 다...

2020.03.26
5
[Python] 파이썬 Sqlite 데이터베이스 읽고 쓰기

Sqlite3를 사용해 데이터베이스 읽고 쓰기 Python Database 기본 데이터베이스 이론 : https://dsz08082.blog.me/221243494500 데이터베이스 실무 데이터베이스 (DB, DataBase) 관련된 데이터들의 모임, 조직체의 응용 시스템이 공유해서 사용하는 운... dsz08082.blog.me => 엑셀 파일을 조작한다고 생각하자. 작은 데이터베이스 sqlite SQLlite는 별도 데이터베이스 서버 없이 데이터베이스 파일에 기초해 데이터베이스 처리를 구현한 엔진이다. 실제 기업 환경이라면 기업의 서버에 결과를 저장하지만 별도 서버 환경이 존재하지 않는 경우가 보통이다. 확인 목적으로 데이터베이스를 설계할 때 별도 복잡한 서버 설치 없이 쉽고 편리하게 사용할 수 있다는 점에서 널리 이용된다. SQLite는 부분의 운영체제에서 파이썬 설치 시 모듈을 기본 제공하는 내장 모듈이다. 다음과 같이 작성하면 sqlite 모듈을 불러오고 sqlite의 버전을 확인한다. import sqlite3 print(sqlite3.version) --- 출력 --- '2.6.0' 모듈을 잘 가져왔다면 데이터베이스 파일을 생성한다. sqlite3의 connect 함수를 사용해 데이터베이스 파일을 만드며 함수 인자로 생성할 데이터베이스 파일의 경로와 이름을 지정해 생성한다. 단, 윈도우 운영체제에서 데이터베이스 파일을 만...

2020.03.25
2
[Python] 파이썬 Pymysql 데이터베이스 읽고 쓰기

Pymysql를 사용해 데이터베이스 읽고 쓰기 (MySQL / Maria DB) Python Database Mysql / Maria DB 데이터베이스 원격 접속 설정 (라즈비안 운영체제 기준) : https://dsz08082.blog.me/221852334639 [Raspberrypi] 라즈베리파이 마리아 Maria DB 원격 접속 설정 라즈베리파이 마리아 Maria DB 원격 접속 설정(MySQL / Maria DB)개요라즈베리파이에 설치한 라... dsz08082.blog.me Pymysql 데이터베이스는 MySQL 혹은 Sqlite를 사용한다. MySQL은 마리아(Maria) DB 와 문법이 일맥상통하며 마리아 DB를 많이 쓰는 추세다. Sqlite3 는 가벼운 데이터베이스로 개인 실습 용도로 사용하는 편이다. MySQL과 마리아 DB와는 문법이 같고 Sqlite와는 SQL 언어 사용 방법이 살짝 다르다. 두 데이터베이스를 각 파이썬을 다루기 위해 각 다음 라이브러리를 사용한다. - Sqlite : sqlite3 - Maria db / Mysql : pymysql 데이터베이스에서 읽어올 때는 파이썬의 데이터 허브로 불리는 판다스(pandas)를 사용해 여러 데이터 형태로 변환 가능하다. 다음은 판다스가 제공하는 마리아 DB 함수다. 함수 기능 read_sql_table(table_name, con[, schema, ...])...

2020.03.13
17
[MariaDB] 마리아 DB 데이터베이스 제어, SQL 쿼리 사용 방법

마리아 DB 데이터베이스 제어 MariaDB / MySQL 마리아 데이터베이스 접속 비밀번호 설정이 안 된 초기 상태면 다음 명령으로 접속. -u는 사용자. mysql 에 해당 사용자로 접속하겠다는 뜻. $ mysql -u root -p 비밀번호 설정이 되어있다면 다음 명령으로 접속한다. -p 옵션이 비밀번호 의미. $ mysql -u root -p 데이터베이스 및 테이블 확인 SQL 질의 명령 : 기본적으로 명령 끝에 세미콜론(;)을 붙인다. - show : 정보 확인 - use : 입력 사항 접속 (사용) 다음은 기본 데이터베이스를 확인하고 정보 스키마에 접속해 테이블 정보를 확인한다. > show databases; //현재 데이터 베이스를 보여준다. > use information_schema; 새 데이터베이스 생성과 데이터 삽입 SQL 질의 명령 : 기본적으로 명령 끝에 세미콜론(;)을 붙인다. - create : 데이터베이스 및 테이블 등 생성 - insert : 테이블에 데이터 열 삽입 problem 이름의 데이터베이스를 새로 만든다. 문제 데이터베이스에는 데이터분석 준전문가 자격증인 ADsP의 문제를 삽입할 것이다. show database; create database problem; show database; //확인해보면 새 데이터베이스가 만들어져 있다. 새로 만든 데이터베이스는 아직 아무런 테이블을 만들지 않아 ...

2020.03.13
[Data Anaysis] 데이터 분석 - 데이터 분석 기획 방향성 도출

데이터 분석 기획의 이해. 분석 기획 방향성 도출 ADsP - 데이터 분석 기획 분석을 수행하기 앞서 수행할 과제의 정의 및 의도한 결과를 도출할 수 있게 관리하는 방안인 분석 기획! 이 분석 기획의 특징, 유형, 고려 사항을 알아본다. # 분석 기획의 특징 분석 기획 : 실제 분석을 수행하기 앞서 분석을 수행할 과제의 정의 및 의도했던 결과를 도출할 수 있도록 이를 적절히 관리할 수 있는 방안을 사전에 계획하는 일련의 작업. 분석 기획의 역할 : (단기) 분석 과제 발굴 -> 분석 과제의 목표를 달성하기 위한 요건 정의 (중장기) 마스터플랜 수립 -> 분석 과제 수행을 위한 분석 지원 거버넌스 체제 도출 분석 기획(데이터 사이언스) 역량 : 컴퓨터 사이언스, 수학 & 통계학 지식, 비즈니스 분석 능력 ## 분석 주제 유형 분석의 대상 및 분석의 방법에 따라 표와 같이 4가지로 나뉜다. 분석의 주제 및 기법의 특성상 네 유형은 반복된다. 분석 대상 Known Un-known 분석 방법 Known 최적화 (Optimization) 통찰 (Insifht) Un-known 솔루션 (Solution) 발견 (Discovery) 1) Optimization : 분석 대상 및 분석 방법을 이해하고 현 문제를 최적화의 상태로 수행. 2) Solution : 분석 과제는 수행되고 분석 방법을 알지 못하는 경우 솔루션을 찾는 방식으로 분석 과제 수행...

2020.02.10
10
[Web. Wargame.kr] md5 password

md5 password - 문제 열람 사이트 : http://wargame.kr/challenge 이번 문제는 md5 password로 md5함수로 값이 true로 암호화될 때 어떤 일이 발생하는지 알아본다. md5 password - 입력 확인 Start를 눌러 접속하면 입력창과 함께 비밀번호를 입력하면 로그인이 되는듯한 창이 나타난다. 아무거나 입력하면 틀렸음을 나타내는 메시지가 나오고 메시지는 wrong이다. md5 password - 소스코드 확인 위 창에서 get source란이 있어서 페이지 소스코드를 살펴보라는 것 같다. 이를 클릭하거나 브라우저에서 페이지 소스코드를 띄워보면 다음 사진과 같다. 전체적으로 해석해보면 php로 작성된 이 코드는 select로 질의를 받는데 이는 md5로 암호화된 입력받은 $ps가 true일 경우라고 한다. 그 후 맞으면 안녕 관리자 메시지, 틀리면 틀린 메시지를 출력하고 종료하는 간단한 프로그램이다. 여기서 공략할 점은 누가봐도 취약해보이는 비밀번호를 받아 처리하는 부분이다. 이 부분을 자세히 들여다보자. 다음 코드에서 나타나는 것처럼 질의를 보내니 우리는 이 쿼리문에 들어갈 때 패스워드가 참인 것으로 설정해줘야 한다. 즉 비밀번호에 1"="1"이나 1 or 1처럼 비밀번호가 참으로 설정되게 만들어주면 조건문을 무력화시킬 수 있다. $ps = mysql_real_escape_string($...

2019.05.09