SQL 구문에 액세스합니다. ACCESS 비교 Microsoft Access의 SQL 구현

러시아 연방 교육부

Kuzbass State Technical University

컴퓨터 공학과

및 정보 기술

SQL 쿼리

"경제 계산 자동화"과정에서 "기업의 경제 및 관리"전문 학생을위한 실험실 작업에 대한 방법론적 지침

E.A에 의해 컴파일됨 베소노프

2000.06.23의 11번 부서 회의에서 승인됨

전자 사본은 KuzGTU 본관 도서관에 보관됩니다.

케메로보 2001

SQL(구조적 쿼리 언어)은 구조적 쿼리 언어입니다.

올빼미) 1986년부터 표준 관계형 데이터베이스 언어입니다. 특히 Access 및 Excel 응용 프로그램에서 사용됩니다. 기준 SQL 언어에 착수했다.

MS Access의 쿼리는 SQL 언어를 사용하여 저장되고 구현됩니다. 대부분의 쿼리는 그래픽으로 만들 수 있지만(모델 쿼리) SQL 문으로 저장됩니다. 경우에 따라(예: 종속 쿼리에서) SQL 언어만 사용할 수 있습니다. MS Access에서는 이 언어의 방언이 사용되며 아래에 설명되어 있습니다. Northwind 데이터베이스(파일 I: \ Access \ Sampapps \ Nwind.mdb)에서 SQL 쿼리의 수많은 예를 찾을 수 있습니다.

SQL은 다른 고급 프로그래밍 언어와 현저하게 다릅니다.

1. SQL은 비절차적 언어입니다. 수행해야 할 작업을 선언하기만 하면 실행이 DBMS(데이터베이스 관리 시스템)에 할당됩니다.

2. SQL은 3값 논리를 사용합니다. NULL(UNKNOWN 또는 NO DATA)은 전통적인 부울 값 TRUE 및 FALSE와 함께 사용됩니다.

3. 작업은 다른 프로그래밍 언어에서와 같이 개별 요소가 아닌 전체 데이터 세트에 대해 수행됩니다.

SQL 쿼리는 문으로 구성됩니다. 각 명령에는 여러 문장이 포함될 수 있습니다.

사용된 테이블이나 쿼리를 설명하고 구문이 있는 FROM 절 없이는 쿼리가 거의 완료되지 않습니다.

FROM 테이블

테이블 - 사용된 테이블/쿼리 및 해당 관계.

IN 절이 FROM 절에 있는 경우(대괄호는 절의 이 부분이 선택 사항임을 나타냄) IN 예약어 다음에 테이블이 위치한 데이터베이스의 이름이 와야 합니다. 테이블은 현재 데이터베이스에서 가져온 것이 아님).

교사로부터

쿼리가 두 개의 테이블을 기반으로 하는 경우 다음 중 하나를 결합하는 방법을 표시해야 합니다(독자가 해당 테이블에 익숙하다고 가정).

데카르트 곱; 내부 조인 내부 조인; LEFT JOIN 왼쪽 외부 조인; RIGHT JOIN은 오른쪽 외부 조인입니다.

병합 방법 직후에 ON Table1.Key = Table2.ExternalKey 구를 배치해야 합니다.

Key - 측면 1의 키 필드 이름. ExternalKey - 측면 N의 연결 필드 이름.

데이터 스키마

그림은 아래의 대부분의 예에서 사용될 테이블 조인 스키마(데이터 스키마)를 보여줍니다. 예를 들어 그림에서 "Examiners" 테이블의 "Subject" 필드가 키(굵게 표시됨)이고 "Teacher" 필드가 "Teachers" 테이블의 외래 키임을 알 수 있습니다. 지정된 테이블 간의 조인은 데이터 무결성이 있는 내부 조인입니다. 이는 링크 라인 끝에 있는 1 및 ∞ 기호로 입증됩니다("Teachers"는 기본 테이블이고 "Examiners"는 하위 테이블임). 외부 조인을 사용하면 테이블의 조인 라인에서 하위 테이블을 가리키는 화살표를 볼 수 있습니다. 즉, 하위 레코드에 해당 레코드가 없더라도 모든 레코드가 마스터 테이블에 표시됩니다. 예를 들어 교사 및 과목 이름 목록을 얻을 수 있습니다. 만약에

일부 교사가 "시험관" 테이블에 없는 경우 LEFT JOIN이 사용되는 경우 이 교사의 과목 이름 필드는 비어 있습니다.

FROM Examiners INNER JOIN Examiners ON Examiners. Subject = Exams. Subject

FROM 절에서 INNER JOIN 예약어 앞에 1면의 테이블 이름이 표시됩니다(이 경우 Examiners 테이블). FROM 절에 두 개 이상의 테이블이 있는 경우 두 테이블의 조인을 괄호로 묶고 다른 테이블 또는 조인과 조인할 때 하나의 테이블로 처리할 수 있습니다. 이런 식으로 여러 테이블의 합집합을 설명할 수 있습니다.

FROM 교사 INNER JOIN (시험관

INNER JOIN 시험

ON Examiners 과목 = 시험 과목)

ON Teacher Teacher = Examiners Teacher 전체 데이터 스키마가 설명됩니다(그림 참조).

SELECT 문을 사용하면 테이블이나 쿼리에서 필요한 필드를 선택할 수 있습니다. 최소 옵션 형식:

테이블에서;

필드는 쉼표로 구분된 여러 표현식과 필드 이름입니다. 예시

SELECT 그룹, 학생, 평가 FROM 시험;

FROM 절에 나열된 여러 테이블에서 이름이 반복되는 경우 테이블 이름과 마침표를 이름 앞에 놓아야 합니다(예: [Examiners], Teacher 또는 [Exams]). [안건]

테이블 또는 필드 이름에 공백이나 기타 특수 문자가 포함된 경우 이 이름은 대괄호로 묶어야 합니다. 다른 경우 괄호는 선택 사항입니다.

V 테이블 모드의 주어진 예에서 쿼리는 테이블을 반환합니다.

~와 함께 열 제목 "그룹", "학생", "학년"(순서대로). 때로는 제목과 다른 것이 바람직합니다.

분야 명. 이 경우 필드 이름 뒤에 AS 예약어와 헤더(별칭)를 배치합니다. 예를 들면 다음과 같습니다.

SELECT 그룹, 학생 AS 성명, 학년

V 이 경우 "학생"이라는 제목 대신 "이름"이 나타납니다. 만약에

V 제목에 단어가 두 개 이상 있는 경우 대괄호로 묶어야 합니다.

테이블의 모든 필드를 반환해야 하는 경우 필드 인수는 별표로 지정하거나 "Table. *" 형식으로 지정해야 합니다.

교사 선택 * 교사로부터;

"교사" 테이블의 5개 필드가 모두 표시됩니다.

때로는 필드 값이 아니라 필드 값에 대한 계산 결과를 반환해야 합니다. 이 경우 필드 이름 대신 표현식을 지정해야 합니다. 식 작성 규칙은 쿼리 디자이너에서 사용하는 규칙과 다르지 않습니다.

SELECT Avg([등급]) As [Average] FROM 시험;

요청은 제목이 "평균 점수"인 열에서 하나의 숫자를 반환합니다.

- 모든 학생 성적의 산술 평균. 예시

SELECT 개수([교사])로 [교사 수] FROM 교사;

"교사 수"라는 제목 아래에 "교사" 필드가 비어 있지 않은(그리고 그것이 핵심이기 때문에 항상 비어 있지 않은) "교사" 테이블의 행 수가 배치됩니다. 이것은 각 레코드에 다른 교사의 수와 다른 교사 번호가 있기 때문에 교사의 수입니다.

V SELECT 단어 바로 뒤에 오는 SELECT 문은

술어는 ALL, DISTINCT, DISTINCTROW, TOP N 중 하나의 단어로 작성됩니다.

ALL 술어는 중복이 포함된 경우에도 모든 레코드를 반환합니다.

DISTINCT는 선택한 필드에 중복이 포함된 레코드를 표시하는 것을 금지합니다. DISTINCT 조건자를 사용하는 것은 쿼리 디자이너 속성 시트에서 Unique Values ​​속성을 Yes로 설정하는 것과 같습니다.

DISTINCTROW는 분석된 테이블의 모든 필드가 쿼리에 포함되지 않은 경우에만 결과에 영향을 줍니다. 쿼리에 테이블이 하나만 포함된 경우 술어는 무시됩니다. DISTINCTROW 술어는 완전히 반복되는 레코드를 제외합니다. DISTINCTROW 조건자를 사용하는 것은 쿼리 디자이너 속성 시트에서 Unique Records 속성을 Yes로 설정하는 것과 같습니다.

상위 N 조건자는 이 필드 값의 오름차순 또는 내림차순으로 정렬된 세트의 시작 또는 끝에서 N개의 레코드를 반환하는 데 사용됩니다. FROM 절 뒤에 ORDER BY 절을 사용하여 정렬을 정의합니다.

SELECT 지침.

ORDER BY 단어 뒤에 필드 이름과 단어 ASC(오름차순, 선택 사항) 또는 DESC(내림차순)를 배치합니다. 다음 SQL 문은 상위 5명의 학생을 나열합니다.

학업 성과

1 번 테이블

평균 점수

메드베데프

보로비예프

학업 성취도에서 상위 5명의 학생, [학점] 선택

ORDER BY [평균] DESC;

SELECT DISTINCT [학생] FROM 시험

ORDER BY [학생];

요청은 성의 오름차순으로 정렬된 학생 목록을 반환합니다.

SELECT 문의 FROM 절 뒤에 다음과 같이 쓸 수 있습니다.

WHERE 조건 형식의 WHERE 절

조건은 소스 테이블의 각 레코드에 대해 평가되는 부울 표현식입니다.

조건이 참이면 레코드(SELECT 절의 필드 목록에 있는 필드 집합)가 결과 집합에 포함되고 거짓이면 포함되지 않습니다.

SELECT DISTINCT 그룹, 학생

시험에서

어디 점수 = 2;

낮은 점수를 받은 학생 목록이 생성됩니다. 예시

WHERE [Position] = "Associate Professor" OR [Degree] = "Ph.D." ORDER BY [이름];

