INSERT ~ INTO --입사일이 2007년인 직원은 emp2에 --급여가 10000원 이상인 직원은 emp3에 각각 INSERT하시오 --a. emp2에 있는 모든 테이터는 삭제 --b. emp3 테이블을 employees 테이블의 구조와 동일하게 생성 --c. 문제 해결 insert ALL WHEN TO_CHAR(hire_date, 'yyyy')='2007' THEN INTO emp2 WHEN salary>=10000 THEN INTO emp3 SELECT * FROM EMPLOYEES; --입사일이 2007년인 직원은 emp2에 성명(first_name+last_name), --입사일, 이메일, 직무아이디만 저장 --급여가 10000원 이상인 직원은 emp3 테이블에 --성명, 급여, 입사일, ..
--현재 유저가 접근할 수 있는 테이블 목록 확인 SELECT * FROM user_tables; --제약 조건 목록 확인 SELECT * FROM user_constraints; --DML(insert, update, delete) --emp2, emp3 테이블을 삭제(drop) DROP TABLE emp2; DROP TABLE emp3; --employees의 구조를 emp2에 구조만 복사 CREATE TABLE emp2 AS SELECT * FROM EMPLOYEES WHERE 1=2; 연습문제 --입사년이 2007년인 직원만을 emp2에 입력(복사) INSERT INTO emp2 SELECT * FROM EMPLOYEES e WHERE TO_CHAR(e.HIRE_DATE, 'yyyy') = '20..
DDL (Data Definition Language): CREATE(생성), ALTER(수정), TRUNCATE(잘라내기), DROP(삭제) 01. CREATE테이블 생성 CREATE TABLE 테이블명 ( 컬럼명 컬럼의 유형 제약조건, ... )CREATE TABLE new_table(NO NUMBER(3), NAME VARCHAR2(10), BIRTH DATE); SELECT * FROM new_table; CREATE TABLE member( id VARCHAR(20) primary key, name VARCHAR(30), rdate date, --가입일 point NUMBER(10,1), gender char(1) ); DESC member; 테이블에 데이터 넣기INSERT INTO MEMBER..
JOIN 의 종류1) 등가 조인(p234) 두 개 이상의 테이블에서 동일한 값으로 조인 --> AND 느낌 2) 비등가 조인(p240) 두 개 테이블에서 값이 같지 않은 경우에 조인하는 경우 --> OR 느낌3) outer join(p244)left outer join: 기준이 되는 테이블이 왼쪽에 있는 경우right outer join: 기준이 되는 테이블이 오른쪽에 있는 경우full outer join(호환성 없음) : 좌우 다 참조4) self join(p254): 자기가 자기 자신을 조인하는 경우 -- 부서 코드가 101번인 부서의 주소와 우편번호 조회 SELECT street_address as "주소", postal_code as "우편번호" FROM DEPARTMENTS d JOIN LOCA..
-- 전체 직원의 인원 수와 급여 합계와 평균을 출력 SELECT COUNT(FIRST_NAME) as "인원 수", SUM(SALARY) as "급여 합계", avg(SALARY) as "급여 평균" FROM EMPLOYEES; -- 부서 코드가 100번인 직원의 수, 급여 합계, 평균 급여 조회 SELECT COUNT(FIRST_NAME) "직원 수", SUM(SALARY) "급여 합", AVG(SALARY) "평균 급여" FROM EMPLOYEES WHERE DEPARTMENT_ID = 100; --부서 코드가 100인 직원의 급여 중 최대 급여외 최소 급여는 얼마인가? SELECT MAX(SALARY) as "최대 급여", MIN(SALARY) as "최소 급여" FROM EMPLOYEES WHE..
일반 함수 NVL() 함수: NULL값을 만나면 다른 값으로 치환해서 출력하는 함수--수수료율(commission_pct)가 있는 경우는 salary*commission_pct 하고 없는 경우 0으로 출력 SELECT first_name as "이름", commission_pct*salary as "수수료" FROM EMPLOYEES; --수수료 없으면(null이면) 0으로 대체 SELECT first_name as "이름", NVL(commission_pct*salary, 0) as "수수료" FROM EMPLOYEES; --부서 코드가 없으면 '99999' 출력, 있으면 그대로 부서 아이디 출력 SELECT first_name as "이름", NVL(DEPARTMENT_ID, 99999) as "부서..
--------날짜관련 함수, TO_CHAR(), TO_NUMBER(), TO_DATE() SYSDATE 함수 SELECT SYSDATE FROM EMPLOYEES; MONTHS_BETWEEN 함수SELECT CEIL(MONTHS_BETWEEN('2017/09/29','1993/09/29')) FROM dual; 두 날짜 중 큰 날짜를 먼저 써야 결과값이 양수로 나온다.두 날짜가 같은 달에 속해 있으면 특정 규칙으로 계산된 값이 나온다. ADD_MONTHS 함수SELECT SYSDATE as "시스템 시간", ADD_MONTHS(SYSDATE, 1) as "1개월을 더함" FROM dual; TO_CHAR 함수--오늘 날짜 포맷에 맞게 출력 SELECT TO_CHAR(SYSDATE, 'RRRR"년 " M..
단일행 함수(Single-Row Function): 한 번에 하나씩 처리하는 함수 참조: https://docs.oracle.com/database/121/SQLRF/functions002.htm#SQLRF51178 LENGTH, LENGTHB--LENGTH SELECT first_name as "이름", LENGTH(first_name) as "이름 문자의 길이" FROM EMPLOYEES; SUBSTR(offset, size)-- substr(offset, size): offset이 음수면 뒤에서부터 SELECT SUBSTR('abcdefg', 3,2) FROM dual; --세번째에서부터 두글자 SELECT SUBSTR('abcdefg', -3,2) FROM dual; --뒤부터 세번째 글자부터 두..
ORDER BY 사용해보기 --급여가 7000이상인 직원의 성명, 급여를 성명순으로 정렬하여 조회 SELECT first_name as "이름", salary as "급여" FROM EMPLOYEES WHERE SALARY >= 7000 ORDER BY FIRST_NAME;※기본 오름차순 정렬, desc 붙이면 내림차순 정렬이다. --급여가 7000이상인 직원의 성명, 급여를 성명순으로 정렬하여 조회 SELECT first_name as "이름", salary as "급여" FROM EMPLOYEES WHERE SALARY >= 7000 ORDER BY FIRST_NAME DESC; ORDER BY 정렬 기준을 두 개 이상 사용하기 - 비교--성명, 급여를 급여순으로 조회 SELECT first_name..
※SQL Operators 참고하기https://docs.oracle.com/cd/B19188_01/doc/B15917/sqopr.htm BETWEEN 연산자 활용 --급여가 5000~7000 사이인 직원의 이름과 급여, 연락처를 조회(BETWEEN) SELECT first_name as "직원 이름", salary as "급여", phone_number as "연락처" FROM EMPLOYEES WHERE SALARY BETWEEN 5000 and 7000; IN(a,b,c) 연산자 활용--매니저 아이디가 100 또는 120 또는 114인 직원의 이름과 입사일을 조회 SELECT first_name as "이름", hire_date as "입사일" FROM EMPLOYEES WHERE MANAGER_I..
- Total
- Today
- Yesterday
- CLASS
- 상속
- IN(var1 var2 var3)
- !(not)
- 계층형 쿼리
- z-dindex
- hierarchical query
- 중첩 클래스
- GROUP BY절
- implements
- Maven Project
- DI(의존성 주입)
- NVL()
- NVL2()
- 로컬 클래스
- casring
- Interface
- 멤버 클래스
- Generic Type
- tables in htmll
- SQL Operator
- 복수행 함수
- MONTH_BETWEEN
- SELECT절 명령어
- IS RECORD
- 테이블 데이터 복사
- 타입변환과 다형성
- FileChannel
- DECODE()
- 데이터 딕셔너리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |