본문 바로가기

728x90
반응형

배우기/복습노트[oracle sql]

(70)
[복습] SQL | Oracle 문자 함수: 문자열 위치 함수(instr), 문자열 길이 함수(length) 지역번호를 추출하려고 하는 경우 지역번호가 두 글자인 것도 있고 세 글자인 것도 있다. 이 경우는 어떻게 접근해야 할까? 이럴 떄에는 문자열 위치 함수를 사용한다. 문자열 위치 함수는 instr이며, instr(원본대상, 찾을 문자열[, 시작위치] [, 발견횟수]) 형태로 사용된다. 시작위치 생략 시 처음부터 추출되며, 시작위치가 음수일 경우에는 거꾸로 스캔한다. ★역방향으로 스캔한다는 점은 substr과 다르므로 헷갈리지 말자. 또한 발견 횟수 생략 시 첫 번쨰로 발견되는 문자열의 위치를 리턴한다. 그리고 자리수를 추출하므로 리턴 데이터 타입은 숫자이다. 찾을 문자열이 없으면 0을 리턴하게 된다. 한 줄씩 해석하자면 instr('a#b#c#','#')은 #이 첫 번째로 발견되는 위치이므로 2를 리턴 i..
[복습] SQL | Oracle 문자 함수: 대소치환 함수(upper, lower, initcap), 문자추출 함수(substr) 먼저 함수란, input value와 output value의 관계를 정의한 객체이다. 그러므로 input value가 필요하고(떄에 따라 생략 가능, 여러 개도 가능) output value가 반드시 리턴된다. 참고로 input value가 없는 함수: select sysdate
[복습] SQL | Oracle 논리연산자와 기타연산자 + 복습 후기(20231026) 논리연산자 먼저 살펴보자. and: 모든 조건을 만족하는 대상 선택(교집합) or: 한 조건을 만족하는 대상 선택(합집합) not: 부정연산자(여집합) 부정연산자인 not의 경우에는 정해진 위치가 있다. - not between, not in, not like, is not null 예제) emp에서 10번 부서이면서 급여가 4000 이상인 직원의 이름, 부서번호, 급여 출력 예제) emp에서 job이 manager 이거나 clerk 이면서 급여가 2000 미만인 직원의 이름, job, 급여 출력 manager는 급여가 2000미만은 없나보다. manager가 되어야겠다. 논리연산자에는 우선순위가 있다. not > and > or 순이 되겠다. 마지막으로 기타연산자이다. 1) between A and B..
[복습] SQL | Oracle 테이블 레이아웃 확인 방법과 Null의 개념 desc 로 테이블 레이아웃을 확인할 수 있다. 여기서 컬럼명, 컬럼순서, Null 허용여부, 데이터 타입 확인이 가능하다. Not Null은 Null을 허용하지 않는데, 예를 들어 홈페이지 가입을 할 때 공란으로 두지 못하도록 하는 문항을 짤 때 쓰는 것과 비슷하다는 생각이 들었다. 분석을 할 때 Null 때문에 예기치 못한 상황이 발생하기도 한다. 월급에 보너스를 합한 값인 연봉이 궁금하다고 치자. Null을 포함한 연산은 그 값도 Null이 나오는 것을 알 수 있다. 즉, Null을 포함한 산술연산의 결과는 항상 Null이 리턴되므로 사전에 Null 치환이 필요하겠다.
[복습] SQL | Oracle 정렬(오름차순, 내림차순)과 연결연산자 || 정렬은 문자, 숫자, 날짜의 정렬시 사용한다. 기본정렬 순서는 오름차순(asc, 생략가능), 내림차순 정렬시 컬럼 뒤에 한 칸 띄고 dsec를 명시하면 된다. 여러 컬럼으로 정렬 시에는 컬럼명을 나열하면 된다. 아직 소수점 정리하는 법을 못 배워서 소수점이 있는 인상급여 자료도 있다. select * from student order by height; 의 위 문장에서 키가 같은 경우 몸무게가 큰 순서대로 표현하고자 한다면 이렇게 표현하면 된다. 이어서 연결연산자(||)를 살펴보자. 연결연산자는 분리된 두 문자열의 결합을 위하여 사용한다. 여기에서 표준몸무게 값들 뒤에 kg을 붙여주고자 한다면 이렇게 ||를 사용하여 kg을 붙여 줄 수 있다. 예제) emp 테이블에서 부서번호가 10번을 제외한 나머지 나..
[복습] SQL | Oracle 필터링 기능을 하는 where절과 비교연산자 where 절은 필터링 기능을 한다(조건에 맞는 행 선택) 조건의 형태는 대상 연산자 상수이며, 상수는 크게 문자상수, 숫자상수, 날짜상수가 있다. 문자 상수와 날짜 상수는 홀따옴표가 필수이며 문자상수는 대소 구분을 한다. 마지막의 경우는, 원본의 데이터 대소문자 저장 여부를 모르는 경우 좌우 비교 대상의 대소문자를 일치시켜 조회한다는 의미이다(대소치환 함수 사용) 비교연산자는 =, >, >=,
[복습] SQL | Oracle에서 distinct 란 distinct는 select 뒤에 쓰는 문으로 distinct 뒤 컬럼의 내용이 같을 때 중복값을 생략한다. 이 때 원본을 제거하는 것은 아니다. select [distinct] * | 컬럼명 | 표현식 from table_name; 와 같은 형식으로 아래 두 사진을 비교해보자. 중복값이 제외되고 보여지는 것을 알 수 있다. 이 문은 언제 유용한 걸까? 엑셀에서 중복값을 제거를 사용한 적이 있는데 그냥 간단히 체험프로그램을 중복신청한 값을 제하고자 썼었던 기억이 난다. 여기서도 이와 비슷하게 사용하는 건가?
[복습] SQL | Oracle 컬럼 별칭(alias) 컬럼 별칭(alias)란, 컬럼명 대신 임시적으로 출력하고자 하는 이름으로 - select 절에서 정의 가능 - 컬럼이나 표현식마다 정의 가능 - as 뒤에 컬럼별칭 전달 주의할 점으로 as는 생략이 가능하므로 as가 없는 경우 코드 해석이 약간 헷갈릴 수가 있어 가급적 as를 사용할 것을 권장한다. 컬럼 별칭의 재사용은 order by 절에서 가능하다(select절보다 나중에 수행되므로). 예를 들어 select ename, sal, deptno as 부서번호 from emp where 부서번호 = 10 ; -- 불가함. select ename, sal, deptno as 부서번호 from emp order by 부서번호 = 10; -- 가능함 아래 두 사진의 차이점을 확인해보면 알 수 있다. 다음의 ..
[복습] SQL | Oracle 데이터 조회 명령어 select문 select문은 데이터 조회문으로 총 6개 구문으로 구성되어 있으며 전체를 문장, 한 줄 한 줄을 절 이라고 한다. select 문에서 실행되는 구문 순서는 아래와 같다. SELECT에서 유일하게 별칭(alias)을 정의하기 때문에 ORDER BY가 마지막으로 수행됨 현존하는 언어 중에서 SQL만이 유일하게 SQL 튜너 라는 직업이 있다고 한다(SQL의 수행 속도가 작업하는 사람에 따라 차이가 나기 때문) 오라클에서는 select와 from은 생략이 불가능하다고 한다. select는 계산 기능이 있으며, *를 사용하여 모든 컬럼을 조회할 수도 있다. 즉 select 다음에는 * 또는 컬럼명 또는 표현식이 올 수 있다. select * | 컬럼명 | 표현식 from table_name; select *, ..
[복습] SQL 수업에 들어가면서 SQL 은 데이터베이스 언어이며 교육은 약 3주 정도 받을 것으로 예상하고 있다. 이후 파이썬과 R을 진행할 것이라고 한다. 현재 연구소나 리서치, 바이오 분야는 파이썬을 많이 사용하고 있으며 파이썬은 본래 개발 언어이지만 통계 패키지가 많이 들어있다고 한다. 이번 과정에는 시각화 툴인 태블로가 포함되어있고, 통계학 전공 강사님인만큼 통계를 심도있게 알려주신다고 하여 기대가 많이 된다. 나중에 교육 후반에 가서는 리눅스 환경에서 shell로 작업하는 과정 또한 알려주신다고 한다. 여기서 업무 자동화가 중요하다고 메모를 해둔 것을 보면 아마 내가 석사 과정 때 했던, shell로 업무자동화 하는 방법이 중요하다고 말씀하신건가 싶다. 시중 교재에 나온 예제 문제들로는 현업에 적용하기 어려워 강사님께서 수업 ..

728x90
반응형