일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Google ML Bootcamp
- 이것이 코딩테스트다
- IRIS
- sklearn
- matplotlib
- 데이터분석
- 데이터분석준전문가
- 이코테
- SQLD
- r
- 통계
- 회귀분석
- 자격증
- ADsP
- 데이터 전처리
- 파이썬
- 코딩테스트
- 데이터 분석
- 머신러닝
- ML
- scikit learn
- pytorch
- SQL
- 딥러닝
- pandas
- Python
- 시각화
- tableau
- Deep Learning Specialization
- 태블로
- Today
- Total
목록SQL (14)
함께하는 데이터 분석
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bFeAWl/btr8KILh5X4/RVclGhpIDg2B2fgq0OQyGk/img.png)
안녕하세요! 오늘은 48회 SQLD 합격 후기를 작성하려고 합니다 이전 46회 때 총점 70점을 넘을 넘겼었는데 1과목 과락으로 인해 떨어졌습니다 그래서 이번 시험에서는 이틀 잡고 이론과 노랭이만 풀고 시험을 보려고 했는데 시험 하루 전날 몸살로 인해 이론만 한번 훑어보고 시험을 봤는데 운 좋게도 합격하게 되었습니다! 시험 전날 아파서 문제를 풀진 못했지만 침대에 누워서 유튜브로 강의를 봤는데 도움을 많이 받아서 공유하려고 합니다 https://www.youtube.com/watch?v=PC3ypt_VGWI https://www.youtube.com/watch?v=PjCSvexo3Ow 이 두 강의로 한번 쭉 다시 정리하고 시험장에 들어갔습니다 이론을 한번 훑어보고 노랭이와 기출을 풀고 나서 정리할 겸 마..
안녕하세요! 오늘은 SQL 최적화 기본 원리에 해당하는 부분을 정리해볼게요. CBO(Cost Based Optimizer) 테이블 및 인덱스 등의 통계 정보를 활용하여 소요될 처리시간 등을 계산하여 가장 효율적일 것으로 예상되는 실행계획을 선택하는 옵티마이저 실행계획 알 수 있는 정보 1) 액세스 기법 2) 질의 처리 예상 비용 3) 조인 순서 설명 1) 실행계획은 SQL 처리를 위한 실행 절차와 방법을 표현한 것 2) 실행계획은 조인 방법, 조인 순서, 액세스 기법 등이 표현됨 3) 동일 SQL문에 대해 실행계획이 다르면 실행 결과도 같음 4) CBO의 실행계획에는 단계별 예상 비용 및 건수 등이 표시 인덱스 1) 기본 인덱스(Primary key)에 중복된 키 값들이 나타날 수 없음 2) 기본 인덱스..
안녕하세요. 오랜만에 블로그에 글을 포스팅합니다! 오늘은 SQL 기본 및 활용에서 기본에 해당하는 부분의 중요한 핵심 내용을 기록해보겠습니다. DCL GRANT, REVOKE DDL CREATE, ALTER, DROP, RENAME, TRUNCATE DML INSERT, UPDATE, DELETE, SELECT TCL ROLLBACK, COMMIT, SAVE POINT UNIQUE : 테이블 내의 중복된 값 x, NULL 입력 가능 PK : 주키로 테이블 당 1개만 생성 가능(UNIQUE & NOT NULL) FK : 외래키로 테이블 당 여러 개 생성 가능(참조 무결성 제약) NOT NULL : 칼럼이 명시적으로 NULL 입력 방지 NULL이란? 모르는 값, 값의 부재, 연산시 NULL로 ON DELET..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcICnA/btrAV3mI7rM/3teKhbZLIk4PvPP83xsMS0/img.png)
오늘은 SQL에서 복수 행 함수에 대해 알아보겠습니다. 복수 행 함수는 단일 행 함수와 달리 여러 행들이 하나의 결과값으로 나타나는 특징이 있습니다. 복수 행 함수에는 집계 함수와 그룹 함수가 있습니다. 표로 요약하여 보여드리겠습니다. 구분 함수 설명 집계 함수 count / count(distinct) 행수 / 중복 제거한 행수 sum 합계 avg 평균 max / min 최대 / 최소 그룹 함수 with rollup 소계와 합계 그럼 이제 SQL workbench를 통해 살펴보겠습니다. 데이터 베이스 사용 /* 데이터베이스 da 사용 */ use da; insurance 데이터를 사용하기 위해 데이터 베이스 da를 사용하겠습니다. 그럼 이제 insurance 데이터를 조회하겠습니다. 데이터 조회 /* ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/67FmM/btrAWAEwdqg/GojxHYxeSY8rWzy2G4nCZk/img.png)
오늘은 SQL을 통해 단일 행 함수에 대해 알아보겠습니다. 단일 행 함수는 숫자형, 문자형, 날짜형, 형 변환, 일반 함수로 나뉩니다. 표로 요약하여 보여드리겠습니다. 구분 함수 설명 숫자형 함수 abs(숫자) 절댓값 반환 round(숫자, n) 소수점 n자리까지 반올림 sqrt(숫자) 양의 제곱근 값 반환 문자형 함수 lower(문자) / upper(문자) 소문자 / 대문자 반환 left(문자, n) / right(문자, n) 왼쪽 / 오른쪽 n만큼 반환 length(문자) 문자수 반환 날짜형 함수 year / month / day 연 / 월 / 일 반환 date_add(날짜, interval) 날짜에 interval만큼 반환 datediff(날짜a, 날짜b) 날짜a - 날짜b 일수 반환 형변환 함수 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cLe2X1/btrAL5rausN/3NP5jabDAWzHrySSF5aKa0/img.png)
이번에는 SQL을 통해 특수 연산자와 집합 연산자를 알아보겠습니다. 연산자에 대한 설명을 표로 보여드리겠습니다. 구분 연산자 설명 특수 연산자 between a and b / not between a and b a와 b의 값 사이 / a와 b의 값 사이가 아님 in (a, b) / not in (a, b) a와 b의 값 / a와 b의 값이 아님 like '비교문자열' 비교문자열과 같음 is null / is not null NULL / NULL이 아님 집합 연산자 union 2개 이상 테이블의 중복된 행 제거하여 집합 union all 2개 이상 테이블의 중복된 행 제거없이 집합 그럼 이제 SQL workbench를 통해 살펴보겠습니다. 데이터 베이스 /* 데이터베이스 da 사용 */ use da; 이전..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bylqtx/btrAJAeRN5X/0axgsjYy6Yawlcqq88yOt0/img.png)
오늘은 SQL을 통해 비교 연산자와 논리 연산자를 알아보겠습니다. 우선 연산자에 대해 표로 설명드리겠습니다. 구분 연산자 설명 비교 연산자 = ~와 같다 ~와 같지 않다 >= ~보다 크거나 같다 ~보다 크다 = : 크거나 같음 */ select * from insurance where children >= 2; >= 연산자를 이용하여 2보다 크거나 같은 데이터만 불러왔습니다. /* 연산자를 이용하여 2보다 큰 데이터만 불러왔습니다. >= 와 다르게 children이 2인 데이터가 안 보이는 것을 확인할 수 있죠. /* < : 작음 */ select * from insurance where children < 2; < 연산자를 이용하여 2보다 작은 데이터만 불러왔습니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/znw0L/btrAFbexzL3/G8ivWPwRpLwsIhzKDHtrVK/img.png)
오늘은 여러 개의 테이블을 결합하는 데 사용하는 Join을 알아보겠습니다. 두 개 혹은 그 이상의 테이블이 있을 때 하나의 테이블로 합쳐서 보고 싶을 때 사용합니다. column의 공통된 데이터 값을 기준으로 테이블을 결합합니다. SQL에서 Join은 크게 3가지 종류가 있습니다. Inner Join : 테이블의 공통되는 값에 매칭 되는 데이터만 결합 Left Join : 왼쪽 테이블을 기준으로 테이블의 공통 값이 매칭 되고 왼쪽 테이블에 매칭 되지 않는 오른쪽 테이블의 데이터는 NULL처리 Right Join : 오른쪽 테이블을 기준으로 테이블의 공통 값이 매칭 되고 오른쪽 테이블에 매칭 되지 않는 왼쪽 테이블의 데이터는 NULL처리 그럼 workbench를 통해 자세히 살펴볼까요? 데이터 베이스 사용..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HokIE/btrz43VVJmL/a9ZbwqFkZ9A8khunJCjg11/img.png)
오늘은 데이터를 조회하는 데 사용하는 Select를 조금 더 자세히 알아보겠습니다. Select는 앞에 SQL 명령어 중 데이터 조작어에서 살짝 다뤘습니다. 뒤에서 자세히 다루는 이유는 앞으로 많이 사용하기 때문인데요. 데이터를 분석할 때 Select는 여러 가지 절들과 함께 사용합니다. 대표적으로 from, where, group by, having, order by가 있습니다. 오늘 사용할 데이터는 insurance 데이터입니다. 앞서 R을 통한 회귀분석에서도 이 데이터를 사용했죠. 이제 Workbench에서 살펴보겠습니다. 데이터 베이스 사용 /* 데이터베이스 da 사용 */ use da; 데이터 베이스 da를 사용하겠습니다. 데이터 불러오기 왼쪽의 da 데이터베이스에 마우스 오른쪽을 클릭하면 Ta..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dbZvk4/btrzYTF3Yck/0CCVYIKyHKNlucstDXKrtK/img.png)
이번에는 SQL 명령어 4가지 중 마지막인 트랜젝션 제어어(TCL)에 대해 알아보겠습니다. 트랜젝션 제어어는 데이터 조작어(DML) 명령어를 실행, 취소, 임시 저장할 때 사용하는 명령어입니다. Workbench를 통해 알아보겠습니다. 테이블 생성 /* 테이블 생성 */ create table 인적사항 ( 인덱스 int primary key, 이름 varchar(10), 생년월일 date not null, 성별 varchar(2) ); 전에 만들었던 인적사항 테이블을 그대로 가져왔습니다. 트랜젝션을 시작해보겠습니다. 트랜젝션 시작 /* 트랜젝션 시작 */ begin; 항상 트랜젝션을 시작할 때 begin; 을 실행해줘야 합니다. 이제 트랜젝션을 통해 취소를 하는 방법을 알아보겠습니다 취소(rollback..