일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 노르웨이기준금리
- 파이썬독학
- MBTI성격유형
- MBTI성격검사
- 파이썬수업
- 파이썬강의후기
- 파이썬배우기
- 스크래핑
- 미국디리스킹
- 광교카페
- 중국수출통제
- 순천여행
- 비전공자파이썬
- 파이썬 인강
- 파이썬온라인수업
- MBTI
- swift문법
- 파이썬클래스
- 파이썬독학하기
- 셀레니움
- 패스트캠퍼스수강후기
- 암호화폐
- 파이썬강의
- 비트코인
- 스위스기준금리
- SQL
- 파이썬인강
- 패스트캠퍼스후기
- 파이썬문법
- 파이썬기초
- Today
- Total
목록SQL (16)
이제 데이터 공부 안하는 블로그
보호되어 있는 글입니다.
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GP6QS/btrkCSVxSY0/BQgQg6o6TyERLD3UvAIdI1/img.png)
LEFT OUTER JOIN 왼쪽 테이블을 기준으로 테이블이 합쳐진다. 아래 그림에는 item 테이블(왼쪽) 과 stock 테이블(오른쪽)이 있다. 이 두개의 테이블을 LEFT OUTER JOIN으로 합쳐보겠다. SQL문은 이렇게 써주면 된다. SELECT item.id, item.name, stock.item_id, stock.inventory_count FROM item LEFT OUTER JOIN stock ON item.id = stock.item_id FROM 테이블 1 LEFT OUTER JOIN 테이블2 -> 이렇게 조인을 원하는 테이블들의 이름을 써주면, 테이블1(왼쪽)을 기준으로 조인 된다 ON item.id = stock.item_id -> item 테이블의 id 컬럼과 stock테이블..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/u0yJb/btrj7yLlE2V/JP5UbDSAs6zCmnuJvPNJr1/img.png)
DELETE 데이터만 삭제 Commit이전에는 Rollback 가능 사용자 Commit 데이터를 모두 삭제해도 저장공간은 유지된다. 느림 DML TRUNCATE 테이블을 최초 생성된 초기 상태로 만든다. Rollback 불가능 Auto Commit 테이블에서 사용했던 storage 중 최초 테이블 생성시 할당된 것만 남기고 Release 빠름 DDL DROP 기존 테이블의 정의 자체를 완전히 삭제 Rollback 불가능 Auto Commit 테이블이 사용했던 storage를 모두 Release 빠름 DDL
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beLEm7/btrkehaYmC5/KkX7yuMUnMs5NdoTHEq5fK/img.png)
명령어 종류 명령어 설명 데이터 조작어 (DML : Data Manipulation Laguage) SELECT 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어. RETRIEVE 라고도 한다. INSERT UPDATE DELETE 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들. 데이터 정의어 (DDL : Data Definition Laguage) CREATE ALTER DROP RENAME 테이블과 같은 구조를 정의하는데 사용되는 명령어들. 구조를 생성, 변경, 삭제, 이름 바꾸기 등을 수행. 데이터 제어어 (DCL : Data Control Language) GRANT REVOKE 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수는 명령어. 트랜..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhnDoR/btrjYhhB5gn/07QpQ6kdWBtcUzUUU7msb0/img.png)
인덱스는 색인과 같은 개념이다. 인덱스를 사용하면 데이터베이스에서 사용하는 용량이 많아진다는 문제점이 있고, 조회를 효율적이게 할 수 있지만 삽입, 업데이트, 삭제와 같은 나머지 연산들은 오히려 비효율적이게 만든다는 단점이 있다. Clustered 인덱스 Clustered 인덱스는 데이터베이스에 저장돼있는 데이터 자체를 특정 순서대로 저장하는 인덱스입니다. 예를 들어 이 user 테이블에서 이메일 column에 대한 clustered 인덱스를 만든다고 할게요. 그럼 데이터베이스 테이블 안의 내용이 실제로 email의 알파벳 순서대로 저장이 됩니다. a에서 시작해서 쭉 z까지 이메일들이 순서대로 저장이 됩니다. 이메일이 순서대로 저장돼있으니까 특정 이메일을 찾을 때는 이 순서를 이용해서 데이터를 찾을 수 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/UaIsU/btrfMPjhu6A/1MFe8E2S94ZnxYvV9ZBMd1/img.png)
GROUP BY 를 사용할 때 규칙 GROUP BY를 사용할 때는, SELECT 절에 GROUP BY 뒤에서 사용한 컬럼들 COUNT, MAX 등과 같은 집계 함수만 사용이 가능하다. 즉, GROUP BY 뒤에 쓰지 않은 컬럼 이름을 SELECT 뒤에 쓸 수 없다. 왜냐하면, 일단 GROUP BY를 해서 그루핑을 해놓으면 출력했을 때 하나 하나의 row는 이미 그룹화된 놈이기 때문에 사실 한 줄 안에는 여러 row가 포함되어 있는 것이기 때문이다. 그래서 GROUP BY 하지 않은 컬럼을 SELECT 절 뒤에 써서 조회하려고 하면 그룹화되지 않은 여러 row 중 무엇을 가져와야할지 알 수가 없기 떄문이다. 예를 들어 GROUP BY 뒤에 age를 쓰지 않았는데 SELECT 절 뒤에 age를 쓰면 에러가 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/caDgPY/btrfPBERuyw/4yeYZbTkSg8a6mewbfKPc0/img.png)
1. 연도, 월, 일 추출하기 YEAR 함수 # birthday 컬럼에서 1992년 생인 회원만 조회하기 SELECT * FROM member WHERE YEAR(birthday) = '1992'; MONTH 함수 # sign_up_day 컬럼에서 6,7,8월에 가입한 회원만 조회하기 SELECT * FROM member WHERE MONTH(sign_up_day) IN (6,7,8); DAYOFMONTH 함수 # 각 달의 후반부(15일 ~ 31일)에 가입했던 회원들만 조회하기 SELECT * FROM member DAYOFMONTH(sign_up_day) BETWEEN 15 AND 31 2. 각 날짜간의 차이 구하기 DATEDIFF 함수 # DATEDIFF(날짜1, 날짜2)를 사용하면 '날짜1-날짜2'..