SQL

    [Oracle] Chap06 테이블 생성 및 제약조건

    1. DDL (CREATE TABLE) DDL (DATA DEFINITION LANGUAGE) : 데이터 정의 언어 객체(OBJECT)를 만들고(CREATE), 수정(ALTER)하고, 삭제(DROP)하는 구문 1-1. CREATE 테이블 만들기 [표현식] CREATE TABLE 테이블명 (컬럼명 자료형(크기), 컬럼명 자료형(크기),...) CREATE TABLE MEMBER ( MEMBER_ID VARCHAR(20), MEMBER_PWD VARCHAR(20), MEMBER_NAME VARCHAR(20) ); 1-2. COMMENT 컬럼에 주석달기 [표현식] COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용'; COMMENT ON COLUMN MEMBER.MEMBER_ID IS '회원아이디..

    [Oracle] SQL문제풀이 / SUBQUERY

    목요일 수업 후 받은 문제 25개와 금요일 수업 후 19개의 서브쿼리 문제를 풀었고, 그중 어려웠던 문제와 두 가지 이상의 방법으로 풀어본 문제를 포스팅한다. 과제를 위한 워크시트를 따로 제공받음. (대학교의 정보를 담은) 문제1 ‘음악학과’ 학생들의 평점을 구하려고 한다. 음악학과 학생들의 "학번", "학생 이름", "전체 평점"을 출력하는 SQL 문장을 작성하시오. (단, 평점은 소수점 1자리까지만 반올림하여 표시한다.) 1) 인라인뷰 안에 음악학과 컬럼에 별칭 사용 SELECT V.학번 , V.학생이름 , ROUND(AVG(G.POINT),1) "전체 평점" FROM (SELECT S.STUDENT_NO 학번 , S.STUDENT_NAME 학생이름 FROM TB_STUDENT S JOIN TB_DE..

    [Oracle] Chap05 SUBQUERY

    SUBQUERY 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT 문장이다. 서브쿼리는 메인쿼리가 실행되기 이전에 한번만 실행되며, 비교연산자의 오른쪽에 기술해야 하며, 반드시 괄호로 묶어야 한다. 또한 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와 자료형을 일치시켜야 한다 서브쿼리는 SELECT, FROM, WHERE, HAVING, ORDER BY 절에서 사용할 수 있다. 예를 들어 SELECT 해야하는 컬럼에 대한 조건값도 조회해봐야 알 수 있을 때 서브쿼리를 이용한다. 어떠한 사원A가 속한 부서와 같은 부서의 직원을 조회한다고 할 때, 사원 A가 속한 부서가 메인 쿼리에서의 조건이지만 이 역시 SELECT해봐야 알 수 있다. SELECT DEPT_CODE ..

    [Oracle] SQL문제풀이 / JOIN 연습문제

    오늘 JOIN문제는 총 10문제로, ANSI표준과 오라클 전용 구문 두 가지 다 사용하여 풀었다. 조인 연습문제 문제1 이름에 '형'자가 들어가는 직원들의 사번, 사원명, 직급명을 조회하세요. -- ANSI 표준 SELECT E.EMP_ID 사번 , E.EMP_NAME 사원명 , J.JOB_NAME 직급명 FROM EMPLOYEE E JOIN JOB J ON (E.JOB_CODE = J.JOB_CODE) WHERE E.EMP_NAME LIKE '%형%'; -- 오라클 전용 SELECT E.EMP_ID 사번 , E.EMP_NAME 사원명 , J.JOB_NAME 직급명 FROM EMPLOYEE E , JOB J WHERE E.JOB_CODE = J.JOB_CODE AND E.EMP_NAME LIKE '%형%..

    [Oracle] Chap04 JOIN 조인

    JOIN 두 개 이상의 테이블을 하나로 합쳐서 결과를 조회한다. 1. EQUAL JOIN 조인은 기본이 EQUAL JOIN이다 (EQU JOIN이라고도 함) 연결되는 컬럼의 값이 일치하는 행들만 조인된다. 일치하는 값이 없는 행은 조인에서 제외 되는 것을 INNER JOIN이라고 한다. JOIN의 기본은 INNER JOIN & EQU JOIN이다. 1-1. 오라클 전용 구문 FROM절에 ',' 로 구분하여 합치게 될 테이블명을 기술하고 WHERE절에 합치기에 사용할 컬럼명을 명시한다. 연결에 사용할 두 컬럼명이 다른 경우 SELECT EMP_ID , EMP_NAME , DEPT_CODE , DEPT_TITLE FROM EMPLOYEE , DEPARTMENT WHERE DEPT_CODE = DEPT_ID;..

    [Oracle] Chap03 GROUP BY / HAVING

    GROUP BY와 HAVING 5. SELECT 컬럼명 AS 별핑, 계산식, 함수식 1. FROM 참조할 테이블명 2. WHERE 컬럼명 | 함수식 비교연산자 비교값 3. GROUP BY 그룹을 묶을 컬럼명 4. HAVING 그룹함수식 비교연산자 비교값 6. ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST | LAST] 쿼리문 실행 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 1. GROUP BY 같은 값들이 여러 개 기록 된 컬럼을 가지고 같은 값들을 하나의 그룹으로 묶음 GROUP BY 컬럼명 | 함수식, ... 그룹으로 묶은 값에 대해서 SELECT절에서 그룹함수를 사용한다. -- DEPT_CODE 기준으로 그룹..

    [Oracle] SQL문제풀이 / 함수 연습 문제

    오늘의 함수 문제는 총 6문제다. 날짜 관련 함수를 사용해서 주민번호에서 생년을 추출하고, 현재의 년도와 계산하여 나이를 구하는 문제가 중요포인트! 함수 연습 문제 문제1 직원명과 주민번호를 조회하세요. 단, 주민번호 9번째 자리부터 끝까지는 '*'문자로 채운다. 예 : 홍길동 771120-1****** SELECT EMP_NAME ,RPAD(SUBSTR(EMP_NO,1,8), 14, '*') FROM EMPLOYEE; 문제2 직원명, 직급코드, 연봉(원) 조회하세요. 단, 연봉은 ₩57,000,000 으로 표시되게 한다. 연봉은 보너스 포인트가 적용된 1년치 급여이다. SELECT EMP_NAME 직원명 , JOB_CODE 직급코드 , TO_CHAR(SALARY * 12 * NVL2(BONUS, BON..

    [Oracle] Chap02 그룹함수와 단일행함수

    손가락 아프게 수업 내내 SQL쿼리문 작성한 결과... 오늘 하루동안 배운 내용이 이만큼이나 쌓였다. 혼자 독학하려 해도 이렇게 단시간내에 학습하기 어려웠을텐데, 너무 숨차면서도 역시 수업이 최고구나 느꼈다. 그룹함수와 단일행함수 함수(FUNCTION) : 컬럼 값을 읽어서 계산한 결과를 리턴함 단일행(SINGLE ROW) 함수 : 컬럼에 기록된 N개의 값을 읽어서 N개의 결과를 리턴 그룹(GROUP) 함수 : 컬럼에 기록된 N개의 값을 읽어서 한 개의 결과를 리턴 SELECT절에는 단일행 함수와 그룹 함수를 함께 사용하지 못한다. 결과 행의 갯수가 다르기 때문. 1. 그룹함수 SUM, AVG, MAX, MIN, COUNT SUM(숫자가 기록된 컬럼명) 합계를 구하여 리턴 SELECT SUM(SALARY..

    [Oracle] Chap01 SELECT 기본문법 및 연산자

    실습 테이블을 다운받아 테이블과 데이터들을 저장한 뒤 SELECT문 작성을 실습해보았다. (테이블과 그 안에 값들을 직접 타이핑 하기에는 시간이 오래걸리기 때문에 제공받은 워크시트를 사용함) -- 는 주석을 뜻함. 자바와 다른 몇가지 부분들을 헷갈리지 않게 잘 사용해봐야 겠다. && -> AND 그리고 || -> OR 라고 쓰는 것 처럼. 순간적으로 생각이 안나서 && 라고 적고 빨간줄이.. 자바에서 같다는 뜻인 == 요것도 SQL에서는 = 이고, NULL은 IS NULL, IS NOT NULL로 풀어쓴다. 그보다 정말 대소문자 구별 없이 대문자로만 작성하는 것도 낯설었다. 자꾸 첫문자를 대문자로 시작하고 소문자로 바꾸는 게 습관이 들어서 요상. 습관적 쉬프트를 안눌러도 된다니!! SELECT 기본 문법..