수색…
개요
관계형 대수학 은 완전한 SQL 언어가 아니라 오히려 관계형 처리에 대한 이론적 이해를 얻는 방법입니다. 따라서 테이블, 레코드 및 필드와 같은 물리적 개체에 대한 참조를 만들어서는 안됩니다. 관계, 튜플 및 속성과 같은 추상 구문을 참조해야합니다. 이 문서에서 학문적 용어를 사용하지 않고 테이블, 레코드 및 필드와 같이 널리 알려진 평신도 용어를 고수 할 것입니다.
우리가 시작하기 전에 몇 가지 관계 대수 규칙 :
- 관계형 대수학에서 사용되는 연산자는 개별 레코드보다는 전체 테이블에서 작동합니다.
- 관계형 표현식의 결과는 항상 테이블이 될 것입니다 (이것을 클로저 속성 이라고합니다)
이 문서 전체에서 다음 두 테이블을 참조 할 것입니다.
고르다
select 연산자는 주 테이블의 하위 집합을 반환합니다.
<table>을 선택하십시오. 여기서 <condition>
예를 들어 다음 표현식을 살펴보십시오.
사람을 선택할 경우 DepartmentID = 2
그러면 DepartmentID 값이 2 인 People 테이블의 모든 레코드로 구성된 레코드가있는 테이블이 생성됩니다.
조건을 결합하여 표현을 더 제한 할 수도 있습니다.
사람을 선택할 경우 StartYear> 2005 DepartmentID = 2
계획
프로젝트 운영자는 테이블에서 고유 한 필드 값을 반환합니다.
프로젝트 <table> over <field list>
예를 들어, 다음 표현식을 검사하십시오.
StartYear를 넘는 사람들 프로젝트
그러면 People 테이블의 StartYear 필드에 보유 된 고유 한 값으로 구성된 테이블이 작성됩니다.
관계형 테이블을 작성하는 닫는 특성 으로 인해 결과 테이블에서 중복 값이 제거됩니다. 관계형 테이블의 모든 레코드는 구별되어야합니다.
필드 목록 이 하나 이상의 필드로 구성되는 경우 결과 테이블은 이러한 필드의 고유 한 버전입니다.
프로젝트 StartUear 이상의 사람들, DepartmentID는 다음을 반환 할 것입니다 :
2006 StartYear 및 1 DepartmentID 의 중복으로 인해 하나의 레코드가 제거됩니다.
GIVING
관계식은 give 키워드를 사용하여 개별 표현식의 이름을 지정하거나 다른 표현식에 하나의 표현식을 포함시킴으로써 함께 연결될 수 있습니다.
<관계 대수 표현> 제공 <별명>
예를 들어, 다음 표현식을 고려하십시오.
을 제공 DepartmentID = 2를 선택하는 사람들
B를 주는 PersonName 을 통한 프로젝트 A
그러면 테이블 A가 첫 x 째 표현의 결과가되는 아래의 테이블 B가됩니다.
첫 번째 표현식이 평가되고 결과 테이블에 별칭 A가 제공됩니다.이 테이블은 두 번째 표현식 내에서 사용되어 최종 테이블에 별칭 B를 부여합니다.
이 표현식을 작성하는 또 다른 방법은 두 번째 표현식의 테이블 별명을 대괄호로 묶은 첫 번째 표현식의 전체 텍스트로 바꾸는 것입니다.
프로젝트는 (사람을 선택할 경우 DepartmentID = 2)으로 PersonName가 B를 제공을 통해
이를 중첩 된 표현식 이라고합니다.
NATURAL JOIN
자연 결합은 테이블간에 공유되는 공통 필드를 사용하여 두 개의 테이블을 함께 고정시킵니다.
<표 1>과 <표 2> <1 필드> = <필드 2> 합류
<field 1>이 <table 1>에 있고 <field 2>가 <table 2>에 있다고 가정합니다.
예를 들어 다음 조인 식은 각 테이블의 DepartmentID 및 ID 열을 기반으로 People and Departments 를 조인합니다.
사람과 부서에 참여 곳 DepartmentID은 = ID
People 테이블의 DepartmentID 만 표시되고 Department 테이블의 ID 는 표시되지 않습니다. 비교되는 필드 중 하나만 표시되어야하는데, 일반적으로 조인 작업의 첫 번째 테이블에있는 필드 이름입니다.
이 예에서는 표시되지 않았지만 테이블을 조인하면 동일한 표제를 갖는 두 개의 필드가 나타날 수 있습니다. 예를 들어, Name 이라는 제목을 사용하여 PersonName 및 Dept 필드를 식별 한 경우 (즉, Person Name과 Department Name을 식별하는 경우). 이 상황이 발생하면 테이블 이름을 사용하여 점 표기법을 사용하여 필드 이름을 한정합니다 ( People.Name 및 Departments.Name).
선택 및 프로젝트 와 결합 된 조인을 함께 사용하여 정보를 가져올 수 있습니다.
DepartmentID = ID는주는 사람과 부서에 가입
을 선택할 경우 = 2005 StartYear 및 부서는 = '생산'B을 제공
으로 PersonName가 C를 제공을 통해 프로젝트 B
또는 결합 된 표현으로 :
프로젝트 (선택 (사람과 부서에 참여할 경우 = 2005 StartYear 및 부서 = '생산'DepartmentID = ID))으로 PersonName 이상이 C를 제공