일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 머신러닝
- sklearn
- python3
- 알고리즘
- matplotlib
- 코딩테스트
- 빅분기
- 실기
- 오라클
- level 1
- 파이썬
- Kaggle
- oracle
- 튜닝
- Python
- seaborn
- 실습
- R
- Numpy
- 빅데이터 분석 기사
- level 2
- pandas
- SQL
- Oracel
- 프로그래머스
- 데이터 분석
- 카카오
- Today
- Total
목록분류 전체보기 (324)
라일락 꽃이 피는 날
계층형 질의문은 서열이 있는 데이터에서 서열을 출력하는 SQL 문법이다. 사원 테이블에는 서열이 존재하기 때문에, 그 숨어있는 서열을 화면에 표시하는 것이다. 서열에 관련된 컬럼이 mgr(관리자 번호) 이다. 예제 1. 사원 이름, 서열, 월급, 직업을 출력 select ename, level, sal, job from emp start with ename = 'KING' connect by prior empno = mgr; start with 절에는 시작되는 사원을 기술하면 된다. 예제 2. level 만큼 앞에 공백을 채워 넣어서 사원 이름, 서열, 직업, 월급을 출력 select rpad(' ', level*3) || ename as employee, level, job, sal from emp s..
회사에서 차세대 프로젝트라고 해서 전산 쪽에 관련한 큰 프로젝트를 한다고 하면 내용이 무엇인가? - 데이터를 저장하는 컴퓨터(서버)를 더 좋은 것으로 교체한다. - 옛날 컴퓨터(서버)에 있었던 데이터를 새로운 컴퓨터(서버)로 옮긴다. - 새로운 컴퓨터에 있는 데이터를 select 해서 새로운 홈페이지나 UI(사용자 화면)를 개발한다. 예제 1. emp_new 라는 테이블을 생성 create table emp_new as select * from emp where 1 = 2; 1 = 2 가 거짓 조건이므로 emp 테이블을 가지고 emp_new 를 만들 때, 데이터는 못 가져오고 구조만 가져와서 생성한다. insert into emp_new select * from emp; update 문에서 서브 쿼리를 ..
락(LOCK) 특정 행을 갱신하는 update 문장이 있다면, 그 update 문장을 수행하는 세션은 update 하는 행에 lock 을 건다. 그리고 그 lock 은 commit 이나 rollback 을 할 때까지 유지된다. 왜 lock 을 거는 걸까? 내가 변경하고 있는 데이터를 지금 변경하고 있는 이 순간에는 나만이 변경할 수 있고, 다른 세션들은 변경하지 못하도록 하기 위해서다. 내가 변경한 데이터를 누군가 바로 변경했다면 데이터의 일관성이 깨지게 된다. lock은 데이터의 일관성이 깨지지 않도록 해준다. Select For Update 보통 lock 은 update 문을 수행할 때 필요한 것이다. 그런데 select 를 할 때도 lock 을 걸 수 있다. 예제 1. 오늘 밤 12시에 오늘 전국 ..
merge insert, update, delete 명령어를 한 번에 수행하는 SQL 이다. 주로 대용량 데이터를 한 번에 update 하는 SQL의 성능을 개선하기 위해서 사용한다. 예제 1. 사원 테이블에 loc 컬럼 추가 alter table 테이블명 add 컬러명 데이터타입(크기); alter table emp add loc varchar2(10); 예제 2. 사원 테이블에 추가한 loc 컬럼의 데이터를 해당 사원의 부서 위치 값으로 갱신 merge into emp e # emp 테이블을 merge 하는데 using dept d # dept 테이블을 사용해라 on (e.deptno = d.deptno) # 이때 두 테이블의 연결 고리는 deptno 이다 when matched then # on 절..
commit 마지막으로 commit 한 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업을 전부 database 에 영구히 저장하겠다. rollback 마지막 commit 이후에 지금까지 작업한 모든 데이터 입력, 수정, 삭제 작업들을 모두 취소하겠다. 암시적 commit 이 수행되는 경우 정상 종료를 했을 때 (exit) DDL문을 실행했을 때 (create, alter, drop, truncate, rename) DCL문을 실행했을 때 (grant, revoke) 데이터 입력, 수정, 삭제 작업을 했으면 다른 작업을 수행하기 전에 지금 진행했던 작업들은 commit 하거나 rollback 하고 다른 작업을 수행한다. 암시적 rollback 이 수행되는 경우 컴퓨터가 비정상적으로 종료되었을 ..
delete truncate drop 데이터 삭제 삭제 삭제 저장공간 유지 삭제 삭제 저장구조 유지 유지 삭제 취소여부 (rollback) 가능 불가능 불가능 플래쉬백 여부 가능 불가능 가능 예제 1. SCOTT 의 데이터 삭제 delete from emp where ename = 'SCOTT'; 예제 2. emp 테이블 비우기 truncate table emp; truncate를 하면 rollback 도 안 되고 과거의 데이터도 확인할 수 없다. 이 경우에는 백업 받은 것으로 복구할 수 밖에 없다. 예제 3. emp 테이블 삭제 drop table emp; drop 과 truncate 의 차이는 truncate 는 테이블의 구조를 남겨둔다. 테이블의 구조를 남겨두면 나중에 데이터를 새로 입력할 때, 테..
SQL의 종류 Query : SELECT 문의 6가지 절 DML 문 (데이터 조작 언어) : insert, update, delete, merge DDL 문 (데이터 정의 언어) : create, alter, drop, truncate, rename DCL 문 (데이터 제어 언어) : grant, revoke TCL 문 (트랜잭션 제어 언어) : commit, rollback, savepoint insert into 테이블명(데이터를 입력할 컬럼명) values(입력할 데이터); null 값을 테이블에 입력하는 방법 1. 암시적으로 입력 insert into emp(empno, ename, sal) values(2912, 'jane', 4500); 데이터가 없는 상태를 “결측치” 라고 한다. 2. 명시적..
select 검색하고자 하는 컬럼명 from 검색하고자 하는 데이터가 있는 테이블명 where 검색 조건 group by 그룹핑할 컬럼명 having 그룹 함수로 조건을 줄 때 사용하는 절 order by 정렬해서 보고싶은 컬럼명 select 서브쿼리 사용가능 from 서브쿼리 사용가능 where 서브쿼리 사용가능 group by 서브쿼리 사용 불가능 having 서브쿼리 사용가능 order by 서브쿼리 사용가능 예제 1. 직업과 직업 별 토탈 월급을 출력하는데, 직업이 SALESMAN 인 토탈 월급보다 더 큰 것만 출력 select job, sum(sal) from emp group by job having sum(sal) > (select sum(sal) from emp where job = 'SA..