교원의 학명은 부교수 또는 기술이과대학의 학위를 가진 교원명부로 교부한다. 이 예에서는 레코드가 다른 강사가 소유하고 반복이 불가능하기 때문에 술어를 적용할 필요가 없습니다.

문자열 표현식을 필터링할 때 계산 결과가 일치하는지 확인하는 Like 표현식 패턴 연산자를 사용할 수 있습니다. 템플릿에 대한 표현식.템플릿에 사용할 수 있는 몇 가지 특수 문자가 있습니다.

* 임의의 수의 문자;

모든 캐릭터.

V 대괄호를 사용하여 문자가 포함되거나 포함되지 않은 범위를 지정할 수 있습니다.

A부터 F까지의 범위에 있는 문자입니다. [! A-F] 문자가 A-F 범위에 없습니다.

교사로부터 [이름] 선택

WHERE [이름] LIKE “B *” 또는 [이름] LIKE “Щ *”;

V 결과 집합에는 Д 또는 Щ 문자로 시작하는 교사 이름이 포함됩니다.

X LIKE "P ###"

작성된 조건은 문자 P로 시작하는 5자 행으로 충족됩니다. 그 뒤에 A-F 범위의 문자가 와야 합니다. 문자열은 3자리로 끝나야 합니다.

쿼리를 실행할 때마다 선택 조건을 변경해야 하는 경우 다음 형식의 문장을 사용하는 것이 편리합니다.

PARAMETERS 텍스트;

텍스트 - 쉼표로 구분된 텍스트 목록입니다.

각 텍스트 뒤에는 데이터 유형이 공백으로 표시됩니다. 매개변수를 사용하여 쿼리를 실행할 때 쿼리 디자이너 창을 열고 필터 조건을 변경할 필요가 없습니다. 대신 쿼리를 실행하는 동안 원하는 조건을 입력하라는 메시지가 표시됩니다. PARAMETERS 절의 각 텍스트에 대해 설명의 각 텍스트가 정확히 입력해야 하는 힌트의 역할을 하는 대화 상자가 화면에 나타납니다. 대화 상자에서 지정된 유형의 데이터를 입력합니다.

PARAMETERS 절을 사용하는 경우 SELECT 문을 포함한 다른 모든 문 앞에 나타나야 하며 세미콜론으로 끝나야 합니다.

PARAMETERS [시작 날짜 지정] DATETIME, [종료 날짜 지정] DATETIME;

WHERE, HAVING 절 선택 기준에서 데이터 유형을 지정하지 않고 텍스트를 사용할 수 있습니다. 쿼리가 실행되면 텍스트가 입력된 값으로 바뀝니다.

PARAMETERS [그룹 지정] TEXT; SELECT 학생, 학년

시험에서

WHERE [그룹] = [그룹 지정] 및 [제목] = 1;

요청은 코드 1로 과목에서 지정된 그룹의 학생들의 성적을 제공합니다.

GROUP BY 필드 절은 지정된 필드 목록의 레코드 그룹을 단일 레코드로 결합합니다. SELECT 문에 그룹 함수(예: Avg 또는 Sum)가 포함된 경우 결과 집합의 레코드 값(레코드 그룹의 합계)이 계산됩니다. 예를 들어 "시험" 테이블에서 주제별로 레코드를 그룹화하는 경우 다음을 사용합니다. 평균 함수과목에서 GPA를 받을 수 있습니다. 과목 및 그룹별로 그룹화하면 지정된 과목에서 학생 그룹의 평균 점수를 얻을 수 있습니다.

GROUP BY는 선택 사항입니다. SELECT 절에 있는 경우 FROM 절 뒤에 위치합니다.

GROUP BY 절을 사용할 때 SELECT 절의 필드 목록에 있는 모든 필드는 GROUP BY 절의 필드 목록에 포함되거나 SQL 그룹 함수에 대한 인수로 사용되어야 합니다.

그룹 기능을 사용 중이고 GROUP BY 절이 없으면 원래 쿼리 레코드의 전체 컬렉션이 그룹의 역할을 합니다.

SELECT 그룹, 학생, 평균([성적]) AS [성적 점수] FROM 시험

GROUP BY [그룹], [학생];

각 학생에 대해 성적의 산술 평균이 계산됩니다.

선택적인 HAVING 절은 GROUP BY 뒤에 나타나야 합니다. 결과 집합에 포함될 그룹화된 레코드를 결정합니다. HAVING의 조건은 WHERE와 마찬가지로 일반 부울 표현식입니다. WHERE 및 HAVING은 SELECT 문에 동시에 존재할 수 있습니다. 이 경우 WHERE는 그룹화하기 전에 레코드를 필터링하고 HAVING은 그룹화된 레코드(그룹)를 필터링합니다.

PARAMETERS [항목 이름 입력] TEXT; SELECT 그룹, 과목, 평균([성적]) AS [성적 점수] FROM Examiners INNER JOIN 시험

ON Examiners 과목 = 시험 과목

WHERE [주제 이름] = [주제 이름 입력] GROUP BY 그룹, 학생

평균([점수])> = 4.5 및 최소([점수])> 2;

쿼리는 평균 점수와 함께 학생 목록을 반환합니다. 목록에는 2점이 없고 평균 점수가 최소 4.5인 학생이 포함됩니다.

TRANSFORM 문은 교차 쿼리를 생성하는 데 사용됩니다. 상호 참조 쿼리로 표시되는 데이터는 샘플링 쿼리보다 더 간결하게 렌더링됩니다. 통사론:

TRANSFORM 기능 선택…

기능 - 그룹 SQL 함수테이블 셀 필드의 데이터를 처리하는 필드 - 헤더가 되는 값인 필드 또는 표현식

카미 칼럼.

테이블 모드 쿼리에는 필드가 다른 값을 취하는 만큼의 열이 있습니다. 예를 들어 필드에 월 이름이 표시되는 경우 최대 12개의 열이 표시되며, 제목은 오름차순으로 정렬됩니다(8월, 4월… 1월). 필드 인수 뒤에 IN 절(list_of_values)을 배치할 수 있습니다. valuelist의 고정 값은 쉼표로 구분됩니다. IN 절을 사용하여 각 필드 값은 value_list의 값과 비교됩니다. 일치하는 항목이 있으면 해당 열에 함수 계산 결과가 표시됩니다. 실제 데이터와 일치하지 않는 고정 헤더를 사용하여 추가 열을 생성할 수 있습니다.

PIVOT 절을 사용하는 것은 쿼리 디자이너의 속성 시트에서 Column Header 속성을 정의하는 것과 같습니다.

실험실 작업 1번

SQL: 데이터 추출 - 명령선택하다

작업 목적:

  • SQL 문에 익숙해지십시오.
  • SELECT 명령을 사용하여 Access에서 가장 간단한 SQL 쿼리를 만드는 방법을 배웁니다.

· IN, BETWEEN, LIKE, IS NULL 연산자 사용.

연습№1. SQL 모드에서 STUDENTS 테이블에서 FIRST NAME 및 LAST NAME 필드의 모든 값을 선택하는 쿼리를 만듭니다.

이름, 성 선택

학생으로부터;

연습№2 ... STUDENTS 테이블의 모든 열에 대해 SQL 모드에서 선택 쿼리를 만듭니다.

선택하다 *

학생으로부터;


작업 번호 3. PERSONAL DATA 테이블에 있는 학생이 살고 있는 도시의 이름을 SQL 모드에서 선택하는 쿼리를 만듭니다.

고유 도시 선택

[개인 데이터]에서;

작업 번호 4. STUDENTS 테이블에 나열된 성이 Ivanov인 모든 학생의 이름을 선택하는 SQL 모드 선택 쿼리를 생성합니다.

성, 이름 선택

학생으로부터

성 = "이바노프";

작업 번호 5... 예산 형태의 교육에 대한 UIT-22 그룹에 등록된 학생의 이름과 성을 얻기 위해 SQL 모드에서 선택 항목에 대한 쿼리를 만듭니다.

성, 이름 선택

학생으로부터

WHERE GROUP = "WHIT-22" 및 BUDGET = true;

작업 번호 6... SQL 모드에서 쿼리를 만듭니다. 4학년과 5학년만 있는 학생에 대한 정보는 표 EXAMPLES의 샘플에 있습니다.

선택하다 *

에서 [변화시험]

어디등급안으로 (4.5);

작업 번호 7. IOSU 과목에서 시험 성적이 3인 학생에 대한 정보를 선택하기 위해 zanpoc 및 SQL 모드를 만듭니다.

선택하다 *

에서 [변화시험]

어디안건=" 이오수"그리고등급(4.5)에 없음;

작업 번호 8.시간이 100에서 130 사이인 항목에 대한 레코드를 선택하려면 SQL 모드에서 쿼리를 만듭니다.

선택하다 *

에서아이템

어디손목 시계100과 130 사이;


작업 번호 9. SQL 모드에서 쿼리를 작성하여 예를 들어 성이 "C"로 시작하는 학생에 대한 정보를 STUDENTS 테이블에서 선택하십시오.

선택하다 *

에서재학생

어디처럼 "와 함께*";

산출:실험실 작업 과정에서 우리는 SQL 문에 대해 알게 되었고 IN, BETWEEN, LIKE 연산자를 사용하여 SELECT 명령을 사용하여 Access에서 가장 간단한 SQL 쿼리를 만드는 방법을 배웠습니다.

MS Access DBMS 응용 프로그램은 테이블과 배열로 묶인 데이터베이스를 만들고 유지 관리하기 위한 본격적인 도우미입니다. 데이터베이스가 너무 크면 필요한 값을 빠르게 찾기가 어렵습니다.

이것이 Access에 쿼리라는 기능이 있는 이유입니다. 그것이 무엇인지, 어떻게 작동하는지, 어떤 기능을 가지고 있는지 고려하십시오.

Microsoft Access에서 쿼리 작성

Access에서 쿼리를 만드는 방법을 이해하려면 DBMS 작업의 기본 사항을 알아야 합니다.

이 절차를 완료하는 방법에는 두 가지가 있습니다.

  • 쿼리 생성자.
  • 쿼리 마법사.

