T'SPACE

다채로운 에디터들의 이야기

728x90
반응형

SQL 6

Correlated Subquery 상관 서브쿼리

서브쿼리 SubqueryDML의 서브쿼리DELETE서브쿼리는 WHERE 절에서 사용될 수 있습니다.DELETE FROM ... WHERE ... 예시)강사의 평균 급여보다 낮은 급여를 받는 모든 강사 삭제 DELETE FROM instructorWHERE salary  스칼라 Scalar 서브쿼리문제: 일부 튜플이 삭제되면 평균이 변경됨→ 하지만 SQL은 먼저 평균을 계산하고 그 값과 비교합니다INSERTR에 튜플 삽입원래는 다음과 같습니다INSERT INTO R VALUES (attributes)R에 튜플을 삽입하기 위해서브쿼리를 사용하면INSERT INTO R subquery삽입할 일부 튜플을 관계에서 찾기 위해 UPDATE서브쿼리는 WHERE 절에서 사용될 수 있습니다UPDATE ... SET ....

SQL 서브쿼리 Subquery

서브쿼리평균 급여보다 높은 급여를 받는 사람은 누구인가요?→ 서브쿼리를 활용할 수 있습니다 메인 쿼리: 어떤 직원들이 평균 급여보다 높은 급여를 받고 있나요?서브쿼리: 평균 급여는 얼마인가요?다른 쿼리 내에 중첩된 SFW 표현식더 큰 쿼리 내에 중첩된 SQL을 포함합니다외부 쿼리 - 내부 쿼리여러 절에서 사용할 수 있습니다WHERE 절스칼라 서브쿼리단일 상수를 반환하는 서브쿼리WHERE 절에서 서브쿼리를 상수처럼 사용하여 모든 연산자를 사용할 수 있습니다집합 멤버십집합 멤버십에는 IN, NOT IN, EXISTS, NOT EXISTS 연산자를 사용합니다값이 서브쿼리의 결과 관계에 있는지 확인하는 조건집합 비교집합 비교에는 ANY (SOME), ALL을 사용합니다서브쿼리의 결과 관계의 임의 값 또는 모든 ..

외부 조인과 내부 조인 Inner Join and Outer Join

JOIN 표현식다중 테이블에 대한 쿼리왜 우리는 다중 테이블을 사용할까요?단일 테이블:데이터 교환(공유)이 더 쉽습니다하지만 데이터 중복, 이상 현상, 확장성, 유연성 문제가 있습니다다중 테이블:데이터 업데이트가 더 쉽습니다각 개별 테이블에 대한 쿼리가 더 빠릅니다다중 테이블에 대한 쿼리는 다음과 같이 구현할 수 있습니다:FROM 절에 테이블을 나열동일한 이름의 속성이 있는 경우, "."을 사용→ Cartesian Product 카티션 곱(Cross join), JoinSELECT nameFROM Student, EnrolledWHERE sid = student_idCartesian Product 카티션 곱 (Cross Join)두 관계에 동일한 이름의 필드가 있는 경우, 속성 이름에 해당 속성이 원래 ..

기초 SQL문 정리 SFW, HAVING, GROUP BY ...

SFW 쿼리SELECT FROM WHERE  이를 관계 대수로 표현하면 다음과 같습니다:FROM - 어떤 테이블인가?WHERE - 어떤 행에 관심이 있는가?SELECT - 어떤 속성을 찾고 있는가?예) CS 학과의 모든 강사 중 급여가 70,000달러보다 많은 사람들의 이름을 찾으시오.SELECT i.nameFROM Instructor iWHERE i.deptName='CS' and i.salary>70000유용한 연산자들DISTINCT쿼리 결과에서 중복을 제거합니다. ORDER BY쿼리 결과를 일부 속성에 따라 정렬합니다.SELECT FROMWHEREORDER BY {속성} DESC, {속성} ASC ASC - 오름차순 정렬 (기본값)DESC - 내림차순 정렬 LIKE간단한 문자열 패턴 매칭을 위해 사..

데이터베이스 SQL DDL과 DML

데이터 정의 언어 Data-Defining Language(DDL)관계형 스키마를 정의합니다테이블과 그 속성을 생성/수정/삭제합니다타입무결성 제약 조건 테이블 생성하기CREATE TABLE r( A1 D1, A2 D2, ..., An Dn, (무결성-제약조건1), ..., (무결성-제약조건k)); r은 관계의 이름입니다각 A는 관계 r의 스키마에 있는 속성 이름입니다D는 속성 A의 도메인에 있는 값들의 데이터 타입입니다SQL 키워드는 대소문자를 구분하지 않습니다 ↔ 하지만 문자열 값은 구분합니다→ 'Strings'처럼 작은따옴표를 사용합니다→ 문자열 내에서는 작은따옴표를 두 번 사용합니다 → 'O''Neill'테이블을 선언할 때 포함할 내용속성과 그 타입들기본 키 정..

DB 입문, 데이터베이스 기초

DBMS - 데이터베이스 관리 시스템 DB에 접근하고, DB에 데이터를 저장하며, DB에서 원하는 정보를 검색하고 DB를 관리하는 프로그램 SQL(Structured Query Language)을 사용함 데이터베이스에 대한 모든 접근은 DBMS에 의해 중앙 집중식으로 관리됨 반드시 갖춰야 할 특성: 편리성복잡성 관리의 핵심은 추상화 (Abstraction)프로그래머는 데이터가 어떻게 구조화되고 저장되는지 걱정할 필요가 없음효율성 수백만 개의 레코드 중 하나의 레코드에 반복적으로 접근해야 할 경우, 인덱스가 유용함원자성과 ACID동시성 제어 및 잠금예) 테이블을 조인하기 전에 "물리학" 전공 교수만 남기는 것이 테이블을 조인한 후 "물리학" 교수를 찾는 것보다 훨씬 효율적임 안전성트랜잭션 및 충돌 복구인증..

728x90
반응형