• 전문가 요청 쿠폰 이벤트
rkdud410
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 5
검색어 입력폼
  • SQL 정리본(5주-6주) 평가A+최고예요
    SQL 정리본(5~6주차)5주차 SQL 정리본1. 데이터 유형- 숫자 타입ANSI/ISO 기준 :NUMERIC, DECIMAL, DEC, SMALLINT, INTEGER, INT, BIGINT, FLOAT, REAL, DOUBLE PRECISIONSQL Server와 Sybase :작은 정수형, 정수형, 큰 정수형, 실수형 등 + MONEY, SMALLMONEYOracle :숫자형 타입에 대해서 NUMBER 한 가지 숫자 타입의 데이터 유형만 지원-벤더에서 ANSI/ISO 표준을 사용할 때는 기능을 중심으로 구현하므로, 일반적으로 표준과 다른 용어를 사용하는 것이 허용(ex: NUMERIC → NUMBER, WINDOW FUNCTION → ANALYTIC/RANK FUNCTION)-테이블의 칼럼이 가지고 있는 대표적인 4가지 데이터 유형기타 유형 :ANSI/ISO에서 Binary String Type, Binary Large Object String Type, National Character String Type, Boolean Type 등- 문자열 유형 :CHAR 유형과 VARCHAR 유형의 차이VARCHAR 유형 :가변 길이,CHAR 유형 : 고정길이비교 방법의 차이 :CHAR에서는 문자열을 비교할 때 공백(BLANK)을 채워서 비교VARCHAR 유형에서는 맨 처음부터 한 문자씩 비교하고 공백도 하나의 문자로 취급예) CHAR 유형'AA' = 'AA ' 예) VARCHAR 유형 'AA' ≠ 'AA '(실험)2. CREATE TABLE가. 테이블과 칼럼 정의 : 후보키 중에 하나를 선정하여 기본키 칼럼으로 지정(예) 선수 테이블(예) 부서와 사원 테이블나. CREATE TABLECREATE TABLE 테이블이름 ( 칼럼명1 DATATYPE DEFAULT 형식, 칼럼명2 DATATYPE DEFAULT 형식, 칼럼명3 DATATYPE DEFAULT 형식 ) ;다음은 테이블 생성 시에 주의해야 할 몇 가지 규칙이다.- 테이블명 :객체를 의미할 수 있는 적절한 이r)- 두 벤더 모두 공통적으로 CONCAT (string1, string2) 함수를 사용할 수 있다.- 칼럼과 문자 또는 다른 칼럼과 연결시킨다.- 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.예제 다음과 같은 선수들의 출력 형태를 만들어 본다.출력 형태) 선수명 선수, 키 cm, 몸무게 kg 예) 박지성 선수, 176 cm, 70 kg예제 OracleSELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보FROM PLAYER;예제 SQL ServerSELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg'체격정보FROM PLAYER;1. 트랜잭션 개요트랜잭션이란○데이터베이스의 논리적으로 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.○응용 프로그램은 트랜잭션의 집합3가지 명령어를 트랜잭션을 콘트롤하는 TCL(TRANSACTION CONTROL LANGUAGE)○ COMMIT :올바르게 반영된 데이터를 데이터베이스에 반영시키는 것○ ROLLBACK :트랜잭션 시작 이전의 상태로 되돌리는 것○SAVEPOINT :저장점트랜잭션의 대상이 되는 SQL문은 UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML 문이다.2. COMMIT입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우 COMMIT 명령어를 통해서 트랜잭션을 완료- 단지 메모리 BUFFER에만 영향을 받았기 때문에 데이터의 변경 이전 상태로 복구 가능- 현재 사용자는 SELECT 문장으로 결과를 확인 가능- 다른 사용자는 현재 사용자가 수행한 명령의 결과를 볼 수 없음- 변경된 행은 잠금(LOCKING)이 설정되어서 다른 사용자가 변경할 수 없음SQL Server의 COMMITOracle은 DML을 실행하는 경우 DBMS가 트랜잭션을 내부적으로 실행DML 문장 수행 후 사용자가 임의로 COMMIT 혹EXPRESSION 조건 - OracleSELECT TEAM_ID,NVL(SUM(CASE POSITION WHEN 'FW' THEN 1 ELSE 0 END),0) FW,NVL(SUM(CASE POSITION WHEN 'MF' THEN 1 ELSE 0 END),0) MF,NVL(SUM(CASE POSITION WHEN 'DF' THEN 1 ELSE 0 END),0) DF,NVL(SUM(CASE POSITION WHEN 'GK' THEN 1 ELSE 0 END),0) GK,COUNT(*) SUMFROM PLAYERGROUP BY TEAM_ID;SIMPLE_CASE_EXPRESSION 조건 - OracleCASE 표현의 ELSE 0, ELSE NULL 문구는 생략 가능하므로 다음과 같이 조금 더 짧게 SQL 문장을 작성할 수 있다. Default 값인 NULL이 적용됨.SELECT TEAM_ID,NVL(SUM(CASE POSITION WHEN 'FW' THEN 1 END),0) FW,NVL(SUM(CASE POSITION WHEN 'MF' THEN 1 END),0) MF,NVL(SUM(CASE POSITION WHEN 'DF' THEN 1 END),0) DF,NVL(SUM(CASE POSITION WHEN 'GK' THEN 1 END),0) GK,COUNT(*) SUMFROM PLAYERGROUP BY TEAM_ID;SEARCHED_CASE_EXPRESSION 조건 - OracleSELECT TEAM_ID,NVL(SUM(CASE WHEN POSITION = 'FW' THEN 1 END), 0) FW,NVL(SUM(CASE WHEN POSITION = 'MF' THEN 1 END), 0) MF,NVL(SUM(CASE WHEN POSITION = 'DF' THEN 1 END), 0) DF,NVL(SUM(CASE WHEN POSITION = 'GK' THEN 1 END), 0) GK,COUNT(*) SUMFROM PLAYERGROUP BY TEAM_ID;SEARCHED_NATURAL JOINUSING 조건절ON 조건절CROSS JOINOUTER JOIN3.INNER JOINOUTER JOIN의 비교되는 JOIN방식. JOIN 조건에서 동일한 값이 있는 행만 반환USING, ON 조건절을 필수적으로 사용해야 함--WHERE절 JOINSELECT EMPLOYEES.LAST_NAME, DEPARTMENTS.department_nameFROM EMPLOYEES , DEPARTMENTSWHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;--FROM절 JOINSELECT EMPLOYEES.LAST_NAME, DEPARTMENTS.department_nameFROM EMPLOYEES INNER JOIN DEPARTMENTSON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;4.NATURAL JOIN두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI(=) JOIN을 수행**NAUTRAL JOIN이 명시되면 USING, ON, WHERE 절에 JOIN 조건을 정의할 수 없다.--NATURAL JOINSELECT EMPLOYEES.LAST_NAME, DEPARTMENTS.department_nameFROM EMPLOYEES NATURAL JOIN DEPARTMENTS;--NATURAL JOIN(ON 조건절 기술로 에러)SELECT EMPLOYEES.LAST_NAME, DEPARTMENTS.department_nameFROM EMPLOYEES NATURAL JOIN DEPARTMENTSON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;--NATURAL JOIN(WHERE 조건절 기술로 에러)SELECT EMPLOYEES.LAST_NAME, DEPARTMENTS.department_nameFROM EMPLOYEES NATURAL JOIN DEPARTMENTSWHERE EMPLOYEES.DEA%B3%BC"결과 루트사원 경로 사원 관리자 ------- ------- ---- ----- A /A A A /A/B B A A /A/C C A A /A/C/D D C A /A/C/E E CSTART WITH를 통해 추출된 루트 데이터가 1건 이기 때문에 루트사원은 모두 A이다. 경로는 루트로부터 현재 데이터까지의 경로를 표시한다. 예를 들어, D의 경로는 A → C → D 이다.나. SQL Server 계층형 질의SQL Server 2000 버전까지는 계층형 질의를 작성할 수 있는 문법을 지원하지 않았다. 조직도처럼 계층적 구조를 가진 데이터는 저장 프로시저를 재귀 호출하거나 While 루프 문에서 임시 테이블을 사용하는 등 (순수한 쿼리가 아닌) 프로그램 방식으로 전개해야만 했다. 그러나 SQL Server 2005 버전부터는 하나의 질의로 원하는 결과를 얻을 수 있게 되었다.먼저, Northwind 데이터베이스에 접속하여 Employees 테이블의 데이터를 조회해 보자.USE NORTHWIND GO SELECT EMPLOYEEID, LASTNAME, FIRSTNAME, REPORTSTO FROM EMPLOYEES GO ************************************************************************** EmployeeID LastName FirstName ReportsTo --------- -------- ------- -------- 1 Davolio Nancy 2 2 Fulle Andrew NULL 3 Leverling Janet 2 4 Peacock Margaret 2 5 Buchanan Steven 2 6 Suyama Michael 5 7 King Robert 5 8 Callahan Laura 2 9 Dodsworth Anne 5 (9개 행 적용됨)총 9개 로우가 있는데, ReportsTo 칼럼이 상위 사원에 해당하며 EmployeeID 칼럼과 재귀적 관계를 맺고 있다. EmployeeID가 2인 었다.
    컴퓨터/IT| 2018.01.24| 93페이지| 1,500원| 조회(143)
    미리보기
  • SQL 정리본(1주차-4주차)
    SQL 정리본(1~4주차)1주차 SQL 정리본모델링의 정의-한마디로 모델링이란 복잡한 현실세계를 추상화 단순화 명확화 하기 위해일정한 표기법에 의해 표현하는 기법데이터 모델링의 정의- 정보 시스템을 구축하기 위해 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법- 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 본재하는 업무규칙에 대하여 참 또는 거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법(HOW), 사람(WHO), 전산화는 별개(독립적인)의 관점에서 이를 명확하게 표현하는 추상화 기법- 즉, 데이터 모델링이란 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정이다. 또한 데이터베이스를 구축하기 위한 분석/설계의 과정이다.데이터 모델이 제공하는 기능- 업무를 분석하는 관점에서 데이터 모델이 제공하는 기능1. 시스템을 현재 또는 원하는 모습으로 가시화하도록 도와준다.2. 시스템의 구조와 행동을 명세화 할 수 있게 한다.3. 시스템을 구축하는 구조화된 틀을 제공한다.4. 시스템을 구축하는 과정에서 결정한 것을 문서화한다.5. 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다.6. 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공한다.데이터 모델의 중요성 및 유의점가. 파급효과(leverage)- 시스템 구축이 완성되가는 시점에서의 데이터 모델변경은 엄청난 파급효과를 발생시킴- 데이터 구조 변경에 따른 표준영향분석, 응용 영향 분석 등 많은 영향 분석이 일어남- 변경해야할 데이터 형태에 따른 영향도는 차이가 있겠지만 구조변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에 큰 위험요소임 -> 따라서 데이터 설계는 그만큼 중요나. 복잡한 정보 요구사항의 간결한 표현(conciseness)- 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다.다. 데이터품질(data Quality)- 데이터는 중요한 자산이며,물건, 사건, 개념 등의 명사에 해당한다.- 엔터티는 업무상 관리가 필요한 관심사에 해당한다.- 엔터티는 저장이 되기 위한 어떤 것이다.Entity와 Instance에 대한 내용과 표기법- Entity(객체), Instance(사례, 경우)- Entity는 Instance의 집합IE표기법과 Barker표기법은 알아두기Entity의 특징가. 업무에서 필요로 하는 정보- 반드시 해당 업무에서 필요하고, 관리하고자 하는 정보이어야 한다.병원시스템Entity인사시스템O환자XX토익점수O나. 식별이 가능해야 함- 유일한 식별자에 의해 식별이 가능해야 한다.다. Instance의 집합- 영속적으로 존재하는 Instance의 집합- 2개 이상의 Instance의 집합- 1개의 Instance로 이루어진 집합은 Entity가 아니다.라. 업무 프로세스에 의해 이용- 업무 프로세스가 반드시 그 Entity를 이용해야 한다.마. 속성을 포함- Entity에는 반드시 속성(Attributes)이 포함되어야 한다.- 식별자만 존재하고 일반속성이 전혀 없는 객체는 Entity가 될 수 없다.- 단, 관계 Entity의 경우엔 주 식별자 속성만으로도 Entity로 인정바. 관계의 존재- Entity는 다른 Entity와 최소한 한 개 이상의 관계가 존재하여야 한다.- 데이터 모델링에서 관계를 생략하여 표현하는 경우1) 통계를 위한 데이터 : 통계만을 위한 Reed Only Table2) 코드성 Entity- 너무 많은 Entity들과의 관계로 데이터 모델이 복잡해짐- 일반적으로 코드 테이블에 FK를 설정하지 않는 경우가 대부분이다.(부모자식 table)- 시스템 처리 시 내부적으로 필요한 Entity : 로그 테이블(로그정보는 말 그대로 로그, insert, update 등 의 이력을 남기기 위한 테이블)Entity의 분류 ( 유무형에 따른 분류, 발생시점에 따른 분류 )가. 유무형에 따른 분류구분특징예시유형 엔터티(Tangible Entity)tangible - 유형의물리적 형태가 있 좋다.- 일반적으로는 서술식의 속성명은 사용하지 말아야 한다.명사형을 이용하고 수식어가 많이 붙지 않도록 유의하여 작성한다.수식어가 많으면 의미 파악이 힘들고 상세설계단계에서 물리속성으로 전환하는데 명확한 의미파악이 어렵게 된다. 소유격도 사용하지 않는다.- 공용화 되지 않은 업무에서 사용하지 않는 약어는 사용하지 않는 것이 좋다.지나치게 약어를 많이 사용하면 업무 분석자 내에서도 의사소통이 제약을 받으며 시스템 을 운영할 때도 많은 불편을 초래할 수 있다.- 가능하면 모든 속성의 이름은 유일하게 작성하는 것이 좋다.물론, 대량의 속성을 정의하는 경우 유일하게 작성하는 것이 어려울 수 도 있지만 이렇게 하는 것이 나중에 데이터에 대한 흐름을 파악하고 데이터의 정합성을 유지하는데 큰 도움 이 된다. 또한 반정규화(테이블 통합, 분리, 칼럼의 중복 등)를 적용할 때 속성의 충돌을 해결하여 안정적으로 반정규화를 적용할 수 있게 된다.관계의 개념가. 관계의 정의- 상호연관성이 있는 상태데이터 모델적 정의- “엔터티의 인스턴스 사이의 논리적 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태”- 관계는 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.나. 관계의 페어링 ( 이해가 잘 안가는 부분! )- 유의해야할 점은 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(페어링)이고 이것의 집합을 관계로 표현한다는 것이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.- 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 패어링(Relationship paring)이라 한다.관계의 분류 ( 존재에 의한 관계, 행위에 의한 관계 )그림 I-1-32에서 왼쪽편에 있는 모델은 황경빈이란 사원이 DB팀에 소속되어있는 상태를 나타낸다. ‘소속된다’.신청인구분코드 = ‘01'AND 접수.신청인주민번호 = ‘*************'AND 접수.신청횟수 = ‘1’/*인조 식별자*/SELECT 계약금FROM 접수WHERE 접수.접수일자 = ‘*************01'5.식별자 관계와 비식별자관계에 따른 식별자가. 식별자 관계와 비식별자 관계의 결정외부식별자 : 자기 자신의 엔터티에서 필요한 속성이 아니라, 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성.나. 식별자관계자식엔터티가 부모로부터 받은 식별자를 주식별자로 이용하는 경우는 Null 값이 오면 안되므로 반드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우.다. 비식별자관계부모 엔터티로 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우- 자식 엔터티에서 받은 속성이 반드시 필수가 아니어도 무방한 경우(부모 없는 자식생성 가능)- 엔터티 별로 데이터의 생명주기를 다르게 관리할 경우. 자식만 남겨두고 부모의 인스턴스가 먼저 소멸되는 경우- 여러 개의 엔터티가 하나의 엔터티로 통합되고, 각각의 엔터티가 별도의 관계를 가질 때자식 엔터티에 주식별자로 사용하여도 되지만, 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때.라. 식별자 관계로만 설정할 경우의 문제점지속적으로 식별자 관계를 연결한 데이터 모델의 PK속성의 수는 데이터 모델의 흐름이 길어질수록 증가함마. 비식별자 관계로만 설정할 경우의 문제점부모 엔터티에 있는 PK속성이 자식(정확히는 손자 이후부터)엔터티로 상속되지 않음.즉 손자 엔터티에서 할아버지 엔터티로 접근할 경우 반드시 부모 엔터티를 거쳐야만 접근이 가능하게 됨.바. 식별자관계와 비식별자관계 모델링1.비식별자관계 선택 프로세스기본적으로 식별자관계로 모든 관계가 연결되면서 다음 조건에 해당할 경우 비식별자관계로 조정하면 된다.가장 중요한 부분은 자식 엔터티의 독립된 식별자 구성이 필요한지 여부(업무적 필요성, 성능상 필요여부 모두)2.식별자와 비식별자관계 비교3주차 SQ능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정- 참고 : 비정규화는 정규화를 수행하지 않음을 의미나. 반정규화의 적용방법참고사항반정규화를 설계단계에서 수행하지 않는 경우 아래와 같은 현상발생성능이 저하된 데이터베이스가 생성될 수 있다.구축단계나 시험단계에서 반정규화를 적용할 때 수정에따른 노력비용이 많이 들게 된다.반정규화의 대상을 조사한다.- 자주 사용되는 테이블에 접근(Access)하는 프로세스의 수가 많고 항상 일정한범위만을 조회하는 경우- 대량의 데이터가 존재하고 넓은 범위의 데이터를 자주 처리하는데, 처리범위를 줄이지않으면 성능을 보장할 수 없는 경우- 통계성 프로세스에 의해 통계 정보를 필요로 하는 경우- 테이블에 지나치게 많은 조인(JOIN)이 걸려 데이터 조회에 기술적 어려움이 존재하는경우- 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토한다.- 지나치게 많은 조인(JOIN)이 걸려 데이터 조회에 기술적 어려움이 존재하는 경우뷰(VIEW)를 사용하여 해결할 수 있음- 대량의 데이터처리나 부분처리에 의해 성능이 저하되는 경우 클러스터링을적용하거나 인덱스를 조정함으로써 성능저하현상을 해결할 수 있음- 대량의 데이터는 Primary Key의 성격에 따라 파티셔닝 기법(Partitioning)을적용하여 성능저하 현상을 해결할 수 있음- 응용 애플리케이션에서 로직을 구사하는 방법을 변경함으로써 성능을 향상시킬 수있음(예 : 캐쉬기술 등)- 반정규화를 적용한다.반정규화 이외의 다른 성능향상 방안에 대한 고려가 충분히 이루어진 후, 반정규화를고려하게 되었다면 다양한 방법에 의한 반정규화 기법을 적용할 수 있음(예 : 테이블,속성, 관계의 추가, 분할, 제거 등)2. 반정규화의 기법가. 테이블 반정규화나. 칼럼 반정규화다. 관계 반정규화3. 정규화가 잘 정의된 데이터 모델에서 성능이저하될 수 있는 경우참고 사이트http://www.dbguide.net/db.db?cmd=viewHYPERLINK "http듬)
    컴퓨터/IT| 2018.01.24| 76페이지| 1,500원| 조회(140)
    미리보기
  • SQL 정리본(6주차 셀프조인부터)
    self join조인만 했을 경우2. 다중행 서브쿼리서브쿼리의 결과가 2건 이상 반환될 수 있다면 반드시 다중 행 비교 연산자(IN, ALL, ANY, SOME)와 함께 사용해야 한다. 그렇지 않으면 SQL문은 오류를 반환한다. 다중 행 비교 연산자는 다음과 같다.선수들 중에서 ‘정현수’라는 선수가 소속되어 있는 팀 정보를 출력하는 서브쿼리를 작성하면 다음과 같다.[예제] SELECT REGION_NAME 연고지명, TEAM_NAME 팀명, E_TEAM_NAME 영문팀명 FROM TEAMWHERE TEAM_ID = (SELECT TEAM_ID FROM PLAYER WHERE PLAYER_NAME = '정현수')ORDER BY TEAM_NAME; ORA-01427:단일 행 하위 질의에 2개 이상의 행이 리턴되었다. -> 동명이인으로 2건 발생위의 SQL문은 서브쿼리의 결과로 2개 이상의 행이 반환되어 단일 행 비교 연산자인 '='로는 처리가 불가능하기 때문에 에러가 반환되었다. 따라서 다중 행 비교 연산자로 바꾸어서 SQL문을 작성하면 다음과 같다.[예제] SELECT REGION_NAME 연고지명, TEAM_NAME 팀명, E_TEAM_NAME 영문팀명 FROM TEAMWHERE TEAM_ID IN (SELECT TEAM_ID FROM PLAYER WHERE PLAYER_NAME = '정현수')ORDER BY TEAM_NAME;[실행 결과] 연고지명 팀명 영문팀명------ -------- --------------------전남 드래곤즈 CHUNNAM DRAGONS FC성남 일화천마 SEONGNAM ILHWA CHUNMA FC 2개의 행이 선택됨실행 결과를 보면 '정현수'란 이름을 가진 선수가 두 명이 존재한다. 소속팀은 각각 전남 드래곤즈팀(K07)과 성남 일화천마팀(K08)이다. 본 예제에서는 동명이인에 대한 내용을 예로 들었지만, 서브쿼리의 실행 결과가 2건 이상이 나오는 모든 경우에 다중 행 비교 연산자를 사용해야 한다.3. 다중 칼럼 서브쿼리다중 칼M PLAYER GROUP BY TEAM_ID)ORDER BY TEAM_ID, PLAYER_NAME;▶ 그냥 키가 작은 사람들이라면 WHERE HIGHT IN ( SELECT MIN(HEIGHT) ... )[실행 결과] 팀코드 선수명 포지션 백넘버 키----- -------- ------ ---- ---K01 마르코스 FW 44 170K01 박정수 MF 8 170K02 고창현 MF 8 170K02 정준 MF 44 170K03 김중규 MF 42 170 19개의 행이 선택되었다.SQL문의 실행 결과를 보면 서브쿼리의 결과값으로 소속팀코드(TEAM_ID)와 소속팀별 가장 작은 키를 의미하는 MIN(HEIGHT)라는 두 개의 칼럼을 반환했다. 메인쿼리에서는 조건절에 TEAM_ID와 HEIGHT 칼럼을 괄호로 묶어서 서브쿼리 결과와 비교하여 원하는 결과를 얻었다. 실행 결과에서 보면 하나 팀에서 키가 제일 작은 선수 한 명씩만 반환된 것이 아니라 같은 팀에서 여러 명이 반환된 것을 확인할 수 있다. 이것은 동일 팀 내에서 조건(팀별 가장 작은 키)을 만족하는 선수가 여러 명이 존재하기 때문이다. 그러나 이 기능은 SQL Server에서는 지원되지 않는 기능이다.4. 연관 서브쿼리연관 서브쿼리(Correlated Subquery)는 서브쿼리 내에 메인쿼리 칼럼이 사용된 서브쿼리이다. 선수 자신이 속한 팀의 평균 키보다 작은 선수들의 정보를 출력하는 SQL문을 연관 서브쿼리를 이용해서 작성해 보면 다음과 같다. // 팀별 평균키(group by)//그리고 팀별 평균키를 구해야하므로 TEAM 테이블 조인[예제]SELECT T.TEAM_NAME 팀명, M.PLAYER_NAME 선수명, M.POSITION 포지션, M.BACK_NO 백넘버, M.HEIGHT 키FROM PLAYER M, TEAM TWHERE M.TEAM_ID = T.TEAM_ID AND M.HEIGHT < ( SELECT AVG(S.HEIGHT) FROM PLAYER SWHERE S.TEAM_ID = M.TEAM당 데이터는 출력되지 않는다. 이와 같은 작업을 메인쿼리에 존재하는 모든 행에 대해서 반복 수행한다. EXISTS 서브쿼리는 항상 연관 서브쿼리로 사용된다. 또한 EXISTS 서브쿼리의 특징은 아무리 조건을 만족하는 건이 여러 건이더라도 조건을 만족하는 1건만 찾으면 추가적인 검색을 진행하지 않는다.다음은 EXISTS 서브쿼리를 사용하여 '20120501' 부터 '20120502' 사이에 경기가 있는 경기장을 조회하는 SQL문이다.[예제] SELECT STADIUM_ID ID, STADIUM_NAME 경기장명FROM STADIUM AWHERE EXISTS (SELECT 1 //1을 써줌FROM SCHEDULE XWHERE X.STADIUM_ID = A.STADIUM_ID AND X.SCHE_DATE BETWEEN '20120501' AND '20120502')[실행 결과] ID 경기장명--- ---------------------------------B01 인천월드컵경기장B04 수원월드컵경기장B05 서울월드컵경기장C02 부산아시아드경기장 4개의 행이 선택되었다.// 20120501 ~ 20120502 이 하나의 조건만 만족하면 다 검색되는 것5. 그 밖에 위치에서 사용하는 서브쿼리가. SELECT절에서 서브쿼리 사용하기다음은 SELECT 절에서 사용하는 서브쿼리인 스칼라 서브쿼리(Scalar Subquery)에 대해서 알아본다. 스칼라 서브쿼리는 한 행, 한 칼럼(1 Row 1 Column)만을 반환하는 서브쿼리를 말한다. 스칼라 서브쿼리는 칼럼을 쓸 수 있는 대부분의 곳에서 사용할 수 있다. 선수 정보와 해당 선수가 속한 팀의 평균 키를 함께 출력하는 예제로 스칼라 서브쿼리를 설명하면 다음과 같다. //선수가 두 번나왔고 셀프조인해서 정보를 이어가도록![그림 Ⅱ-2-15]는 2개의 SQL문으로 구성되어 있다. 선수들의 정보를 출력하는 SQL문(메인쿼리 부분)과 해당 선수의 소속팀별 평균키를 알아내는 SQL문(서브쿼리 부분)으로 구성된다. 여기서 선수의 소속팀ROM절에서 서브쿼리 사용하기FROM 절에서 사용되는 서브쿼리를 인라인 뷰(Inline View)라고 한다. FROM 절에는 테이블 명이 오도록 되어 있다. 그런데 서브쿼리가 FROM 절에 사용되면 어떻게 될까? 서브쿼리의 결과가 마치 실행 시에 동적으로 생성된 테이블인 것처럼 사용할 수 있다. 인라인 뷰는 SQL문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에 데이터베이스에 해당 정보가 저장되지 않는다. 그래서 일반적인 뷰를 정적 뷰(Static View)라고 하고 인라인 뷰를 동적 뷰(Dynamic View)라고도 한다. 뷰에 대해서는 뒤에서 좀더 설명하기로 한다. 인라인 뷰는 테이블 명이 올 수 있는 곳에서 사용할 수 있다. 서브쿼리의 칼럼은 메인쿼리에서 사용할 수 없다고 했다. 그러나 인라인 뷰는 동적으로 생성된 테이블이다. 인라인 뷰를 사용하는 것은 조인 방식을 사용하는 것과 같다. 그렇기 때문에 인라인 뷰의 칼럼은 SQL문 자유롭게 참조할 수 있다.K-리그 선수들 중에서 포지션이 미드필더(MF)인 선수들의 소속팀명 및 선수 정보를 출력하고자 한다. 인라인 뷰를 활용해서 SQL문을 만들어 보자.[예제][실행 결과]다음과 같이 풀어도 됨SQL문을 보면 선수들 중에서 포지션이 미드필더(MF) 선수들을 인라인 뷰를 통해서 추출하고 인라인 뷰의 결과와 TEAM 테이블과 조인해서 팀명(TEAM_NAME)을 출력하고 있다. 인라인 뷰에서는 ORDER BY절을 사용할 수 있다. 인라인 뷰에 먼저 정렬을 수행하고 정렬된 결과 중에서 일부 데이터를 추출하는 것을 TOP-N 쿼리라고 한다. TOP-N 쿼리를 수행하기 위해서는 정렬 작업과 정렬 결과 중에서 일부 데이터만을 추출할 수 있는 방법이 필요하다. Oracle에서는 ROWNUM이라는 연산자를 통해서 결과로 추출하고자 하는 데이터 건수를 제약할 수 있다.[예제] Oracle SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키FROM (SELECT PLVG(P.HEIGHT) 평균키 FROM PLAYER P, TEAM TWHERE P.TEAM_ID = T.TEAM_ID GROUP BY P.TEAM_ID, T.TEAM_NAMEHAVING AVG(P.HEIGHT) < (SELECT AVG(HEIGHT) FROM PLAYER WHERE TEAM_ID ='K02');---------------라. UPDATE문의 SET절에서 사용하기현재 TEAM 테이블에는 STADIUM_NAME 칼럼이 없다.TEAM 테이블에 STADIUM_NAME을 추가(ALTER TABLE ADD COLUMN)하였다고 가정하자. TEAM 테이블에 추가된 STADIUM_NAME의 값을 STADIUM 테이블을 이용하여 변경하고자 할 때 다음과 같이 SQL문을 작성할 수 있다.■ TEAM 테이블의 STADIUM_NAME 컬럼에 STADIUM 테이블의 STADIUM_NAME 칼럼을 업데이트 할 것UPDATE TEAM ASET A.STADIUM_NAME = (SELECT X.STADIUM_NAME FROM STADIUM X WHERE X.STADIUM_ID = A.STADIUM_ID); // 조인 이유는 X의 ID와 A의 ID를 조인하여 A에 따르는 내용들이 조인된 ID에 따라 다시 값을 정렬하기 위해 -> 정렬된 값으로 A.STADIUM_NAME을 추가서브쿼리를 사용한 변경 작업을 할 때 서브쿼리의 결과가 NULL을 반환할 경우 해당 컬럼의 결과가 NULL이 될 수 있기 때문에 주의해야 한다.마. INSERT문의 VALUES절에서 사용하기PLAYER 테이블에 '홍길동'이라는 선수를 삽입하고자 한다. 이때 PLAYER_ID의 값을 현재 사용중인 PLAYER_ID에 1을 더한 값으로 넣고자 한다. 다음과 같이 SQL문을 SQL문을 작성할 수 있다.INSERT INTO PLAYER(PLAYER_ID, PLAYER_NAME, TEAM_ID)VALUES((SELECT TO_CHAR(MAX(TO_NUMBER(PLAYER_ID))+1) FROM PLAYER), '홍
    컴퓨터/IT| 2018.01.24| 12페이지| 1,500원| 조회(106)
    미리보기
  • 토익 자주 나오는 단어 정리 평가B괜찮아요
    토익 자주 나오는 단어 정리coincidently 우연히acquire ~을 획득하다, ~을 영입하다, ~을 인수하다address ~을 해결하다, 다루다, 취급하다, 처리하다, 연설하다advance 앞으로 나아가다, 앞으로 진행하다, 발전, 진보advances in ~에서의 발전, 진보, in advance 미리(=beforehand)advancement 승진affordable 경제적으로 감당할 만한in advance of ~보다 앞서allowance 허용치, 허락, 수당, 용돈 baggage allowance 수하물 허용치,give allowance to employees 직원들에게 수당을 지급하다among ~중에서, ~을 대상으로, ~중에 하나appoint 임명하다appreciate ~에 대해 감사해하다, ~을 평가하다attach = affix ~을 첨부하다, 붙이다attendant 종업원attentive 세심한, 주의 깊은attraction 관광명소authentic 진짜의authorization 허락, 승인authorized 허락이 된, 승인된avoid Ving (~하는 것을 피하다)on a regular basis 정기적으로boost 증가, 증대, ~을 증가시키다broad 넓은, 폭넓은carry ~을 운반하다, ~을 취급하다, ~을 가지고 다니다certificate 자격증, a gift certificate 상품권certify ~에게 자격을 부여하다chance 기회, 가능성, 확률clearance 재고정리, 정리closely 긴밀하게, 주의 깊게collection 수집, 수금commerce 상업, 교역in common 공통으로, common ground 공통점, common sense 상식comparable 견줄만한, 비슷한compatible with 호환 가능한complicated 복잡한, 까다로운comply with ~을 지키다, 준수하다= observe, obey, follow, abide by, stick to, adhere tocomprehensive 종합적인, 포괄적인comprehensible 이해할 수 있는conduct ~을 실시하다conserve ~을 보존하다, 보호하다, 아끼다, 절약하다considerable 상당한 = significant, substantialcontinual 중단 없이 계속되는continuous 지속적인cost-effective 비용을 절감하는, 비용면에서 효율적인costly 비용이 많이드는(형용사)cover (비용 등을) 포함하다, ~에 대해 보험처리해 주다daily 매일의(형용사), 매일(부사)definite 한정적인, 분명한deifinitive 분명한, 유한한delicate 민감한, 섬세한, 우아한delegation 대표단design ~을 고안하다, 설계하다designated 지정된mandate 권한, 지시, 명령하다, 지시하다mandatory 의무적인discontinue ~을 중단시키다 + 명사/Vingdisruption 중단diversify 다양화하다, 다각화시키다dividends 배당금durable 내구성 있는economical 절약하는, 경제적인engage in ~에 몰두하다, 관여하다further 추가의, 여분의retrieve 되찾다, 회수하다estimate 견적서, 추정하다estimation 견적envelope 봉투, ~을 봉투에 넣다evenly 골고루, 평평하게examine 주의 깊게 보다, 조사하다, 진찰하다exceptional 예외적인, 우수한exception 예외, 제외exceptionally 각별히, 예외적으로extension 연장, 내선전화be familiar with ~에 대해 잘 알고 있다, ~에 익숙하다favorable 유리한, 호의적인figures 수치, 실적, 인물figure out 이해하다findings 연구 결과finalize ~을 성사시키다, ~을 마무리짓다firmly 확실하게, 단단하게fiscal 회계의forward 앞쪽으로, 보내다, 전송하다move forward to ~을 진전시키다look forward to ~을 기대하다gauge ~을 재다, 측정하다, 표준치수generate ~을 창출하다, ~을 만들어내다given (that) ~라는 점을 고려해볼 때grant (4형식) ~에게 ~을 보장해주다, 수여하다, 보조금cope with ~을 처리하다, 다루다hardly 거의 ~아닌heavily 심하게, 몹시held 개최된in honor of ~을 기념하여, ~을 축하하여hospitality 접대, 환대ideal 이상적인indicator 지표informative 유익한informed 현명한, ~에 대해 공지받은(알려진)initiative 개시, 주도권investigate, look into ~을 조사하다instant 즉각적인institute (제도, 관습 등)을 마련하다, 제정하다institution 제정instruct ~에게 설명하다, ~에게 지시하다instructions 지시사항, 사용 설명서intend to ~하려고 의도하다-------------------------------------knowingly 의도적으로, 고의로largely 크게, 대체적으로lasting 오래가는, 지속되는lead ~을 유도하다, 이끌다, 초래하다leading 선도적인, 앞서가는lease ~을 빌려주다, 빌리다level 수준, 지위, 직책liable ~하기 쉬운, 책임 있는local 현지의, 국내의look into ~을 조사하다, look over ~을 검토하다loyal 충성스러운market 시장, ~을 팔다, 판매하다minor 사소한, 작은moderately 적당히, 알맞게mutual 상호적인nearby 근처의 (형용사)needlessly 불필요하게, 쓸데없이none 어느 것도 아님(명사)notable 저명한, 주목할 만한note 메모, ~을 유의하다, until further notice 추후 통지가 있을 때까지obligated ~하도록 의무를 진, 강제된, be obligated to ~해야 한다obstruct ~을 막다, 방해하다orderly 정돈된, 단정한otherwise 그렇지 않으면, 달리, 다르게outstanding 뛰어난, 훌륭한, 미결제된overall 전반적인overcome ~을 극복하다(=get over)persistent 끈기 있는, 꾸준한, (얼룩 등이) 잘 빠지지 않는persistence 끈기pertaining ~에 관련된preference 선호, 우대preferred 선호되는, 우대되는preventable 예방할 수 있는preventive 예방을 위한previous 이전의priority 우선순위, 우선권promising 전도유망한, 미래가 밝은, 눈에 잘 띄는promotional 홍보용의provided 만약 ~라면purposely 고의로qualify ~에게 자격을 부여하다reflect ~을 반영하다, 심사숙고하다regarded 인정받는release ~을 발표하다, ~을 개봉하다, ~을 공개하다remainder 나머지, 남은 기간represent 대표하다, 대변하다respectively 각각restore ~을 복원시키다 + A to Bretain ~을 확보하다, 보유하다return ~을 반품하다, ~을 반납하다reunion 동창회right 권한, 권리rigorously 엄격하게rigidly 딱딱한, 견고한rotating 회전하는, 순환하는scrutinize ~을 면밀히 조사하다seek ~을 찾다, 구하다
    외국어| 2018.01.24| 6페이지| 1,500원| 조회(1,553)
    미리보기
  • 모던패밀리 시즌1 1화 어휘 정리
    모던패밀리 시즌1 1화- get stuck 갇히다.ex) ~에 갇히는 등 움직이지 못할 때I was stuck in the elevator for an hour.We got stuck in traffic.Why do you keep getting stuck like this? 왜 이렇게 맨날 갇혀있니?ex) 너무 어려워서 이해를 못할 때I’m really stuck. (완전 모르겠어.)- hang on a second 잠깐만요- be bound to 반드시 ~하게 되어있다.ex) Our team is bound to win. 우리 팀은 이기게 되어있다.- i didn't mean to + V 그럴 생각은 아니였어.- that work for me 그럴게요, 좋아요- blowup 화냄- take it down a notch 진정해- We have been together for ~ 몇 년 사귀다- They are mean enough. 걔넨 별로인 애들이야.- Shame on you. 부끄러운줄 아세요.- Why don’t you take it outside? 밖에 좀 가있을래? (Why don’t you ~ 하는게 어때?)- What did I tell you what happened if you got him a gun? ~하면 어떻게 된다고- that’s it? 그게다야?- you have to follow through. 너가 해결해.- take it down here 가라앉혀- What is that suppose to mean? 그게 무슨말이야?- I don't blame you. 널 탓하지 않아.- I’m so reliefed you understand. 너가 이해해줘서 안도된다.- I could defeat you if it came to a physical confrontation.만약 신체적 직면이 발생한다면, 나는 너를 패배시킬 수 있다.- When you say no like that, it always yes.당신이 그런식으로 아니라고 말할 땐, 항상 맞다는 의미예요.- I put my word into action. 나는 내 글을 행동으로 표현할 거예요.- You should only care what I think. 내 생각만 신경쓰면 되요.- I don’t care how old you are. 너가 얼마나 늙었던지 상관없다.- If Haley got pregnant, would you ever pretend she got mono for a few months and then tell everyone the baby’s yours?근데 만약 Haley가 임신하면, 너는 그녀가 몇 달동안 병을 얻은 체하고 너가 낳은 아기라고 모두에게 말할거야?pretend ~인체하다, mono 병- How many pairs of underwear do you have on? 속옷을 몇장이나 입은거니?- first of all 먼저- l know you like to make trouble for your sister, but it’s not gonna work this time.너가 언니를 놀리고 싶어하는거 알지만 이번엔 안돼.- Why are you smiling? 왜 웃고있는거야?- Can you shut the door please? 문좀 닫아줄래요?- I still can’t believe you did this to me. 나는 너가 나를 위해 이걸 했다는게 믿기지가 않는다.- Would you get in the spirit of things? It's the celebration. 분위기 좀 맞춰주면 안될까? 축하하는 자리잖아. get in the spirit of things : 분위기를 맞춰주다.
    인문/어학| 2018.01.24| 3페이지| 1,000원| 조회(337)
    미리보기
전체보기
받은후기 2
2개 리뷰 평점
  • A+최고예요
    1
  • A좋아요
    0
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 17일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
9:28 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감