첫 번째 방법을 사용하면 사용 가능한 모든 쿼리를 수동으로 만들 수 있지만 사용자가 Access 응용 프로그램을 사용해 본 경험이 있다는 약간의 주의 사항이 있습니다. 또한 그는 최소한 자신의 주요 업무를 이해해야 합니다. 두 번째 방법에 대해서는 좀 더 자세히 검토할 필요가 있다.

초보자를 위한 쉬운 방법

지식이 있는 사람은 몇 번의 마우스 클릭으로 사용자가 요청을 완료하는 데 필요한 구성 요소를 선택한 다음 수집된 키 값에 따라 신속하게 레지스트리를 구성합니다. DBMS를 처음 접하고 사용자가 Access에서 쿼리를 만드는 방법을 모를 경우 마법사 프로그램이 선택됩니다.

이 모드에서는 다음 유형의 요청에 익숙해지고 이해할 수 있습니다.

  • 단순한.
  • 십자가.
  • 부하가 없는 기록.
  • 중복 항목입니다.

이 선택은 마법사 작업의 첫 번째 단계에서 이미 이루어집니다. 그리고 앞으로는 명확한 지침에 따라 초보 사용자도 쉽게 요청을 생성할 수 있습니다. 그 품종에 대해 알아 봅시다.

단순 쿼리

이 스프레드시트 도구는 사용자 지정 필드에서 원하는 데이터를 수집합니다. 이름에서 알 수 있듯이 이것은 초보자에게 가장 인기 있는 쿼리 유형입니다. 그 편리함은 그러한 절차가 새 탭에서 열린다는 사실에 있습니다. 따라서 Access 2010에서 쿼리를 만드는 방법에 대한 질문에 대한 대답은 마법사의 첫 번째 메뉴를 연 후에 명확해집니다.

교차 쿼리

이 유형의 샘플링은 더 복잡합니다. 이 모드에서 "마법사"를 사용하여 Access에서 교차 쿼리를 만드는 방법을 알아내려면 첫 번째 창에서 이 기능을 클릭해야 합니다.

원본에 있는 최대 3개의 열을 선택할 수 있는 테이블이 화면에 나타납니다.

선택되지 않은 나머지 필드 중 하나는 쿼리 테이블의 헤더로 사용할 수 있습니다. 절차의 세 번째 단계(교차점)에서 함수의 가변성(평균값, 합계, 첫 번째, 마지막)과 함께 다른 값이 선택됩니다.

사진은 교차 쿼리가 생성되었으며 지정된 매개 변수에 따라 필요한 작업이 수행되었음을 보여줍니다.

중복 항목

이름에서 알 수 있듯이 주요 목적은 이 요청의- 지정된 매개변수에 따라 테이블의 모든 동일한 행 선택. 다음과 같습니다.

또한 한 번에 여러 줄을 일치시키기 위해 추가 필드를 선택할 수 있습니다.

중복 항목을 선택하려면 요청 목록을 확장하고 거기에 새 폴더를 만들어야 합니다. 그런 다음 "새 쿼리" 창에서 "중복 레코드 검색" 행을 선택합니다. 다음으로 마스터의 지시를 따라야 합니다.

부하가 없는 기록

이것은 "마스터 - 슬레이브가 없는 항목" 모드에서 사용할 수 있는 마지막 쿼리 유형입니다.

이 경우 테이블 및 쿼리 필드에서 사용되지 않지만 이미 생성된 값만 선택됩니다.

이 유형은 여러 데이터베이스가 있는 경우에만 관련이 있습니다.

이 네 가지 유형의 쿼리는 모두 복잡한 요소로 작업하기 위한 기본 사항이지만 데이터베이스에서 쿼리를 만드는 방법을 쉽게 파악할 수 있습니다. 데이터 액세스.

MS Access의 쿼리 기능

위에서 설명한 단계를 수행해야 하는 이유를 알아보겠습니다. Access DBMS에서 모든 단순 쿼리와 복잡한 쿼리의 목표는 다음과 같습니다.

  • 테이블에 필요한 데이터 수집, 후속 보기, 편집, 새 값 추가.
  • 모든 종류의 보고 양식 준비를 위한 훌륭한 소스 자료입니다.
  • 화면에 합계(평균값, 합계, 편차, 합계)를 표시하여 전체 데이터 배열에 대해 수학적 및 통계적 계산 절차를 수행합니다.

샘플 요청

이러한 유형의 데이터베이스 작업은 여러 테이블이 필요하므로 복잡합니다.

모든 테이블에는 공통 키 필드가 있어야 합니다. 그렇지 않으면 작업이 실패합니다.

Access에서 선택 쿼리를 만드는 방법을 살펴보겠습니다. 먼저 필수 필드를 선택하여 간단한 쿼리를 만들어야 합니다. 이미 여기에서 데이터를 편집하여 원하는 형식으로 가져올 수 있습니다. 그건 그렇고, 변경 사항은 원래 테이블로 전송되므로이 점을 고려해야합니다.

열리는 디자이너 창에서 "테이블 추가" 창이 채워집니다. 여기에 초기 값을 가져와야 하는 테이블이나 쿼리를 추가해야 합니다.

추가한 후 요청 조건 작성을 시작할 수 있습니다. 이를 위해 "필드"라인이 필요합니다. 여기에서 쿼리 중에 표시될 테이블에서 해당 값을 선택해야 합니다.

작업을 완료하려면 "실행" 버튼을 클릭해야 합니다.

매개변수가 있는 요청

이것은 사용자의 특정 데이터베이스 기술이 필요한 또 다른 종류의 복잡한 절차입니다. 이러한 작업의 주요 영역 중 하나는 체적 데이터가 포함된 보고서 생성을 준비하고 요약 결과를 얻는 것입니다. 디자이너를 사용하여 Access 2007에서 쿼리를 만드는 방법은 아래에서 설명합니다.

데이터 선택을 위해 이 절차를 시작하려면 필수 필드를 선택하는 간단한 쿼리를 만들어야 합니다. 또한 생성자 모드를 통해 "선택 조건" 필드를 작성해야 하며 입력된 값을 기준으로 선택이 수행됩니다.

따라서 Access에서 매개 변수를 사용하여 쿼리를 만드는 방법에 대한 질문에 대한 대답은 간단합니다. 선택 항목에 대한 초기 매개 변수를 입력하는 것입니다. 생성자로 작업하려면 쿼리 마법사를 사용해야 합니다. 거기에서 필터링을 위해 기본 데이터가 생성되며 이는 추가 작업의 기반이 됩니다.

고급 상호 참조 쿼리

우리는 계속해서 문제를 복잡하게 만듭니다. 훨씬 더 이해하기 어려운 것은 여러 데이터 테이블이 있는 경우 Access에서 쿼리를 만드는 방법에 대한 정보입니다. 교차 쿼리는 마법사 작업을 위한 옵션 중 하나로 위에서 이미 고려되었습니다. 그러나 "디자인" 모드에서 유사한 쿼리를 만들 수 있습니다.

이렇게하려면 "쿼리 작성기"- "교차"를 클릭해야합니다.

소스 테이블을 추가하기 위한 메뉴와 선택한 필드를 채우는 기능이 열립니다. 주의해야 할 유일한 항목은 "그룹 작업" 및 "크로스탭" 항목입니다. 올바르게 입력해야 합니다. 그렇지 않으면 절차가 올바르게 수행되지 않습니다.

상호 참조 쿼리는 여러 데이터 소스에서 정보를 찾고 검색하는 가장 쉬운 방법이며 차트 및 그래프를 생성하는 기능입니다.

또한 이 절차를 사용하면 여러 개발 옵션을 사용하더라도 검색이 더 빨라집니다.

물론 업무에 지장을 줄 수 있는 '함정'도 있다. 예를 들어 열 값으로 데이터베이스를 정렬하는 쿼리를 만들 때 시스템에서 오류가 발생합니다. 즉, "증가 및 감소"라는 표준 항목으로만 정렬할 수 있습니다.

요약하면 마법사나 디자이너를 사용하여 Access에서 쿼리를 만드는 방법을 결정하는 것은 사용자의 몫입니다. MS Access를 사용하는 대부분의 사람들에게는 첫 번째 옵션이 더 적합합니다. 결국 마법사가 모든 작업을 수행하고 사용자가 요청 조건을 선택할 때 몇 번의 마우스 클릭만 남깁니다.

고급 설정을 사용하려면 전문가 수준의 데이터베이스 경험이 분명히 필요합니다. 작업에 대용량 데이터베이스가 관련된 경우 DBMS 중단 및 데이터 손실 가능성을 방지하기 위해 전문가에게 문의하는 것이 가장 좋습니다.

프로그래머만 사용할 수 있는 포인트가 하나 있습니다. DBMS의 주요 언어는 SQL이기 때문에 필요한 쿼리를 프로그램 코드 형태로 작성할 수 있다. 이 모드에서 작업하려면 이미 생성된 쿼리 행을 클릭하고 열리는 컨텍스트 메뉴에서 "SQL 모드"를 선택합니다.

가장 간단한 경우 쿼리는 필수 필드의 한 테이블에서 선택을 구현합니다. 주어진 조건선택하고 쿼리 결과를 봅니다.

선택 조건을 사용하여 선택 쿼리 디자인

상품 배달 데이터베이스의 PRODUCT 테이블에서 정보를 검색하는 예를 사용하여 Access에서 선택 항목에 대한 쿼리를 살펴보겠습니다.

문제 1... 이름으로 제품의 여러 특성을 선택해야 합니다.

  1. 데이터베이스 창에서 쿼리를 생성하려면 리본 탭 - 창조(만들기) 및 그룹 내 문의(질문) 버튼을 눌러 쿼리 생성자(쿼리 디자인). 디자인 모드에서 빈 선택 쿼리 창이 열립니다. 요청N(QueryN) 및 대화 상자 테이블 추가(표 표시) (그림 4.2).
  2. 창에서 테이블 추가(Show Table) PRODUCT 테이블을 선택하고 버튼을 클릭합니다. 추가하다(추가하다). 선택한 테이블은 쿼리의 데이터 스키마 영역에 표시됩니다. 창을 닫습니다 테이블 추가(테이블 보기) 버튼을 클릭하여 닫다(닫다).

