오라클/SQL 13

DML

DML (Data Manipulation Language) : INSERT (입력) , UPDATE (변경) , DELETE (삭제) , MERGE(병합) 1. INSERT테이블에 새로운 데이터를 입력할 때 사용, 데이터 입력시 숫자 값 이외에는 데이터를 '(홀따옴표)로 감싸야 함 1) INSERT 를 사용하여 단일 행 입력문법 :INSERT INTO table(column1, column2, ....)VALUES (value 1, value 2, ....) ; 사용 예 1. dept2 테이블에 아래와 같은 내용으로 새로운 부서정보 입력* 부서번호 : 9000* 부서명 : 특판1팀* 상위부서 : 영업부* 지역 : 임시지역SCOTT>INSERT INTO dept2 (dcode, dname, pdept, a..

오라클/SQL 2014.10.12

DDL

DDL (Data Definition Language) - CREAT (생성) , ALTER (수정) , TRUNCATE (잘라내기) , DROP (삭제) 1.CREATE ※ 테이블 생성시 제한 사항1. 테이블 이름은 반드시 문자로 시작해야 한다. 숫자로 시작은 불가능하고 포함되는것은 가능 2. 테이블 이름이라 컬럼 이름은 최대 30 bytes 까지 가능, 한글로 테이블 이름을 생성할 경우 최대 15글자까지 3. 테이블 이름은 한 명의 사용자가 다른 오브젝트들의 이름과 중복으로 사용할 수 없다.ex) scott 사용자가 테이블명을 test로 생성한 후 인덱스 이름을 test로 동일하게 사용하는게 불가능scott 사용자가 test 테이블을 생성하고 다른 사용자인 hr 사용자도 test 테이블을 사용가능4...

오라클/SQL 2014.10.12

JOIN 함수

JOIN 함수여러 곳의 테이블에 흩어져 있는 정보중 사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들어서 결과를 볼 수 있게끔 하는 방법 INNER JOIN (이너조인) - 테이블에 데이터가 존재하는 경우에만 값을 출력OUTER JOIN (아우터조인) - 한쪽 테이블에는 데이터가 있고 다른 한쪽에는 데이터가 없을 경우 데이터가 있는 쪽 테이블의 내용을 전부 출력하게 하는 방법 Oracle 제품에서만 사용되는 Oracle 용 Join 과 모든 제품들에서 공통적으로 사용 가능한 ANSI Join 방법 두가지가 있다. - Oracle Join 구문 :SQL> SELECT e.ename , d.dname 2 FROM EMP e , dept d ; - ANSI Join 구문 :SQL> SELECT e.ena..

오라클/SQL 2014.10.10

그룹함수 (연습문제)

1. Professor 테이블을 사용하여 교수 중에서 급여(Pay) 와 보너스(bonus)를 합친 금액이 가장 많은 경우와 가장 적은 경우, 평균 금액을 구하세요. 단 보너스가 없을 경우는 보너스를 0 으로 계산하고 출력 금액은 모두 소수점 첫째 자리까지만 출력 2. Professor 테이블을 사용하여 교수 중에서 급여(Pay) 와 보너스(bonus)를 합친 금액이 가장 많은 경우와 가장 적은 경우, 평균 금액을 구하세요. 단 보너스가 없을 경우는 급여를 0 으로 계산하고 출력 금액은 모두 소수점 첫째 자리까지만 출력 3. student 테이블의 birthday 컬럼을 사용하여 아래와 같이 월별로 태어난 인원수를 출력4. emp 테이블의 hiredate 컬럼을 참조해서 아래와 같이 월별로 입사인원수를 출..

오라클/SQL 2014.10.08

복수행 함수 (그룹 함수)

