본문 바로가기

개발자 양성과정 필기노트/DB | ORACLE19

SELF JOIN, 서브쿼리 DB || DAY10 || SELF JOIN, 서브쿼리 1. SELF JOIN JOIN을 활용하여 같은 테이블에서 데이터를 추출함. 하나의 테이블에 두개의 단축어를 지정하여 마치 다른 테이블에서 데이터를 추출하는 것과 같은 효과를 낼 수 있다. SELECT e1.employee_id, e1.last_name, e2.last_name FROM employees e1 JOIN employees e2 ON e1.employee_id = e2.manager_id ; 2. 서브쿼리 쿼리문 안에 또 쿼리문이 들어있는 구문형식. GROUP BY절과 함께 쓰지 않는다. SELECT department_id, min(salary) FROM employees GROUP BY department_id HAVING MIN(s.. 2021. 9. 10.
그룹함수 , GROUP BY절, HAVING절 DB || DAY9 || 그룹함수 , GROUP BY절, HAVING절 1. 그룹함수 하나의 컬럼 전체를 조작하는 함수. 모든 그룹함수는 null값에 대해서는 작업을 하지 않는다! 1) AVG( 컬럼명 ) - 평균 - 숫자데이터만 가능함. 2) SUM( 컬럼명 ) - 합계 - 숫자데이터만 가능함. 3) MAX( 컬럼명 ) - 최대 - 날짜 데이터의 경우, 가장 최근의 날짜를 반환함. 4) MIN( 컬럼명 ) - 최소 - 날짜데이터의 경우, 가장 과거의 날짜를 반환함. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%' ; 5) COUNT( 컬럼명 ) - 해당 컬럼의 행의 숫자를 센.. 2021. 9. 7.
단일행 함수 DB || DAY8 || 단일행 함수 *** 함수를 사용하는 경우, alias지정하는 것이 보기좋다. 1. 문자함수 1) 대소문자 변환함수 -> 해당 컬럼의 데이터를 대문자 / 소문자 / 카멜타입으로 변환하여 출력한다 LOWER(컬럼명) UPPER(컬럼명) INITCAP(컬럼명) -> 카멜타입으로 변환함. 2) 문자조작 함수 CONCAT( 컬럼명1 , 컬럼명2 ) : 컬럼1과 컬럼2의 데이터를 합친다. INSTR( 컬럼명 , '문자' ) : 해당컬럼의 데이터에서 '문자'의 첫번째 위치를 출력함. SUBSTR( 컬럼명 , n1 ) : 컬럼데이터의 n1번째 글자부터 끝까지 추출함. SUBSTR( 컬럼명 , n1 , n2 ) : 컬럼데이터의 n1번째 글자부터 n2개의 문자를 추출함. LENGTH(컬럼명) : .. 2021. 8. 25.
WHERE절 문법 DB || DAY7 || WHERE절 문법 # 범위 SELECT FROM WHERE 컬럼명 BETWEEN ______ AND _______ ; # 단일행 비교연산자 SELECT FROM WHERE 컬럼명 = 리터럴값 ; # 다중행 비교연산자 SELECT FROM WHERE 컬럼명 IN (N,N,N...) ; * IN은 =과 OR의 성격을 갖는다. # 패턴일치 비교연산자 SELECT FROM WHERE 컬럼명 LIKE 패턴 ; * 패턴비교시 사용하는 기호 1) % => 0 또는 여러개 - ㅁ% : ㅁ로 시작하는 문자열 ex) a로시작하는 문자열: 'a%' - %ㅁ%: ㅁ가 포함된 문자열 ex) a가 포함된 문자열: '%a%' 2) _ 언더바 : 반드시 1개 - _ㅁ% : n번째 문자가 ㅁ인 문자열 ex) .. 2021. 8. 25.
리눅스 터미널명령어 DB || DAY6 || 리눅스 터미널명령어 0. mkdir $] mkdir oracle - 현재 디렉토리 밑에 oracle폴더 생성 => /home/stu/oracle $] mkdir / oracle - 루트밑에 oracle 폴더 생성 => /oracle $] mkdir -p pro/dir/edit (-p : 하위디렉토리를 한번에 생성할 때 사용) - 현재 디렉토리 밑에 pro폴더 생성되고, 그 밑에 dir폴더생성, 그 밑에 edit폴더 생성 => /home/stu/pro/dir/edit $] mkdir -p / pro/dir/edit - 루트 밑에 pro폴더 생성되고, 그 밑에 dir폴더생성, 그 밑에 edit폴더 생성 => /pro/dir/edit 1. cp $] cp 원본파일 새로 복사할 파일 $.. 2021. 8. 11.
리눅스 명령키 DB || DAY5 || 리눅스 명령키 # 명령모드에서 사용하는 명령키 i - 현재 커서의 위치부터 입력 // I - a - 현재 커서의 위치 다음 칸부터 입력 // A - o - 현재 커서의 다음 줄에 입력 // O - s - 현재 커서 위치의 한 글자를 지우고 입력 // S - # 명령모드에서 사용하는 편집키 x - 현재 커서가 위치한 글자 삭제 // X - 현재 커서가 위치한 앞 글자 삭제 dd - 현재 커서의 행 삭제 // 숫자dd - 현재 커서부터 숫자만큼의 행 삭제 yy -현재 커서가 있는 행을 복사 // 숫자yy - 현재 커서부터 숫자만큼의 행을 복사 p - 복사한 내용을 행 이후에 붙여넣기 // P - 복사한 내용을 현재 행 이전에 붙여넣기 # 실행모드에서 사용하는 명령키 :w - 저장만됨.. 2021. 8. 9.
제약조건, 계정생성 DB || DAY4 || 제약조건, 계정생성 0. 명령어 정리 : 데이터 자체를 생성, 수정, 삭제하는 명령어. - CREATE TABLE - ALTER TABLE - DROP TABLE - TRUNCATE TABLE - SELECT (SELECT & FROM + WHERE / ORDER BY / JOIN . . . ) - INSERT (INSERT INTO . . . ) - UPDATE (UPDATE & SET + WHERE . . .) - DELETE (DELETE FROM 테이블명 + WHERE . . .) : 해당 행 전체를 삭제한다. ( *** 필드값을 없애는것은 null로 update하는 것이다. delete와 다름에 주의!) - GRANT - REVOKE 1. 원래 가지고 있는 테이블의 복사.. 2021. 8. 2.
ORDER BY , JOIN , 서브쿼리 DB || DAY3 || ORDER BY, JOIN, 서브쿼리 # 리터럴 - 숫자의 경우, 그냥 사용하면 된다. - 문자, 날짜의 경우, 반드시 작은따옴표안에 기재해야한다! # ORDER BY 로 정렬하기 - 항상 쿼리문의 마지막에 위치한다. . . . ORDER BY 정렬대상 DESC or ASC ; *** 오름차순인 asc는 생략 가능함! # JOIN을 사용한 데이터검색 -> 여러 테이블에 분산되어있는 데이터들을 활용하고 싶을 때 사용한다, - 공통된 *데이터*를 가지는 컬럼을 기준으로 묶어준다. SELECT A테이블의 컬럼1, A테이블의 컬럼2, A테이블의 컬럼3, A&B테이블의 컬럼 FROM A테이블명 JOIN B테이블명 ON A테이블명.A&B테이블의 컬럼명 = B테이블명.A&B테이블의 컬럼명; .. 2021. 7. 29.
데이터정의어(DDL), 데이터조작어 (DML) DB || DAY2 || 데이터정의어(DDL), 데이터조작어 (DML) 0. DB 1. virtural box install 2. 이미지 파일 설치하기 3. 터미널창 4. lsnrctl start 5. sqlplus /nolog 6. db꺼져있으므로, 접속가능한 유일한 계정인 sys에 접근해야함 => connect sys/oracle as sysdba 7. startup -root(pw : oracle01) -> 관리자 권한 -oracle(pw : oracle) -> /home/oracle 디렉토리 권한 -> /u01/app/oracle 디렉토리 권한 -sys(pw : _____) -> sysdba 권한 (dba + DB시작/종료 + DB생성) SQL> conn sys/_____ as sysdba -sy.. 2021. 7. 26.