쿼리 디자이너 창(그림 4.1)에서 수행된 작업의 결과 상단 패널이 쿼리에 대해 선택한 테이블이 포함된 쿼리 데이터 스키마가 나타납니다. 이 경우 하나의 테이블 PRODUCT. 테이블은 필드 목록으로 표시됩니다. 별표(*)로 표시된 테이블 필드 목록의 첫 번째 행은 전체 테이블 필드 세트를 나타냅니다. 하단 패널은 작성해야 하는 요청 양식입니다.

또한 새 탭(Query Tools | Design)이 리본에 표시되고 자동으로 활성화되며(그림 4.3에서는 이 탭의 일부에 표시됨) 생성된 쿼리 유형이 색상으로 강조 표시됩니다. 견본(선택하다). 따라서 기본적으로 가져오기 요청이 항상 생성됩니다. 이 탭의 명령은 요청을 생성할 때 필요한 작업을 수행하기 위한 도구를 제공합니다. 이 탭은 디자인 모드에서 새 쿼리를 만들거나 기존 쿼리를 편집할 때 열립니다.

  1. 쿼리 데이터 스키마에서 테이블을 제거하려면 테이블 위로 마우스 커서를 이동하고 키를 누릅니다. 추가하려면 - 버튼을 클릭하십시오 테이블 표시(테이블 표시) 그룹 요청 설정(쿼리 설정) 탭 쿼리 작업 | 건설자(쿼리 도구 | 디자인) 또는 명령 실행 테이블 추가(Show Table) 쿼리 데이터 스키마에서 호출되는 상황에 맞는 메뉴.
  2. 디자인 창(그림 4.4)에서 PRODUCT 테이블의 필드 목록에서 NAME_ITS, PRICE, AVAILABILITY_of_of_s 필드를 요청 양식의 열에 있는 행으로 차례로 끕니다. (들).
  3. 쿼리의 해당 열에 테이블의 필수 필드를 포함하려면 다음 기술을 사용할 수 있습니다.
    • 요청 양식의 첫 번째 줄에 (필드) 마우스를 클릭하여 목록 버튼이 나타나게 하고 목록에서 필요한 필드를 선택합니다. 목록에는 쿼리 데이터 스키마에 표시된 테이블의 필드가 포함됩니다.
    • 쿼리 데이터 스키마에서 테이블 필드의 이름을 두 번 클릭합니다.
    • 쿼리 데이터 스키마의 테이블 필드 목록에서 *(별표) 기호를 끌거나 두 번 클릭하여 테이블의 모든 필드를 포함할 수 있습니다.
  4. 요청 양식에서 실수로 불필요한 필드를 삭제한 경우 삭제하십시오. 이렇게 하려면 커서를 위쪽의 열 표시 영역으로 이동하고 아래쪽을 가리키는 검은색 화살표로 변경됩니다. 열이 강조 표시됩니다. 키를 누르거나 명령을 실행하십시오. 열 삭제(열 삭제) 그룹 요청 설정(쿼리 설정).
  5. 인라인 디스플레이에 출력(표시) 필드를 표시하지 않으면 쿼리 테이블에 포함되지 않습니다.
  6. 줄서서 쓰기 선택 조건(기준) 그림의 요청 양식에 표시된 제품 이름. 4.4. 선택 절의 표현식에는 연산자가 포함되어 있지 않으므로 기본 연산자 =가 사용됩니다. 표현식에 사용된 텍스트 값은 자동으로 추가되는 큰따옴표 안에 입력됩니다.
  7. 결과 그룹에서 실행 버튼 또는 보기 버튼을 클릭하여 쿼리를 실행합니다. 쿼리 창이 지정된 선택 조건을 충족하는 PRODUCT 테이블의 항목과 함께 테이블 모드의 화면에 나타납니다.

논평
테이블 모드의 쿼리 창은 데이터베이스 테이블 보기 창과 유사합니다. 쿼리 테이블 중 일부는 쿼리의 기본이 되는 기본 테이블의 데이터를 수정하는 데 사용할 수 있습니다. 테이블 보기에서 보는 쿼리에는 Access 2010 데이터베이스 테이블과 달리 열이 없습니다. 추가하려면 클릭(추가하려면 클릭), 테이블의 구조를 변경하도록 설계되었습니다. 이 모드에서는 리본 탭에서 (홈) 데이터베이스 테이블을 열 때와 동일한 버튼을 사용할 수 있습니다.

  1. 복잡한 상품명을 입력하실 때 틀리게 입력하시면 표에서 상품을 찾을 수 없습니다. 패턴 연산자 사용 - 별표(*) 및 물음표(?)(기본 ANSI-89 쿼리 표준) 또는 백분율 기호(%) 및 밑줄(_)(ANSI-92 표준 SQL Server 표준)을 사용하면 원하는 문자열을 쉽게 찾고 많은 오류를 피할 수 있습니다. 제품의 전체 이름 대신 Corpus * 또는 Corpus%를 입력합니다. 요청을 완료하십시오. 제품 이름 필드에서 하나의 값이 "Corpus"라는 단어로 시작하는 경우 쿼리 결과는 이전 경우와 동일합니다. 쿼리 실행 후 입력된 표현식은 Like 연산자 "Corpus *"로 보완됩니다. 이 연산자를 사용하면 텍스트 필드를 검색할 때 와일드카드 문자를 사용할 수 있습니다.
  2. 여러 제품을 찾아야 하는 경우 In 연산자를 사용하십시오. 괄호 안에 지정된 목록의 모든 값과 동일한지 확인할 수 있습니다. ("MiniTower 케이스"; "HDD Maxtor 20GB"; "FDD 3,5") 선택 조건 줄에 씁니다. 쿼리 테이블에 3개의 행이 표시됩니다. In 문에는 와일드카드 문자를 사용할 수 없습니다.
  3. 탭을 클릭하여 쿼리 저장 파일(파일) 및 명령 실행 구하다(구하다). 창에서 보존(다른 이름으로 저장) 쿼리 이름 Example1을 입력합니다. 쿼리 이름은 기존 쿼리 이름뿐만 아니라 데이터베이스의 테이블 이름과도 일치해야 합니다.
  4. 상황에 맞는 메뉴 명령을 사용하여 현재 쿼리 닫기 닫다(닫기) 또는 조회 창 버튼 클릭 닫다(닫다).
  5. 탐색 창에서 쿼리를 선택하고 다음을 선택하여 저장된 쿼리를 실행합니다. 열려있는(열려있는).
  6. 쿼리를 편집하려면 탐색 창에서 쿼리를 선택하고 명령을 실행합니다. 건설자(디자인 보기).

목적 2.가격이 1000 루블 이하이고 VAT가 10 % 이하인 상품을 선택하고 가격이 2500 루블 이상인 상품을 선택해야합니다. 결과에는 제품 이름(NAIM_TOV), 가격(PRICE) 및 VAT(VAT_VAT)가 포함되어야 합니다.

  1. 디자인 모드에서 새 쿼리를 만들고 PRODUCT 테이블을 추가합니다. 디자인 창(그림 4.5)에서 PRODUCT 테이블의 필드 목록에서 요청 양식인 NAIM_TOV, PRICE, RATE_VAT 필드를 차례로 드래그합니다.
  2. 쓰다 선택 조건(기준) 그림의 요청 양식에 표시된 대로. 4.5. 한 줄에 작성된 조건 간에 논리적 AND 연산이 수행됩니다. 서로 다른 행에 작성된 조건 간에 논리적 OR 연산이 수행됩니다.
  3. 요청을 실행하고 버튼을 클릭하십시오. 실행하다(실행) 그룹에서 결과(결과). 쿼리 창이 지정된 선택 조건을 충족하는 PRODUCT 테이블의 레코드와 함께 테이블 모드의 화면에 나타납니다.
  4. 커서가 요청 헤더 위에 있을 때 호출되는 요청 컨텍스트 메뉴에서 적절한 명령을 실행하여 요청을 저장합니다. 이름을 지어주세요 예2.

문제 3... 주어진 기간 동안 모든 송장을 선택해야 한다고 가정합니다. 결과에는 송장 번호(NOM_NAK), 창고 코드(SKOD_KOD), 선적 날짜(DISPATCH_DATE) 및 선적된 상품의 총액(SUM_NUMBER)이 포함되어야 합니다.

  1. 디자인 모드에서 새 쿼리를 만들고 OVERLAY 테이블을 추가합니다. 디자인 창에서 OVERLAY 테이블의 필드 목록에서 필요한 모든 필드를 쿼리 양식으로 순차적으로 끌어다 놓습니다.
  2. 행의 DATE_SET 필드의 경우 선택 조건(기준) # 01/11/2008 # 및 # 03/31/2008 # 사이를 기록하십시오. 사이 연산자는 날짜 범위를 지정합니다(ANSI-92는 # 대신 작은따옴표를 사용함). 또한 이 연산자를 사용하면 숫자 값의 간격을 지정할 수 있습니다.

통합하려면 비디오 자습서를 시청하십시오.

MS Access에서는 데이터베이스, 테이블, 양식 및 기타 보고서를 작성할 수 있습니다. 이 문서는 사용자가 MS Access에서 SQL 쿼리를 실행하는 데 도움이 될 것입니다. SQL이 데이터베이스에서 데이터를 가져오는 데 사용하는 것과 동일한 쿼리를 실행할 수 있습니다. 이 기사는 MS Access를 배우기 시작했고 MS Access에서 SQL 쿼리를 실행하려는 사용자를 대상으로 합니다. 시작하기 전에 필요한 유일한 조건은 조직에서 사용하는 데이터베이스에 대한 액세스 권한이 있다는 것입니다.

단계


뭐가 필요하세요

  • 사용자는 조직의 데이터베이스에 액세스할 수 있어야 합니다.
  • 사용자는 MS Access를 통해 쿼리를 시작하기 전에 기술 지원에 문의할 수 있습니다.

기사 정보

이 페이지는 4,443번 조회되었습니다.

도움이 되었나요?

교육 프로젝트 "상점"에 대한 설명

테이블 링크 다이어그램