1. COUNT 함수입력되는 데이터의 총 건수를 반환SELECT COUNT (*) , COUNT(hpage)FROM professor ;COUNT(*) = NULL값 포함 결과COUNT(hpage) = NULL값 제외한 결과 2. SUM 함수입력된 데이터들의 합계값을 구하는 함수 3. AVG 함수입력된 데이터들의 평균값을 구하는 함수※ 전체 평균을 구할 때 NULL 값이 있을 수도 있기에 NVL함수를 응용해서 구해줌 예) 전체 인원 16명, 보너스 받는인원 10명, 그대로 평균을 구해주면 보너스 총합에서 보너스 받는 인원만 나눠주기에정확한 결과가 나오지 않는다. 그래서 NVL을 이용해서 보너스 받지않는 인원은 0 으로 해서 평균을 구해준다. 4. MAX / MIN 함수MAX 함수 = 주어진 데이터 중에서..

오라클/SQL 2014.10.08

sql 단일행 함수 - 정규식

정규식 정규 표현식 1. REGEXP_LIKElike 함수처럼 특정 패턴과 매칭되는 결과를 검색하는 함수 사용 예 1.)소문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[a-z]') ;대문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[A-Z]') ;대소문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[a-zA-Z]') ; 사용 예 2.)소문자로 시작하고 뒤에 공백이 있는 모든 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[a-z] ..

오라클/SQL 2014.10.01

sql 단일행 함수 - 일반 함수

1. NVL 함수 NULL 값을 만나면 다른 값으로 치환해서 출력하는 함수NVL(칼럼, 치환할 값) ※치환 값이 숫자일 경우NVL(sal, 0) -> sal 칼럼의 값이 null 일 경우 null 대신 0 으로 치환NVL(sal, 100) -> sal 칼럼의 값이 null 일 경우 null 대신 0 으로 치환 ※치환 값이 문자일 경우NVL(position, '사원') -> position 값이 null 일 경우 '사원'으로 치환 ※치환 값이 날짜일 경우NVL(hiredate, '2014/05/01') -> hiredate 값이 null 일 경우 '2014/05/01' 날짜로 치환 NVL 함수 퀴즈Professor 테이블에서 201번 학과 교수들의 이름과 급여, bonus, 총연봉을 아래와 같이 출력단 총..

오라클/SQL 2014.09.30

sql 단일행 함수 - 형 변환 함수

char : 고정길이최대 2000byte varchar2 가변길이 최대 4000byte number (p,s) p는 전체 자리수로 1-38가지 가능 s는 소수점 이하 자리수로 -84 ~ 127 123.45 = NUMBER(5,2)날짜 - date 1. 묵시적(자동) 형 변환과 명시적(수동) 형 변환묵시적 - 오라클이 자동으로 형 변환을 시킴SELECT 2+'2' FROM dual ; = '2' 문자를 숫자로 자동으로 형 변환해 계산함명시적 - 사용자가 수동으로 지정해 주어야 함 2. TO_CHAR 함수 (날짜 -> 문자로 형 변환)년도 YYYY - 연도를 4자리로 표현RRRR - 2000년 이후 Y2K 버그로 인해 등장한 날짜 표기법, 4자리 연도 표기YY - 연도를 끝에 2자리만 표시 예 : 14RR ..

오라클/SQL 2014.09.30

sql 단일행 함수 - 날짜 함수

1. SYSDATE 함수현재 시스템의 시간을 출력해 주는 함수SELECT SYSDATE FROM dual ; 미국 기준으로 시간이 출력됨alter session set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS'; 해주면 한국에서 익숙하게 표기 2. MONTHS_BETWEEN 함수두 날짜를 입력 받아서 두 날짜 사이의 개월 수를 출력하는 함수SELECT MONTHS_BETWEEN('14/05/31','14/04/30')FROM dual;= 11) 두 날짜 중 큰 날짜를 먼저 써야 양수가 나옴2) 두 날짜가 같은 달에 속해 있으면 특정 규칙으로 계산된 값이 나옴※ 윤달을 구분하지 못함, 리눅스에서 사용할 때는 NLS_DATE_FORMAT 을 이용해 날짜 형태 변경 3. ADD_M..

오라클/SQL 2014.09.30