PROGRAMMING/SQL
-
[ SQL ] 집합연산자, 상호연관 서브쿼리PROGRAMMING/SQL 2022. 5. 10. 23:13
하루입니다. 오늘 공부할 건 집합연산자와 상호연관 서브쿼리. 집합연산자 한 번의 SQL문으로 결과가 나올 수 없을 때 사용한다. 합집합 SQL1 UNION SQL2 : SQL1과 SQL2의 조회결과를 합한다. SQL1과 SQL2의 조회결과 중에서 중복된 행은 한번만 조회된다. (중복행 하나만 나옴) SQL1 UNION ALL SQL2 : SQL1과 SQL2의 조회결과를 합한다. SQL1과 SQL2의 조회결과를 중복을 포함해서 조회한다. (중복행 모두 나옴) 교집합 SQL1 INTERSECT SQL2 : SQL1과 SQL2의 조회결과에 모두 포함된 행만 조회한다. 차집합 SQL1 MINUS SQL2 : SQL1의 조회결과에는 포함되어 있고, SQL2의 조회결과에는 포함되지 않는 행만 조회한다. 주의사항 S..
-
데이터 모델링(ER다이어그램 )PROGRAMMING/SQL 2022. 5. 3. 02:11
하루입니다. 오늘 공부할 것은 데이터 모델링과 ER다이어그램. 데이터 모델링 정보화 시스템을 구축할 때 어떤 데이터가 존재하고, 업무에 필요한 정보는 무엇인지 분석하는 작업. 분석한 정보의 내용을 ER다이어그램으로 표현했음. 이클립스에서 ER다이어그램 만들기 자바 프로젝트 생성 - new 누르고 other로 - ERMaster로 - 부모 프로젝트 선택 - DB 선택 (우리는 오라클) - finish 논리모델과 물리모델의 차이 논리모델 : 데이터 모델을 상세화하여 정보의 구조와 규칙을 표현하는 것? 물리모델 : 특정 DB에 맞춘 것 음 ... 그러니까 하나의 논리모델으로 여러 DBMS의 물리모델이 생성될 수 있다고 이해함. 예를 들어 논리모델에서 숫자 데이터 형식이 나온다면 오라클에서는 number, my..
-
[ SQL ] 무결성 제약조건 (기본키, 고유키, 외래키, NOT NULL, CHECK)PROGRAMMING/SQL 2022. 5. 2. 23:19
하루입니다. 오늘 공부할 것은 무결성 제약조건과 데이터 모델링. 무결성 제약조건 무결성의 뜻 : 데이터의 정확성 무결성 제약조건의 뜻 : 데이터의 정확성을 위해 테이블에 유효하지 않은 데이터가 입력되는 것을 방지하는 것. 제약조건의 정의 제약조건의 정의는 두 가지 방식으로 할 수 있다. 1. 컬럼 레벨 제약조건 정의 굳이 별칭을 붙이는 것은 별칭을 붙이지 않으면 제약조건 이름이 SYS U3359444 이런 식으로 뜬다. 찾기 어려움. CREATE TABLE 테이블명 ( 컬럼명 데이터타입 [CONSTRAINT 제약조건별칭] 제약조건, 컬럼명 데이터타입 [CONSTRAINT 제약조건별칭] 제약조건, ... ); 2. 테이블 레벨 제약조건 정의 하나 이상의 컬럼을 조합하여 제약조건을 정의할 수 있다. NOT ..
-
[ SQL ] 오라클 다중행함수(그룹함수) 와 GROUP_BY절PROGRAMMING/SQL 2022. 4. 29. 00:43
하루입니다. 오라클 내장함수란? SQR 작성에 유용한 기능을 제공하는 함수. DBMS 제품마다 조금씩 차이가 있다. 단일행함수와 다중행함수로 나뉜다. 다중행함수(그룹함수) 행그룹 (테이블의 모든 행, 조회된 모든 행, 특정 컬럼의 값이 같은 것끼리 그룹핑된 것)에 대해서 연산결과를 하나 반환하는 함수다. MIN(컬럼 혹은 표현식) : 행그룹에서 지정된 컬럼의 최소값을 반환한다. (NULL은 무시) MAX(컬럼 혹은 표현식) : 행그룹에서 지정된 컬럼의 최대값을 반환한다. (NULL은 무시) SUM(컬럼 혹은 표현식) : 행그룹에서 지정된 컬럼의 합계를 반환한다. (NULL은 무시) AVG (컬럼 혹은 표현식) : 행그룹에서 지정된 컬럼의 평균을 반환한다. (NULL은 무시) COUNT (컬럼 혹은 표현식..
-
[ SQL ] ORACLE의 데이터 타입PROGRAMMING/SQL 2022. 4. 28. 22:56
하루입니다. 오라클의 데이터 타입 VARCHAR2(size) 가변길이 문자 데이터이다. size범위내에서 실제 데이터의 크기만큼만 저장공간을 사용한다. 최대값: 4000 예) 이름, 주소, 과목명, 상품명, 뉴스제목 등 가변적인 값들. CHAR(size) 고정길이 문자 데이터이다. size크기만큼의 저장공간을 무조건 사용한다. 최대값: 2000 예) 주민번호, 학번, 수강과목코드 등 자릿수가 정헤진 값 VARCHAR2는 가변적이라서 10이라는 값을 줘도 4글자 HONG, 9글자 HARUAHARU, 5글자 KIMYS에 맞는 데이터 공간을 제공한다. CHAR은 고정길이라서 10이라는 값을 주면 HONG(6글자 공백), HARUSHARU(1글자 공백), KIMYS(5글자 공백)의 형태가 된다. VARCHAR(..
-
[ SQL ] JOIN (문제풀이와 포괄조인)PROGRAMMING/SQL 2022. 4. 28. 15:00
하루입니다. 직원아이디, 직원이름, 직종제목, 급여, 급여등급, 소속부서명, 근무지도시명, 관리자이름을 조회하기 E1 E1 J E1 S D L E2 SELECT E.EMPLOYEE_ID EMP_ID, E.FIRST_NAME EMP_NAME, J.JOB_TITLE EMP_JOB_TITLE, E.SALARY EMP_SALARY, S.GRADE EMP_GRADE, D.DEPARTMENT_NAME EMP_DEPT_NAME, L.CITY EMP_DEPT_CITY, M.FIRST_NAME MGR_NAME FROM EMPLOYEES E, EMPLOYEES M, JOBS J, SALARY_GRADE S, DEPARTMENTS D, LOCATIONS L WHERE E.JOB_ID = J.JOB_ID AND E.SALAR..
-
[ SQL ] JOIN(등가조인 여러개 하기, 비등가조인, 셀프조인)PROGRAMMING/SQL 2022. 4. 27. 23:54
하루입니다. 관계테이블. 파란 글자는 테이블명, 검은 글자는 컬럼명, 초록 글자는 데이터타입, 화살표는 서로 관련이 있다는 뜻. 등가조인 두 테이블 등가조인하기 조인할 때는 어떤 테이블에 어떤 값이 있고, 어떤 행끼리 연결해 필요한 정보를 가져올 것인지를 고민해야 한다. 자신이 맡은 테이블(작업)에 대한 이해도가 있어야 한다. 급여를 10000이상 받는 직원의 아이디, 이름, 직종제목, 급여, 소속부서명을 조회하기 EMPLOYEES EMPLOYEES JOBS EMPLOYEES DEPARTMENTS SELECT E.EMPLOYEE_ID, E.FIRST_NAME, J.JOB_TITLE, E.SALARY, D.DEPARTMENT_NAME FROM EMPLOYEES E, DEPARTMENTS D, JOBS J ..
-
[ SQL ] 정규화와 JOIN (등가조인)PROGRAMMING/SQL 2022. 4. 27. 03:56
하루입니다. 정규화는 데이터의 중복을 제거하여 보다 안정적인 자료구조를 가지게 하기 위한 단계이다. 제1정규형부터 제5정규형 + BCNF의 단계를 거치며, 일반적으로 제3정규형까지의 단계를 거치면 적절하고 중복이 없는 데이터를 얻을 수 있다. 제1정규화 하나의 컬럼은 하나의 값만 가지고 있어야 한다. 여기 학생정보 테이블이 있다. 홍길동이 수학, 영어라는 두 가지 값을 가지고 있다. 한 속성이 하나의 값만 가질 수 있도록 바꾸겠다. 제1정규화 완료! 더이상 나눠지지 않는 원자값으로 만들었다! 제2정규화 테이블의 모든 컬럼이 완전 함수적 종속을 만족해야 한다.(부분종속이 없어야 한다.) 부분종속이 없어야 한다? 예를 들어 학과장은 학과에도 속하고 이름에도 속할 수 있겠지만 이미 학과에 속하는 상황에서 이름..