테이블 설명

m_category - 제품 카테고리

m_income - 상품 도착

m_outcome - 상품 소비

m_product - 참조, 상품 설명

m_supplier - 참조; 공급자 정보

m_unit - 참조; 단위

이 문서에 제공된 예제의 실제 검증을 위해 교재, 다음 소프트웨어를 사용할 수 있어야 합니다.

Microsoft Access 2003 이상.

MS Access의 SQL 쿼리. 시작

테이블의 내용을 보려면 왼쪽 패널에서 테이블 이름을 두 번 클릭합니다.

테이블 필드 편집 모드로 전환하려면 상단 패널에서 생성자 모드를 선택합니다.

SQL 쿼리 결과를 표시하려면 왼쪽 창에서 쿼리 이름을 두 번 클릭합니다.

SQL 쿼리 편집 모드로 전환하려면 상단 패널에서 SQL 모드를 선택합니다.

SQL 쿼리. MS Access의 예. 선택: 1-10

SQL 쿼리에서 SELECT 문은 데이터베이스 테이블에서 선택하는 데 사용됩니다.

SQL 쿼리 Q001.올바른 순서로 필수 필드만 가져오는 SQL 쿼리의 예:

SELECT dt, product_id, 금액


FROM m_income;

SQL 쿼리 Q002.이 예제 SQL 쿼리에서 별표(*)는 m_product 테이블의 모든 열을 표시하는 데 사용됩니다. 즉, m_product 관계의 모든 필드를 검색하는 데 사용됩니다.

선택하다 *
m_product에서;

문의SQL Q003. DISTINCT 문은 중복 레코드를 제거하고 많은 고유 레코드를 얻는 데 사용됩니다.

DISTINCT 제품 ID 선택


FROM m_income;

SQL 쿼리 Q004. ORDER BY 문은 특정 필드의 값으로 레코드를 정렬(순서)하는 데 사용됩니다. 필드 이름은 ORDER BY 문 다음에 옵니다.

선택하다 *
FROM m_income


가격으로 주문하십시오.

SQL 쿼리 Q005. ASC 명령어는 ORDER BY 명령어의 부속물로 사용되며 오름차순 정렬을 정의하는 역할을 합니다. DESC 문은 ORDER BY 문과 함께 사용되며 내림차순 정렬을 정의하는 데 사용됩니다. ASC와 DESC가 모두 지정되지 않은 경우 ASC(기본값)의 존재가 암시됩니다.

선택하다 *
FROM m_income


ORDER BY dt DESC, 가격;

SQL 쿼리 Q006.테이블에서 필요한 레코드를 선택하기 위해 선택 조건을 표현하는 다양한 논리 표현식이 사용됩니다. 논리식은 WHERE 절 뒤에 나타납니다. 금액 값이 200보다 큰 모든 레코드를 m_income 테이블에서 가져오는 예:

선택하다 *
FROM m_income


금액> 200;

SQL 쿼리 Q007.표현 어려운 조건논리 연산 AND(결합), OR(분리) 및 NOT(논리 부정)을 사용합니다. 금액 값이 20이고 가격 값이 10보다 크거나 같은 모든 레코드를 m_outcome 테이블에서 가져오는 예:

가격


m_outcome에서
금액 = 20 AND 가격> = 10;

SQL 쿼리 Q008.둘 이상의 테이블에서 데이터를 조인하려면 INNER JOIN, LEFT JOIN, RIGHT JOIN 명령을 사용하십시오. 다음 예는 m_income 테이블에서 dt, product_id, amount, price 필드를 검색하고 m_product 테이블에서 title 필드를 검색합니다. m_income.product_id의 값이 m_product.id의 값과 같을 때 m_income 테이블의 레코드는 m_product 테이블의 레코드와 연결됩니다.



ON m_income.product_id = m_product.id;

SQL 쿼리 Q009.이 SQL 쿼리에서 1) 검색 텍스트가 작은따옴표(")로 묶이고 2) 날짜가 # Month / Day / Year # 형식으로 되어 있으며 이는 MS Access에 해당합니다. . 다른 시스템에서는 날짜 형식이 다를 수 있습니다. 2011년 6월 12일 우유 도착에 대한 정보를 표시하는 예입니다. 날짜 형식에 주의하십시오. # 6/12/2011 #:

SELECT dt, product_id, 제목, 금액, 가격


FROM m_income INNER JOIN m_product

WHERE 제목 = "(! LANG: 우유" And dt=#6/12/2011#; !}

SQL 쿼리 Q010. BETWEEN 명령어는 값 범위를 테스트하는 데 사용됩니다. 2011년 6월 1일과 6월 30일 사이에 도착한 상품에 대한 정보를 표시하는 SQL 쿼리의 예:

선택하다 *
FROM m_income INNER JOIN m_product


ON m_income.product_id = m_product.id
WHERE dt BETWEEN # 6/1/2011 # 및 # 6/30/2011 #;

SQL 쿼리. MS Access의 예. 선택: 11-20

하나의 SQL 쿼리는 다른 쿼리 내에 중첩될 수 있습니다. 하위 쿼리는 쿼리 내의 쿼리일 뿐입니다. 일반적으로 하위 쿼리는 WHERE 절에서 사용됩니다. 그러나 하위 쿼리를 사용하는 다른 방법도 있습니다.

요청 Q011. m_product 테이블의 제품에 대한 정보가 표시되며 해당 코드는 m_income 테이블에도 있습니다.

선택하다 *
m_product에서


WHERE id IN (SELECT product_id FROM m_income);

요청 Q012. m_product 테이블의 제품 목록이 표시되며 해당 코드는 m_outcome 테이블에 없습니다.

선택하다 *
m_product에서


WHERE id NOT IN (SELECT product_id FROM m_outcome);

요청 Q013.이 SQL 쿼리는 m_income 테이블에는 있지만 m_outcome 테이블에는 없는 코드가 있는 제품 코드 및 이름의 고유 목록을 표시합니다.

SELECT DISTINCT 제품 ID, 제목


FROM m_income INNER JOIN m_product
ON m_income.product_id = m_product.id
WHERE product_id NOT IN (SELECT product_id FROM m_outcome);

요청 Q014.고유한 범주 목록은 m_category 테이블에서 표시되며 이름은 문자 M으로 시작합니다.

DISTINCT 제목 선택


m_product에서
WHERE 제목 LIKE "М *";

요청 Q015.요청의 필드에 대해 산술 연산을 수행하고 요청의 필드 이름을 바꾸는 예(별칭). 이 예에서는 이익이 판매 금액의 7%라고 가정하고 각 품목 비용 레코드에 대한 비용 금액 = 수량 * 가격 및 이익 마진을 계산합니다.


금액 * 가격 / 100 * 7 AS 수익
m_outcome에서;

요청 Q016.산술 연산을 분석하고 단순화하여 쿼리 실행 속도를 높일 수 있습니다.

SELECT dt, product_id, amount, price, amount * price AS result_sum,


result_sum * 0.07 AS 이익
m_outcome에서;

요청 Q017. INNER JOIN 문을 사용하여 여러 테이블의 데이터를 조인할 수 있습니다. 다음 예에서 ctgry_id 값에 따라 m_income 테이블의 각 레코드는 제품이 속한 m_category 테이블의 카테고리 이름과 일치합니다.

SELECT c.title, b.title, dt, amount, price, amount * price AS income_sum


FROM (m_income AS a INNER JOIN m_product AS b ON a.product_id = b.id)
내부 조인 m_category AS c ON b.ctgry_id = c.id
ORDER BY c.title, b.title;

요청 Q018. SUM - 합계, COUNT - 수량, AVG - 산술 평균, MAX - 최대값, MIN - 최소값과 같은 함수를 집계 함수라고 합니다. 여러 값을 취하며 처리된 후 단일 값을 반환합니다. SUM 집계 함수를 사용하여 금액 및 가격 필드의 곱 합계를 계산하는 예:

SELECT SUM (금액 * 가격) AS Total_Sum


FROM m_income;

요청 Q019.여러 집계 함수를 사용하는 예:

SELECT 합계(금액) AS Amount_Sum, AVG(금액) AS Amount_AVG,


MAX(금액) AS Amount_Max, Min(금액) AS Amount_Min,
개수(*) AS Total_Number
FROM m_income;

요청 Q020.이 예에서는 2011년 6월에 코드 1이 대문자로 된 모든 항목의 합계를 계산합니다.

SELECT 합계(금액 * 가격) AS income_sum


FROM m_income
WHERE product_id = 1 AND dt BETWEEN # 6/1/2011 # AND # 2011년 6월 30일 # ;.

요청 Q021.다음 SQL 쿼리는 코드가 4 또는 6인 항목의 판매 금액을 계산합니다.

SELECT 합계(금액 * 가격)를 result_sum으로


m_outcome에서
WHERE product_id = 4 또는 product_id = 6;

요청 Q022.코드가 4 또는 6인 상품의 2011년 6월 12일에 판매된 금액에 대해 계산됩니다.

SELECT 합계(금액 * 가격) AS result_sum


m_outcome에서
WHERE (product_id = 4 OR product_id = 6) AND dt = # 6/12/2011 #;

요청 Q023.과제는 다음과 같습니다. 대문자로 표시된 "빵집" 범주의 총 ​​상품 금액을 계산합니다.

이 문제를 해결하려면 다음과 같은 이유로 m_income, m_product 및 m_category의 세 가지 테이블로 작업해야 합니다.


- 자본화된 상품의 수량과 가격은 m_income 테이블에 저장됩니다.
- 각 제품의 카테고리 코드는 m_product 테이블에 저장됩니다.
- 카테고리 제목의 이름은 m_category 테이블에 저장됩니다.

이 문제를 해결하기 위해 다음 알고리즘을 사용합니다.


- 하위 쿼리를 사용하여 m_category 테이블에서 카테고리 코드 "제과점 제품" 결정;
- m_income 및 m_product 테이블을 결합하여 각 대문자 제품의 범주를 결정합니다.
- 카테고리 코드가 위의 하위 쿼리에 의해 정의된 코드와 동일한 상품의 입고 금액(= 수량 * 가격) 계산.
선택하다
FROM m_product AS a INNER JOIN m_income AS b ON a.id = b.product_id
WHERE ctgry_id = (SELECT id FROM m_category WHERE title = "(! LANG: 빵집"); !}

