1️⃣ CSV Comma Separated Value - 각 열이 특정한 의미를 가진다. # movies.csv # 국문 제목,영문 제목,개봉 연도 다크나이트,The Dark Knight,2008 겨울왕국,Frozen,2013 슈렉,Shrek,2001 슈퍼맨,Superman,1978 - 다른 구분 문자(delimiter)도 사용 가능하다. # movies.csv 다크나이트|The Dark Knight|2008 겨울왕국|Frozen|2013 슈렉|Shrek|2001 슈퍼맨|Superman|1978 - 데이터에 ,가 포함된 경우 큰따옴표 (" ") 를 이용하여 데이터를 감싼다 # movies.csv 먹고 기도하고 사랑하라,"Eat, Pray, Love",2010 "헬로우, 뉴욕","Hello, New Yor..
1️⃣ 딕셔너리 (Dictionary) 키와 값이 키:값 형태로 이루어진 데이터 구조 { key: value } - key : 값을 찾기 위해 넣어 주는 데이터 - value : 찾고자 하는 데이터 empty_dict = {} new_dict = { 'apple': '사과', 'book': '책', 'human': '사람', } dictionary = {} dictionary['apple'] = '사과' dictionary['book'] = '책' dictionary['human'] = '사람' - 딕서너리 vs 리스트 딕셔너리는 키와 값이 쌍을 이루기 때문에 키를 이용해 값을 빠르게 찾아낼 수 있습니다. 리스트는 모든 값를 확인해야 하므로, 데이터가 많을 경우 수십 배 까지도 성능 차이가 날 수 있다...
1️⃣ 파일 다루기 필요한 이론 1) 파일 열기 / 닫기 # 파일 열기 open() file = open('파일명') # 파일 읽기 read() content = file.read() # 파일 닫기 close() file.close() - 파일의 모드 설정하기 (옵션을 주지 않고 열면 '읽기 모드'로 파일이 열린다.) # 쓰기 (Write) 모드로 파일을 연다 with open('파일명', 'w') as file: file.write('Hello') 2) 파일 자동으로 닫기 with open('파일명') as file: content = file.read() # file.close() 필요 없음 3) 파일 읽기 file.read() - 줄 단위로 읽기 contents = [] with open('파일명'..
1️⃣ 리스트 순회하기 필요한 이론 1) for 반복문 2) 인덱싱 3) 문자열 인덱싱 ▶ 트윗을 정제하기 위해 리스트에 담긴 요소를 하나씩 가져오기 trump_tweets = [ 'Will be leaving Florida for Washington (D.C.) today at 4:00 P.M. Much work to be done, but it will be a great New Year!', 'Companies are giving big bonuses to their workers because of the Tax Cut Bill. Really great!', 'MAKE AMERICA GREAT AGAIN!' ] def date_tweet(tweet): for index in range(len(tw..
1️⃣ 이상 현상과 정규화 이상 현상 (Anomaly) 잘못된 데이터베이스 설계로 발생하는 오류 - 삽입 이상 : 데이터를 삽입할 때 불필요한 내용까지 삽입해야 하는 문제 - 갱신 이상 : 중복된 데이터 중 일부만 갱신되어 발생하는 문제 - 삭제 이상 : 어떤 데이터를 삭제할 때 다른 유용한 정보도 함께 삭제되는 문제 ex) 주문을 하지 않은 고객의 데이터를 넣을 수 없는 문제 → 삽입 이상 '김민준' 고객의 주소를 수정하려면 모든 튜플에서 갱신해야 하는 문제 → 갱신 이상 '이서연' 회원의 주문 기록을 지우려면 회원의 데이터가 함께 삭제되는 문제 → 삭제 이상 함수 종속성 속성들 간의 종속 관계 어떤 속성 X의 한 값이 다른 속성 Y에 속한 하나의 값에만 매핑되는 경우를 말한다. 여기서 X를 결정자, ..
1️⃣ 제약조건 테이블에 잘못된 데이터가 입력되는 것을 방지하기 위한 규칙 → 제약 조건을 통해 무결성을 지킬 수 있다. NOT NULL, UNIQUE, DEFAULT, CHECK, PRIMARY KEY, FOREIGN KEY 등 NOT NULL 널(NULL) 값 비허용 - 데이터를 입력하지 않으면 에러가 발생한다. - 아무것도 명시하지 않는 경우 기본 값은 NULL값을 허용한다. CREATE TABLE customer( idVARCHAR(10), nameVARCHAR(10) NOT NULL ); INSERT INTO customer (id, name) VALUES('kmax6', '김민준'); INSERT INTO customer (name) VALUES('이서연'); -- 에러 발생 -- INSERT..
1️⃣ 데이터베이스 소개 - 데이터는 현실 세계에서 수집된 단순한 사실과 값들을 모아 놓은 것 - 정보는 데이터를 특정 목적에 의해 해석하거나 가공한 형태 데이터베이스 : 데이터들의 집합 - 한 조직 안에서 여러 사용자와 응용 프로그램이 공동으로 사용하는 데이터들을 통합하여 저장하고 운영하는 데이터 데이터베이스의 필요성 예전에는 파일 처리 시스템을 사용하여 데이터를 공유 → 파일처리 시스템의 한계 - 데이터의 구조가 바뀌면 응용 프로그램의 구조도 바뀌어야 한다. (데이터 종속의 문제) - 응용 프로그램 별로 데이터를 생성할 수 있기 때문에 데이터가 중복될 수 있다. (데이터 중복의 문제) - 데이터의 무결성을 지킬 수 없다. 💡 용어해설 무결성 : 데이터가 정확하고 일관된 형태로 유지되는 것 → 데이터의..
1️⃣ 서브쿼리 란? 하나의 쿼리 안에 포함된 또 하나의 쿼리 메인 쿼리가 서브쿼리를 포함하는 종속적인 관계 - 알려지지 않은 기준을 이용한 검색에 유용하다. - 메인 쿼리가 실행되기 이전에 한 번만 실행한다. - 한 문장에서 여러 번 사용 가능하다. SELECT * FROM employee WHERE 급여 > (SELECT 급여 FROM employee WHERE 이름=‘elice’); 서브쿼리 사용 시 주의사항 - 서브쿼리는 괄호와 함께 사용되어야 한다. - 서브쿼리 안에서 ORDER BY 절은 사용할 수 없다. - 서브쿼리는 연산자의 오른쪽에 사용되어야 한다. - 서브쿼리는 오로지 SELECT문으로만 작성 할 수 있다 2️⃣ 반환에 따른 서브쿼리 분류 단일행 서브쿼리 (Single-Row Subqu..
1️⃣ 데이터 그룹화 1) GROUP BY : 데이터 그룹 짓기 SELECT 컬럼명 FROM 테이블명 GROUP BY 그룹의 기준 컬럼; -- SELECT user_id, COUNT(*) FROM rental GROUP BY user_id; 그룹함수 활용 방법 SELECT user_id, SUM(컬럼명) FROM rental GROUP BY user_id; -- user_id가 같은 열에서 컬럼의 내용을 다 더한 값을 출력 SELECT user_id, AVG(컬럼명) FROM rental GROUP BY user_id; -- user_id가 같은 열의 컬럼의 평균을 출력 SELECT user_id, MAX(컬럼명) FROM rental GROUP BY user_id; -- user_id가 같은 열중에서 ..
1️⃣ SQL 내장함수 1) COUNT 검색한 결과의 데이터의 개수를 가져오는 내장함수 (NULL인 데이터는 제외) SELECT COUNT(컬럼명) FROM 테이블명; -- SELECT COUNT(id) FROM book; 검색할 데이터에 *을 입력하면 모든 데이터 검색 SELECT COUNT(*) FROM book; 2) LIMIT 테이블에서 출력하고자 하는 데이터의 개수를 제한하는 내장함수 SELECT * FROM 테이블명 LIMIT 제한할 숫자; -- book 테이블에서 데이터를 5개만 가져오기 SELECT * FROM book LIMIT 5; 특정범위를 지정할 수 있다. (첫 번째 컬럼의 index는 0) -- 2번째 데이터부터 5개를 가져오기 SELECT * FROM book LIMIT 1, 5..