요청 Q024.다음 알고리즘을 사용하여 "베이커리 제품"범주에서 자본화 된 제품의 총 금액을 계산하는 문제를 해결할 것입니다.
- m_income 테이블의 각 레코드에 대해 product_id 값에 따라 m_category 테이블에서 카테고리 이름과 일치합니다.
- 범주가 "제빵 제품"과 동일한 레코드를 선택합니다.
- 영수증 금액 = 수량 * 가격을 계산합니다.

FROM (m_product AS a INNER JOIN m_income AS b ON a.id = b.product_id)

WHERE c.title = "(! LANG: 베이커리"; !}

요청 Q025.이 예에서는 소비된 항목 수를 계산합니다.

SELECT COUNT(product_id) AS product_cnt


FROM (SELECT DISTINCT product_id FROM m_outcome) AS t;

요청 Q026. GROUP BY 절은 레코드를 그룹화하는 데 사용됩니다. 일반적으로 레코드는 하나 이상의 필드 값으로 그룹화되며 각 그룹에 일종의 집계 작업이 적용됩니다. 예를 들어, 다음 쿼리는 상품 판매에 대한 보고서를 생성합니다. 즉, 상품 이름과 판매 금액이 포함된 테이블이 생성됩니다.

SELECT 제목, SUM(금액 * 가격) AS result_sum


FROM m_product AS a INNER JOIN m_outcome AS b
ON a.id = b.product_id
GROUP BY 제목;

요청 Q027.카테고리별 판매 보고서입니다. 즉, 제품 범주의 이름, 해당 범주의 제품이 판매된 총액 및 평균 판매액이 포함된 테이블이 생성됩니다. ROUND 함수는 평균 값을 100번째 부분(소수 구분 기호 뒤의 두 번째 자리)으로 반올림하는 데 사용됩니다.

SELECT c.title, SUM (금액 * 가격) AS result_sum,


ROUND (AVG(금액 * 가격), 2) AS result_sum_avg
FROM(m_product AS a INNER JOIN m_outcome AS b ON a.id = b.product_id)
내부 조인 m_category AS c ON a.ctgry_id = c.id
GROUP BY c.title;

요청 Q028.각 제품에 대해 총 영수증 수와 평균 영수증 수가 계산되고 상품에 대한 정보가 표시되며, 총 영수증 수는 500개 이상입니다.

SELECT product_id, SUM(금액) AS amount_sum,


라운드(Avg(금액), 2) AS amount_avg
FROM m_income
GROUP BY product_id
HAVING 합계(금액)> = 500;

요청 Q029.이 쿼리는 각 항목에 대해 2011년 2/4분기의 영수증 합계 및 평균을 계산합니다. 수령한 상품의 총량이 1000개 이상인 경우 이 제품에 대한 정보가 표시됩니다.

SELECT 제목, SUM(금액 * 가격) AS income_sum


FROM m_income a INNER JOIN m_product b ON a.product_id = b.id
WHERE dt BETWEEN # 4/1/2011 # AND # 6/30/2011 #
GROUP BY 제목
HAVING SUM (금액 * 가격)> = 1000;

요청 Q030.어떤 경우에는 테이블의 각 레코드를 다른 테이블의 각 레코드에 매핑해야 합니다. 데카르트 곱이라고 합니다. 이러한 연결로 생성된 테이블을 데카르트 테이블이라고 합니다. 예를 들어, 어떤 테이블 A에 100개의 레코드가 있고 테이블 B에 15개의 레코드가 있는 경우 데카르트 테이블은 100 * 15 = 150개의 레코드로 구성됩니다. 다음 쿼리는 m_income 테이블의 모든 레코드를 m_outcome 테이블의 모든 레코드와 조인합니다.
FROM m_income, m_outcome;

요청 Q031.두 필드로 레코드를 그룹화하는 예. 다음 SQL 쿼리는 각 공급자에 대해 그에게서 받은 상품의 양과 수량을 계산합니다.


SUM(금액 * 가격) AS income_sum

요청 Q032.두 필드로 레코드를 그룹화하는 예입니다. 다음 쿼리는 각 공급업체에 대해 당사에서 판매한 제품의 양과 수량을 계산합니다.

SELECT Supplier_id, product_id, SUM(금액) AS amount_sum,




GROUP BY 공급자 ID, 제품 ID;

요청 Q033.이 예에서는 위의 두 쿼리(q031 및 q032)가 하위 쿼리로 사용됩니다. LEFT JOIN 방법을 사용하는 이러한 쿼리의 결과는 하나의 보고서로 결합됩니다. 다음 쿼리는 각 공급업체에 대해 입고 및 판매된 제품의 수량 및 양에 대해 보고합니다. 일부 제품이 이미 도착했지만 아직 판매되지 않은 경우 이 레코드의 result_sum 셀이 비어 있습니다. 이 쿼리는 상대적으로 복잡한 쿼리를 하위 쿼리로 사용하는 예일 뿐입니다. 많은 양의 데이터가 포함된 이 SQL 쿼리의 성능은 의심스럽습니다.

선택하다 *
에서



SUM(금액 * 가격) AS income_sum

ON a.product_id = b.id GROUP BY Supplier_id, product_id) AS a
왼쪽 조인
(SELECT Supplier_id, product_id, SUM(금액) AS amount_sum,
SUM (금액 * 가격) AS result_sum
FROM m_outcome AS a INNER JOIN m_product AS b
ON a.product_id = b.id GROUP BY Supplier_id, product_id) AS b
ON (a.product_id = b.product_id) AND (a.supplier_id = b.supplier_id);

요청 Q034.이 예에서는 위의 두 쿼리(q031 및 q032)가 하위 쿼리로 사용됩니다. RIGTH JOIN 방법을 사용하는 이러한 쿼리의 결과는 하나의 보고서로 결합됩니다. 다음 쿼리는 각 고객이 사용한 지불 시스템에 대한 지불 금액과 투자 금액에 대한 보고서를 표시합니다. 다음 쿼리는 각 공급업체에 대해 입고 및 판매된 제품의 수량 및 양에 대해 보고합니다. 일부 제품이 이미 판매되었지만 아직 도착하지 않은 경우 이 레코드의 income_sum 셀이 비어 있습니다. 이러한 빈 셀의 존재는 판매 회계에 오류가 있음을 나타내는 지표입니다. 판매 전에 먼저 해당 제품이 도착해야하기 때문입니다.

선택하다 *
에서


(SELECT Supplier_id, product_id, SUM(금액) AS amount_sum,
SUM(금액 * 가격) AS income_sum
FROM m_income AS a INNER JOIN m_product AS b ON a.product_id = b.id
GROUP BY Supplier_id, product_id) AS a
오른쪽 조인
(SELECT Supplier_id, product_id, SUM(금액) AS amount_sum,
SUM (금액 * 가격) AS result_sum
FROM m_outcome AS a INNER JOIN m_product AS b ON a.product_id = b.id
GROUP BY Supplier_id, product_id) AS b
ON (a.supplier_id = b.supplier_id) AND (a.product_id = b.product_id);

요청 Q035.제품별 수입 및 지출 금액에 대한 보고서를 표시합니다. 이를 위해 m_income 및 m_outcome 테이블에 따라 제품 목록이 생성된 다음 이 목록의 각 제품에 대해 m_income 테이블에 따른 영수증 합계와 m_outcome 테이블에 따른 비용 합계가 계산됩니다.

SELECT product_id, SUM(in_amount) AS income_amount,


SUM(out_amount) AS result_amount
에서
(SELECT product_id, 금액 AS in_amount, 0 AS out_amount
FROM m_income
유니온 올
SELECT product_id, 0 AS in_amount, 금액 AS out_amount
FROM m_outcome) AS t
GROUP BY product_id;

요청 Q036. EXISTS는 전달된 집합에 요소가 포함되어 있으면 TRUE를 반환합니다. EXISTS 함수는 전달된 집합이 비어 있는 경우, 즉 요소를 포함하지 않는 경우 FALSE를 반환합니다. 다음 쿼리는 m_income 및 m_outcome 테이블 모두에 포함된 제품 코드를 표시합니다.

DISTINCT 제품 ID 선택


FROM m_income AS a
WHERE EXISTS (SELECT product_id FROM m_outcome AS b

요청 Q037. m_income 테이블과 m_outcome 테이블 모두에 포함된 제품 코드가 표시됩니다.

DISTINCT 제품 ID 선택


FROM m_income AS a
WHERE product_id IN(m_outcome에서 product_id 선택)

요청 Q038. m_income 테이블에는 포함되어 있지만 m_outcome 테이블에는 포함되지 않은 제품 코드가 표시됩니다.

DISTINCT 제품 ID 선택


FROM m_income AS a
존재하지 않는 곳(SELECT product_id FROM m_outcome AS b
어디에 b.product_id = a.product_id);

요청 Q039.최대 판매 상품의 목록이 표시됩니다. 알고리즘은 다음과 같습니다. 각 제품에 대해 판매 금액이 계산됩니다. 그런 다음 이러한 금액의 최대값이 결정됩니다. 그런 다음 각 제품에 대해 판매 합계가 다시 계산되고 합계가 최대값과 동일한 제품의 코드 및 판매 합계가 표시됩니다.

SELECT product_id, SUM(금액 * 가격) AS amount_sum


m_outcome에서
GROUP BY product_id
HAVING SUM(금액 * 가격) = (SELECT MAX(s_amount)
FROM (SELECT SUM (금액 * 가격) AS s_amount FROM m_outcome GROUP BY product_id));

요청 Q040.예약어 IIF( 조건 연산자)는 논리식을 평가하고 결과(TRUE 또는 FALSE)에 따라 작업을 수행하는 데 사용됩니다. 다음 예에서 품목의 공급은 수량이 500보다 작으면 "소량"으로 간주됩니다. 그렇지 않은 경우, 즉 입고 수량이 500보다 크거나 같으면 공급이 "대량"으로 간주됩니다.

SELECT dt, product_id, 금액,


IIF(m_income에서 금액;

SQL 쿼리 Q041. IIF 연산자를 여러 번 사용하는 경우 SWITCH 연산자로 대체하는 것이 더 편리합니다. SWITCH 연산자(객관식 연산자)는 부울 식을 평가하고 결과에 따라 작업을 수행하는 데 사용됩니다. 다음 예에서 배송된 로트는 로트의 상품 수량이 500개 미만이면 "소형"으로 간주됩니다. 그렇지 않고, 즉, 500개 이상인 경우 로트는 "대량" ":

SELECT dt, product_id, 금액,


SWITCH (금액 = 500, "대") AS 표시
FROM m_income;

요청 Q042.다음 요청에서 수신된 배치의 상품 수량이 300개 미만인 경우 배치는 "소량"으로 간주됩니다. 그렇지 않으면, 즉 금액 조건이 SELECT dt, product_id, amount,
IIF(금액 IIF(금액 FROM m_income;

SQL 쿼리 Q043.다음 요청에서 수신된 배치의 상품 수량이 300개 미만인 경우 배치는 "소량"으로 간주됩니다. 그렇지 않으면, 즉 금액 조건이 SELECT dt, product_id, amount,
SWITCH (금액 금액> = 1000, "대") AS 표시
FROM m_income;

SQL 쿼리 Q044.다음 쿼리에서 매출은 소형(최대 150개), 중형(150~300개), 대형(300개 이상)의 세 그룹으로 나뉩니다. 또한 각 그룹에 대해 총계가 계산됩니다.

SELECT 범주, SUM(결과_합) AS Ctgry_Total


FROM(금액 선택 * 가격 AS result_sum,
IIf (금액 * 가격 IIf (금액 * 가격 FROM m_outcome) AS t
범주별 그룹;

SQL 쿼리 Q045. DateAdd 함수는 주어진 날짜에 일, 월 또는 연도를 추가하고 새 날짜를 얻는 데 사용됩니다. 다음 쿼리:
1) dt 필드의 날짜에 30일을 더하고 dt_plus_30d 필드에 새 날짜를 표시합니다.
2) dt 필드의 날짜에 1개월을 추가하고 dt_plus_1m 필드에 새 날짜를 표시합니다.

SELECT dt, dateadd("d", 30, dt) AS dt_plus_30d, dateadd("m", 1, dt) AS dt_plus_1m


FROM m_income;

SQL 쿼리 Q046. DateDiff 함수는 서로 다른 단위(일, 월 또는 연도)로 두 날짜 간의 차이를 계산하도록 설계되었습니다. 다음 쿼리는 dt 필드의 날짜와 현재 날짜(일, 월 및 연도) 간의 차이를 계산합니다.

SELECT dt, DateDiff("d", dt, 날짜()) AS last_day,


DateDiff("m", dt, 날짜()) AS last_months,
DateDiff("yyyy", dt, 날짜()) AS last_years
FROM m_income;

SQL 쿼리 Q047.상품 수령일(테이블 m_income)부터 현재 날짜까지의 날짜 수는 DateDiff 함수를 사용하여 계산되고 만료 날짜가 비교됩니다(테이블 m_product):


DateDiff("d", dt, 날짜()) AS last_days
FROM m_income AS a INNER JOIN m_product AS b
ON a.product_id = b.id;

SQL 쿼리 Q048.상품 수령일부터 현재 날짜까지의 일수를 계산한 다음이 숫자가 만료 날짜를 초과하는지 확인합니다.

SELECT a.id, product_id, dt, lifedays,


DateDiff("d", dt, 날짜()) AS last_days, IIf(last_days> lifedays, "Yes", "No") AS date_expire
FROM m_income a INNER JOIN m_product b
ON a.product_id = b.id;

SQL 쿼리 Q049.상품 수령일로부터 현재 날짜까지의 개월 수를 계산합니다. month_last1 열은 월의 절대 수를 계산하고 month_last2 열은 전체 월 수를 계산합니다.

SELECT dt, DateDiff("m", dt, 날짜()) AS month_last1,


DateDiff("m", dt, 날짜()) - iif(일(dt)>일(날짜()), 1,0) AS month_last2
FROM m_income;

SQL 쿼리 Q050. 2011년에 자본화된 상품 수량 및 금액에 대한 분기별 보고서가 표시됩니다.

SELECT kvartal, SUM(outcome_sum) AS 합계


FROM (금액 선택 * 가격 AS result_sum, 월(dt) AS m,
스위치(m = 10.4) AS 크바르탈
FROM m_income WHERE 연도(dt) = 2011) AS t
GROUP BY 크바르탈;

요청 Q051.다음 쿼리는 사용자가 항목 수령 금액보다 많은 양의 항목 소비에 대한 정보를 시스템에 입력할 수 있는지 확인하는 데 도움이 됩니다.

SELECT product_id, SUM(in_sum) AS income_sum, SUM(out_sum) AS result_sum


FROM (SELECT product_id, amount * price as in_sum, 0 as out_sum
m_income에서
유니온 올
SELECT product_id, in_sum으로 0, 금액 * out_sum으로 가격
m_outcome에서) AS t
GROUP BY product_id
HAVING SUM(in_sum)
요청 Q052.쿼리에 의해 반환된 줄의 번호 매기기는 다양한 방식으로 구현됩니다. 예를 들어, MS Access 자체를 통해 MS Access에서 작성된 보고서의 행 번호를 다시 매길 수 있습니다. VBA 또는 PHP와 같은 프로그래밍 언어를 사용하여 번호를 다시 매길 수도 있습니다. 그러나 때때로 이것은 SQL 쿼리 자체에서 수행되어야 합니다. 따라서 다음 쿼리는 ID 필드 값의 오름차순에 따라 m_income 테이블의 행 번호를 지정합니다.

SELECT COUNT(*) as N, b.id, b.product_id, b.amount, b.price


FROM m_income a INNER JOIN m_income b ON a.id GROUP BY b.id, b.product_id, b.amount, b.price;

요청 Q053.제품 중 상위 5개를 판매액으로 표시합니다. 처음 5개 레코드는 TOP 문을 사용하여 표시됩니다.

SELECT TOP 5, product_id, sum(금액 * 가격) AS summa


m_outcome에서
GROUP BY product_id
ORDER BY 합계(금액 * 가격) DESC;

요청 Q054.제품 중 판매량에 따라 5개의 리더가 표시되며 결과적으로 라인에 번호가 매겨집니다.

SELECT COUNT(*) AS N, b.product_id, b.summa


에서


FROM m_outcome GROUP BY product_id) AS a
내부 조인
(SELECT product_id, sum(금액 * 가격) AS summa,
summa * 10000000 + product_id AS id
FROM m_outcome GROUP BY product_id) AS b
ON a.id> = b.id
GROUP BY b.product_id, b.summa
HAVING COUNT(*) COUNT(*)로 정렬;

요청 Q055.다음 SQL 쿼리는 MS Access SQL에서 수학 함수 COS, SIN, TAN, SQRT, ^ 및 ABS의 사용을 보여줍니다.

SELECT(m_income에서 카운트(*) 선택)를 N으로, 3.1415926을 pi, k로,


2 * pi * (k-1) / N을 x로, COS(x)를 COS_로, SIN(x)를 SIN_으로, TAN(x)를 TAN_으로,
SQR(x)을 SQRT_로, x ^ 3을 "x ^ 3"으로, ABS(x)를 ABS_로
FROM (SELECT COUNT(*) AS k
FROM m_income AS a INNER JOIN m_income AS b ON a.idGROUP BY b.id) t;

SQL 쿼리. MS Access의 예. 업데이트: 1-10

요청 U001.다음 SQL 변경 쿼리는 m_income 테이블에서 코드 3이 있는 항목의 가격을 10% 인상합니다.

UPDATE m_income SET 가격 = 가격 * 1.1


WHERE product_id = 3;

요청 U002.다음 SQL 업데이트 쿼리는 m_income 테이블에서 "Oil"이라는 단어로 시작하는 모든 제품의 수를 22단위만큼 늘립니다.

UPDATE m_소득 SET 금액 = 금액 + 22


WHERE product_id IN (SELECT id FROM m_product WHERE title LIKE "Oil *");

요청 U003. m_outcome 테이블의 변경 사항에 대한 다음 SQL 쿼리는 OOO "Sladkoe"가 생산하는 모든 상품의 가격을 2% 낮춥니다.

UPDATE m_outcome SET 가격 = 가격 * 0.98


WHERE product_id IN
(SELECT a.id FROM m_product a INNER JOIN m_supplier b
ON a.supplier_id = b.id WHERE b.title = "(! LANG: OOO"Сладкое"");. !}

우리 각자는 정기적으로 다양한 데이터베이스를 접하고 사용합니다. 주소를 선택할 때 이메일, 우리는 데이터베이스로 작업하고 있습니다. 데이터베이스는 검색 엔진을 사용하고 은행은 고객 데이터 등을 저장합니다.

그러나 데이터베이스를 지속적으로 사용함에도 불구하고 많은 개발자들에게도 소프트웨어 시스템동일한 용어에 대한 다른 해석으로 인해 많은 "공백"이 남아 있습니다. SQL 언어를 살펴보기 전에 기본 데이터베이스 용어에 대한 간략한 정의를 제공합니다. 그래서.

데이터 베이스 - 정렬된 데이터 구조와 그 관계를 저장하기 위한 파일 또는 파일 세트. 매우 자주 제어 시스템을 데이터베이스라고 합니다. 이는 특정 형식의 정보 저장소일 뿐이며 다양한 DBMS와 함께 작동할 수 있습니다.

테이블 - 특정 기준(예: 지난 달 주문 목록)으로 그룹화된 문서를 저장하는 폴더를 상상해 보십시오. 이것은 컴퓨터에 있는 테이블입니다.별도의 테이블에는 고유한 이름이 있습니다.

데이터 형식 - 별도의 열이나 행에 저장할 수 있는 정보의 종류. 특정 형식의 숫자 또는 텍스트일 수 있습니다.

열과 행- 우리는 모두 행과 열이 있는 스프레드시트로 작업했습니다. 모든 관계형 데이터베이스는 유사한 방식으로 테이블과 함께 작동합니다. 라인을 레코드라고도 합니다.

기본 키- 테이블의 각 행은 고유 식별을 위해 하나 이상의 열을 가질 수 있습니다. 기본 키가 없으면 필요한 행을 업데이트, 수정 및 삭제하기가 매우 어렵습니다.

SQL이란 무엇입니까?

SQL(영어 - 구조화된 쿼리 언어)는 데이터베이스 작업 전용으로 개발되었으며 현재 모든 인기 있는 DBMS의 표준입니다. 언어의 구문은 적은 수의 연산자로 구성되며 배우기 쉽습니다. 그러나 외부 단순성에도 불구하고 모든 크기의 데이터베이스를 사용하여 복잡한 작업에 대한 SQL 쿼리를 생성할 수 있습니다.

1992년 이후로 ANSI SQL이라고 하는 일반적으로 인정되는 표준이 있습니다. 연산자의 기본 문법과 기능을 정의하고 ORACLE을 비롯한 DBMS 시장의 모든 리더들이 지원하고 있으며, 하나의 작은 글에서 언어의 모든 기능을 다 다룰 수는 없으므로 기본적인 SQL만 간단히 살펴보기로 한다. 쿼리. 예제는 언어의 단순성과 기능을 명확하게 보여줍니다.

  • 데이터베이스 및 테이블 생성;
  • 데이터를 가져 오는 중;
  • 레코드 추가;
  • 정보의 수정 및 삭제.

SQL 데이터 유형

데이터베이스 테이블의 모든 열은 동일한 데이터 유형을 저장합니다. SQL의 데이터 유형은 다른 프로그래밍 언어와 동일합니다.

테이블 및 데이터베이스 생성

SQL에서 새 데이터베이스, 테이블 및 기타 쿼리를 만드는 두 가지 방법이 있습니다.

  • DBMS 콘솔을 통해
  • 데이터베이스 서버에 포함된 온라인 관리 도구 사용.

운영자가 새 데이터베이스를 생성합니다. 데이터베이스 생성<наименование базы данных>; ... 보시다시피 구문은 간단하고 간결합니다.

다음 매개변수를 사용하여 CREATE TABLE 문을 사용하여 데이터베이스 내부에 테이블을 생성합니다.

  • 테이블 이름
  • 열 이름 및 데이터 유형

예를 들어 다음 열이 있는 Commodity 테이블을 생성해 보겠습니다.

테이블을 만듭니다.

테이블 만들기 상품

(commodity_id CHAR (15) NOT NULL,

vendor_id CHAR(15) NOT NULL,

상품 이름 CHAR(254) NULL,

상품 가격 DECIMAL (8,2) NULL,

상품_설명 VARCHAR(1000) NULL);

테이블에는 5개의 열이 있습니다. 이름 다음에 데이터 유형이 오고 열은 쉼표로 구분됩니다. 컬럼 값은 널(NULL)이거나 채워져야(NOT NULL)일 수 있으며 이는 테이블이 생성될 때 결정됩니다.

테이블에서 데이터 가져오기

데이터 선택 연산자는 가장 자주 사용되는 SQL 쿼리입니다. 정보를 얻으려면 이러한 테이블에서 선택하려는 항목을 표시해야 합니다. 간단한 예부터 시작하겠습니다.

SELECT 상품_이름 FROM 상품

후에 SELECT 문우리는 정보를 얻을 열의 이름을 지정하고 FROM은 테이블을 정의합니다.

쿼리 실행 결과는 Commodity_name 값이 데이터베이스에 입력된 순서대로 테이블의 모든 행이 됩니다. 정렬 없이. 추가 ORDER BY 절을 사용하여 결과를 정렬합니다.

여러 필드에 대한 쿼리의 경우 다음 예와 같이 쉼표로 구분하여 나열합니다.

상품 ID, 상품 이름, 상품 가격 FROM 상품 선택

쿼리의 결과로 행의 모든 ​​열 값을 가져올 수 있습니다. 이렇게 하려면 "*" 기호를 사용하십시오.

상품에서 * 선택

  • 또한 SELECT는 다음을 지원합니다.
  • 데이터 정렬(ORDER BY 연산자)
  • 조건에 따른 선택(WHERE)
  • 그룹화 용어(GROUP BY)

라인 추가

테이블에 행을 추가하기 위해 INSERT 문을 사용하는 SQL 쿼리가 사용됩니다. 추가는 세 가지 방법으로 수행할 수 있습니다.

  • 새로운 전체 줄을 추가하십시오.
  • 문자열의 일부;
  • 쿼리 결과.

전체 행을 추가하려면 테이블 이름과 새 행의 열(필드) 값을 지정해야 합니다. 예를 들어 보겠습니다.

상품 값에 삽입("106", "50", "코카콜라", "1.68", "알코골 없음,)

이 예에서는 테이블에 새 제품을 추가합니다. 값은 각 열의 VALUES 뒤에 지정됩니다. 열에 해당하는 값이 없으면 NULL을 지정해야 합니다. 열은 테이블이 생성될 때 지정된 순서대로 값으로 채워집니다.

행의 일부만 추가하는 경우 다음 예와 같이 열 이름을 명시적으로 지정해야 합니다.

상품에 삽입(commodity_id, vendor_id, 상품_이름)

값("106", '50"," 코카콜라 ",)

제품의 식별자, 공급자 및 이름만 입력하고 나머지 필드는 비워 둡니다.

쿼리 결과 추가

INSERT는 주로 행을 추가하는 데 사용되지만 SELECT 문의 결과를 추가하는 데 사용할 수도 있습니다.

데이터 변경

데이터베이스 테이블의 필드 정보를 변경하려면 UPDATE 문을 사용해야 합니다. 연산자는 두 가지 방법으로 사용할 수 있습니다.

  • 테이블의 모든 행이 업데이트됩니다.
  • 특정 라인에만 적용됩니다.

업데이트에는 세 가지 주요 요소가 있습니다.

  • 변경해야 하는 테이블;
  • 필드 이름 및 새 값
  • 변경할 행을 선택하기 위한 조건.

예를 들어 보겠습니다. ID = 106인 항목의 가격이 변경되었으므로 이 행을 업데이트해야 한다고 가정해 보겠습니다. 다음 연산자를 작성합니다.

업데이트 상품 SET 상품_가격 = "3.2" WHERE 상품_ID = "106"

업데이트가 수행될 테이블의 이름(우리의 경우 Commodity)을 표시한 다음 SET 이후에 - 열의 새 값을 찾았습니다. 원하는 항목 WHERE에 원하는 ID 값을 지정하여

여러 열을 수정하려면 SET 문 뒤에 여러 열-값 쌍을 쉼표로 구분하여 지정합니다. 제품의 이름과 가격을 업데이트하는 예를 살펴보겠습니다.

UPDATE 상품 SET 상품 이름 = '환타', 상품 가격 = "3.2" WHERE 상품 ID = "106"

열에서 정보를 제거하려면 테이블 구조에서 허용하는 경우 NULL로 설정할 수 있습니다. NULL은 텍스트나 숫자 형태의 0이 아니라 정확히 "no" 값이라는 것을 기억해야 합니다. 제품 설명 삭제:

업데이트 상품 SET 상품_데스크 = NULL WHERE 상품 ID = "106"

행 삭제

테이블의 행을 삭제하는 SQL 쿼리는 DELETE 문에 의해 실행됩니다. 두 가지 사용 사례가 있습니다.

  • 특정 행이 테이블에서 삭제됩니다.
  • 테이블의 모든 행이 삭제됩니다.

테이블에서 하나의 행을 삭제하는 예:

상품 WHERE 상품 ID = "106"에서 삭제

DELETE FROM 다음에 행을 삭제할 테이블의 이름을 지정합니다. WHERE 절에는 삭제할 행을 선택하는 조건이 포함됩니다. 이 예에서는 ID = 106인 제품에 대한 라인을 삭제합니다. WHERE를 지정하는 것은 매우 중요합니다. 이 문을 생략하면 테이블의 모든 행이 삭제됩니다. 이는 필드 값을 변경할 때도 적용됩니다.

DELETE 문에는 열 이름이나 메타 문자가 포함되지 않습니다. 행을 완전히 삭제하지만 단일 열을 삭제할 수는 없습니다.

Microsoft Access에서 SQL 사용

일반적으로 테이블, 데이터베이스를 만들고 데이터베이스의 데이터를 관리, 수정, 분석하고 복잡한 SQL 문을 작성하고 즉시 실행할 수 있는 편리한 대화형 쿼리 디자이너를 통해 SQL Access 쿼리를 포함하는 데 대화형으로 사용됩니다.

서버에 대한 액세스 모드도 지원되며, 여기서 Access DBMS는 ODBC 데이터 소스에 대한 SQL 쿼리 생성기로 사용될 수 있습니다. 이 기능을 사용하면 Access 응용 프로그램이 모든 형식과 상호 작용할 수 있습니다.

SQL 확장

SQL 쿼리에는 루프, 분기 등과 같은 절차적 프로그래밍 언어의 모든 기능이 없기 때문에 데이터베이스 공급업체는 고급 기능을 갖춘 자체 버전의 SQL을 개발합니다. 우선 이것은 저장 프로시저와 절차 언어의 표준 연산자에 대한 지원입니다.

언어의 가장 일반적인 방언:

  • 오라클 데이터베이스 - PL/SQL
  • 인터베이스, 파이어버드 - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL/pgSQL.

인터넷상의 SQL

MySQL은 GNU General Public License에 따라 배포됩니다. 맞춤형 모듈을 개발할 수 있는 상용 라이선스가 있습니다. 필수적인 부분으로 XAMPP, WAMP, LAMP와 같은 인터넷 서버의 가장 대중적인 어셈블리에 포함되어 있으며 인터넷에서 응용 프로그램을 개발하기 위한 가장 대중적인 DBMS입니다.

Sun Microsystems에서 개발했으며 현재 Oracle Corporation에서 지원합니다. 최대 64TB의 데이터베이스, SQL: 2003 구문 표준, 데이터베이스 복제 및 클라우드 서비스가 지원됩니다.



관련 기사: