SQL을 사용하여 데이터를 검색하는 간단한 쿼리입니다. SQL 쿼리 언어 선택 쿼리 SQL 예제




간단한 데이터 샘플

하나 이상의 테이블로 구성된 관계형 데이터베이스가 생성되었고 이미 연결되어 있다고 가정해 보겠습니다. 이 경우 일반적인 실제 작업은 필요한 데이터를 획득(추출)하는 것입니다. 예를 들어, 데이터베이스에 있는 테이블의 전체 내용이나 일부 필드를 보고 싶을 수도 있습니다. 이 경우 모든 레코드를 가져오는 것이 아니라 지정된 조건을 만족하는 레코드만 가져오고 싶을 수도 있습니다. 그러나 한 번에 여러 테이블에서 데이터를 추출하는 더 흥미롭고 복잡한 작업이 더 자주 발생합니다. 보기, 분석 또는 추가 처리를 위해 표시하려면 두 개 이상의 테이블에 있는 데이터를 하나의 테이블로 결합해야 합니다. SQL 언어는 이에 대한 충분한 기회를 제공하며 이를 고려해 보겠습니다.

SQL 표현식(SQL 표현식)을 실행하면 요청된 데이터가 포함된 테이블이 생성되거나 쿼리와 일치하는 데이터가 없으면 비어 있는 테이블이 생성됩니다. 결과 테이블이라고도 불리는 이 테이블은 데이터베이스와의 세션 동안에만 존재하며 데이터베이스에 포함된 테이블 수에 추가되지 않습니다. 즉, 원본 데이터베이스 테이블처럼 컴퓨터의 하드 드라이브에 저장되지 않으므로 가상이라고도 합니다.

여러 테이블에서 데이터를 가져와 처리하고 하위 쿼리(최종 결과를 얻기 위해 중간 쿼리로 필요한 쿼리)를 사용하는 것이 복잡한 쿼리의 주제입니다. 여기서는 레코드 선택, 그룹화 및 정렬을 위한 비교적 간단한 조건 하에서 하나의 테이블에서 데이터를 검색하는 문제에 중점을 둘 것입니다. 그러나 데이터를 선택하기 위해 간단한 쿼리에 사용되는 SQL 문은 데이터 검색뿐만 아니라 변경을 목적으로 하는 복잡한 쿼리에도 사용됩니다. 간단한 것부터 시작하면 나중에 복잡한 것도 쉽게 이해할 수 있습니다. 이 장의 자료는 기본적인 SQL 주제와 관련이 있지만 많은 데이터베이스 사용자는 이 주제로 제한될 수 있습니다. 이 장의 내용 자체가 매우 실용적이기 때문에 후자가 그럴 가능성이 매우 높습니다.

기존 데이터베이스 테이블에서 데이터를 검색하기 위한 모든 SQL 문은 키워드(문) SELECT로 시작됩니다. 쿼리를 구체화하기 위해 FROM(from), WHERE(where) 등과 같은 추가 연산자가 사용됩니다. 이제 SQL 표현식으로 공식화된 쿼리를 실행한 결과는 요청된 내용을 포함하는 테이블이라는 점을 이해하고 기억하는 것이 중요합니다. 데이터. 이 테이블은 쿼리 결과만 나타낼 뿐 데이터베이스에 속하지 않는다는 점에서 가상 테이블입니다. SQL을 사용하면 기존 데이터베이스를 변경할 수 있습니다. 새 테이블을 생성 및 추가하고 기존 데이터베이스를 수정 및 삭제할 수 있습니다.

데이터 검색을 위한 기본 SQL 표현식

데이터베이스 테이블에서 필요한 레코드를 선택하려면 최소한 열과 테이블 이름을 지정해야 합니다. 이 요구 사항을 다음과 같이 공식화하는 것이 당연합니다.

그러한 테이블에서 그러한 열을 선택하십시오.

물론 테이블의 모든 레코드를 선택하는 것이 아니라 특정 조건을 충족하는 레코드만 선택하고 싶을 수도 있습니다. 실제로 이것이 바로 일어나는 일입니다. 이제 레코드 선택 조건 형성에 대한 고려는 잠시 접어두고, 주어진 테이블에서 모든 레코드를 선택하는 데 중점을 두겠습니다. 데이터베이스에 대한 SQL 쿼리의 결과는 쿼리에 지정된 것에서 얻은 테이블이지만 지정된 열만 포함한다는 점에서 다릅니다.

선택하다 열 목록에서 테이블 목록;

데이터 선택을 정의하는 SQL 문의 SELECT 및 FROM 문은 필수입니다. 즉, 어느 것도 건너뛸 수 없습니다. 이러한 문만 포함하는 SQL 문은 데이터를 검색하기 위해 데이터베이스에 대한 쿼리를 정의하는 기본 표현식입니다. 이 쿼리는 지정된 열과 원본 테이블의 모든 레코드를 포함하는 가상 테이블을 생성합니다.

SELECT 문은 FROM 식에 지정된 관계를 SELECT 문에 지정된 특성(열) 집합에 투영합니다.

FROM 절은 데이터를 선택하려는 데이터베이스 테이블 이름 목록을 지정합니다. 가장 간단한 경우 목록테이블 테이블 이름이 하나만 포함되어 있습니다. 테이블이 여러 개인 경우 목록에서 해당 이름은 쉼표로 구분됩니다. FROM 절에 둘 이상의 테이블이 지정된 경우 결과 테이블은 나열된 테이블의 데카르트 곱에서 가져옵니다. 이는 특별한 목적으로 사용되는 경우도 있지만 FROM 절에는 하나의 테이블만 지정되는 경우가 많습니다.

열 목록 FROM 절에 지정된 테이블에 정의된 열 이름의 쉼표로 구분된 목록입니다. 물론 전체 열을 지정하거나 일부 열만 지정할 수도 있습니다. 테이블의 모든 열을 가져오려면 열 목록 대신 기호(*)를 지정하면 됩니다. FROM 절에 테이블이 두 개 이상 지정된 경우 SELECT 절의 열 이름 앞에는 해당 테이블이 참조하는 테이블을 나타내야 합니다. 접두사는 점으로 열 이름과 구분됩니다. 예를 들어 Clients.Address 표현식은 클라이언트 테이블의 주소 열을 의미합니다.

하나의 테이블에서 모든 데이터(모든 열과 모든 레코드)를 반환하는 간단한 쿼리는 다음과 같이 공식화됩니다.

선택하다 * 에서 이름테이블 ;

기본 SQL 표현식은 쿼리를 구체화하는 다른 문으로 보완될 수 있습니다. WHERE 연산자(where)가 가장 많이 사용되며, 이를 사용하여 레코드(테이블 행) 선택 조건을 설정할 수 있습니다. 따라서 SELECT 절이 FROM 절에 지정된 테이블의 열을 지정하는 경우 WHERE 절은 해당 테이블의 레코드(행)를 지정합니다. 특정 테이블에 있는 데이터를 검색하기 위한 쿼리를 정의하는 표현식은 다음과 같은 형식을 갖습니다.

선택하다 * 에서 이름테이블어디 검색조건 ;

WHERE 절에 지정된 조건은 true 또는 false라는 두 가지 부울 값 중 하나를 사용합니다. 즉, 부울 표현식입니다. 쿼리를 처리할 때 테이블 레코드별로 조건을 확인합니다. 특정 레코드에 대해 true인 경우 해당 레코드가 선택되어 결과 테이블에 표시됩니다. 그렇지 않으면 레코드가 선택되지 않고 결과 테이블에 표시되지 않습니다. SQL 문에 WHERE 절이 지정되지 않은 경우 결과 테이블에는 FROM 절에 지정된 테이블의 모든 레코드가 포함됩니다. 따라서 WHERE 절은 레코드 필터를 정의합니다. 필터는 일부 항목을 결과 테이블에 전달하고 나머지 항목은 삭제합니다.

필터- 데이터베이스 작업 분야의 기본 개념 중 하나입니다. 문헌에서는 때때로 그것에 대한 다른 해석을 찾을 수 있습니다. 따라서 "기록 필터링"은 "기록 가져오기"를 의미할 수도 있고 그 반대로 "기록 거부"를 의미할 수도 있습니다. 여기서 '필터', '필터 통과', '필터 적용'이라는 용어는 항상 '필터 조건을 만족하는 레코드 선택'을 의미합니다.

열 목록 앞의 SELECT 문 바로 뒤에 키워드를 사용할 수 있습니다. 모두(모두) 그리고 별개의(다름)은 결과 테이블에 표시할 레코드를 나타냅니다. 이러한 키워드를 사용하지 않으면 모든 레코드를 선택해야 하며 이는 ALL 키워드의 사용에도 해당됩니다. DISTINCT를 사용하면 결과 테이블에 고유한 레코드만 표시됩니다. 또한 소스 테이블에 동일한 레코드가 여러 개 포함되어 있으면 첫 번째 레코드만 선택됩니다.

메모

Microsoft Access에서는 ALL 및 DISTINCT 키워드 외에도 SELECT 뒤에 키워드를 사용할 수 있습니다. 맨 위추가 매개변수를 사용합니다. 표현 탑엔주어진 쿼리 조건을 만족하는 처음 n개의 레코드만 데이터 선택에 포함되어야 합니다. 이는 WHERE 절에 공식화된 필수 레코드에 대한 검색 조건의 제한 사항입니다. 소스 테이블이 매우 큰 경우 DISTINCT를 사용하면 응답 속도를 높일 수 있습니다.

Access에서는 다음 표현식을 사용할 수도 있습니다. 상위 n PERCENT, n이 전체 레코드 수에 대한 백분율로 표시됨을 나타냅니다. 이러한 표현의 사용은 검색 속도를 높이는 것이 아니라 불필요한 데이터가 없는 테이블을 얻는 것을 목표로 한다는 것을 이해하는 것은 어렵지 않습니다.

결과 테이블의 열 머리글은 소위 할당하여 재량에 따라 재정의할 수 있습니다. 가명 . 이를 수행하려면 해당 열 뒤의 열 목록에서 다음과 같은 표현식을 작성하십시오. 처럼 열_제목

예를 들어:

클라이언트 이름을 클라이언트로 선택하고 클라이언트에서 주소 AS 주소를 선택합니다.

FROM 키워드 뒤에 각 테이블에 대한 별칭을 지정할 수도 있습니다. 이렇게 하려면 해당 테이블 이름 바로 뒤에 공백으로 구분된 별칭을 지정하면 됩니다. 이름보다 짧은 테이블 별칭은 복잡한 쿼리에 유용합니다. 예를 들어:

SELECT Т1.이름, Т2.주소 FROM 클라이언트 Т1, 연락처 Т2;

설명 요청

데이터 선택을 위한 주요 SQL 표현식은 다음과 같습니다.

테이블 목록에서 열 목록을 선택합니다.

이 쿼리는 SELECT 문에 정의된 열만 선택하여 FROM 문에 지정된 테이블에서 가져온 테이블을 반환합니다. 소스 테이블의 필수 레코드(행)를 선택하려면 WHERE 키워드(연산자) 뒤에 오는 표현식을 사용합니다. WHERE 절은 필수는 아니지만 SQL 문에서 가장 일반적으로 사용되는 절입니다. SQL 표현식의 주요 구성 요소로 간주될 수 있는 것은 인기 때문입니다. WHERE 외에도 쿼리를 구체화하기 위해 SQL 표현식에 다른 연산자가 사용됩니다.

데이터 선택 요청을 명확히 하기 위해 다음과 같은 여러 추가 연산자가 사용됩니다.

· 어디(어디) - 결과 테이블에 포함되어야 하는 레코드를 나타냅니다(레코드 필터).

· 그룹 기준(그룹화 기준) - 특정 열의 값을 기준으로 레코드를 그룹화합니다.

· 가지고 있는(갖고 있음, 제공됨) - 결과 테이블에 포함되어야 하는 레코드 그룹을 나타냅니다(그룹 필터).

· 주문(정렬 기준) - 레코드를 정렬(순서)합니다.

이러한 문은 선택 사항입니다. 전혀 사용할 수 없고, 일부만 사용할 수도 있고, 한꺼번에 사용할 수도 없습니다. 여러 연산자가 사용되는 경우 목록에 지정된 순서대로 SQL 표현식에 사용됩니다. 따라서 나열된 모든 쿼리 구체화 연산자를 사용하여 테이블의 데이터에 대한 쿼리는 다음과 같은 형식을 갖습니다.

TableName에서 열 목록 선택

WHERE 검색 조건

GROUP BY 열그룹

검색 조건 있음

ORDER BY 정렬 조건;

SQL 표현식에 연산자가 나열되는 순서는 연산자가 실행되는 순서와 일치하지 않습니다. 그러나 명령문이 실행되는 순서를 알면 많은 오해를 피하는 데 도움이 됩니다. 따라서 나열된 SQL 표현식 문은 다음 순서로 실행되어 그 결과를 테이블 형식으로 서로 전달합니다.

1. 에서- 데이터베이스에서 테이블을 선택합니다. 여러 테이블이 지정된 경우 해당 테이블의 데카르트 곱이 수행되고 결과 테이블은 처리를 위해 다음 연산자로 전달됩니다.

2. 어디- 검색 조건에 맞는 레코드를 테이블에서 선택하고 나머지는 모두 삭제합니다.

3. 그룹 기준- WHERE 연산자를 사용하여 선택된 레코드 그룹이 생성됩니다(SQL 표현식에 있는 경우). 각 그룹은 그룹화 열의 일부 값에 해당합니다. 그룹화 열은 SELECT에 지정된 열뿐만 아니라 from 절에 지정된 테이블의 모든 열이 될 수 있습니다.

4. 가지고 있는- 생성된 각 레코드 그룹을 처리하여 검색 조건을 만족하는 레코드 그룹만 남깁니다. 이 연산자는 GROUP BY 연산자와 함께 사용됩니다.

5. 선택하다- 나열된 연산자를 적용한 결과 얻은 테이블에서 지정된 열만 선택합니다.

6. 주문- 테이블 레코드를 정렬합니다. 이 경우 정렬 조건에서는 SELECT 문에 지정된 열에만 접근할 수 있습니다.

데이터베이스의 테이블 중에 name, Address, Order_Amount 및 기타 이름의 열이 포함된 Customers 테이블이 있다고 가정해 보겠습니다. 이 테이블의 의미는 간단합니다. 여기에는 고객 데이터와 그들이 해당 서비스를 사용하여 회사에 지불한 금액이 기록됩니다.

쌀. 1. 클라이언트 테이블

이 테이블의 모든 데이터에 관심이 없고 회사에 500 이상을 지불한 고객과 관련된 데이터에만 관심이 있다고 가정합니다(이제 지불이 이루어진 통화는 중요하지 않습니다). 보다 정확하게는 회사에 500화폐 단위 이상을 지불한 고객의 이름과 주소가 필요합니다. 따라서 Clients 테이블에 포함된 모든 항목을 가져오는 것이 아니라 열과 레코드를 기준으로 일부만 가져와야 합니다. 다음 SQL 표현식은 이 목적에 적합합니다.

주문 금액 > 500;

이 SQL 문은 자연어로 다음과 같은 쿼리입니다.

SELECT COLUMN 이름, 주소 FROM TABLE 고객 WHERE Order_Amount > 500;

여기서는 Order_Amount 열의 값이 500을 초과하는 Customers 테이블에서 레코드가 선택됩니다. 이 경우 Customers 테이블의 두 열(Name 및 Address)만 결과 테이블에 표시됩니다.

이 경우 소스 테이블에서 사용할 수 있는 Order_Amount 열은 표시되지 않습니다(결과 테이블에 없음). 그러나 500보다 큰 특정 금액을 확인해야 하는 경우 SELECT 문 다음에 오는 열 목록에 Order_Amount 열을 표시하는 것만으로도 충분합니다.

쌀. 2. "WHERE Order_Amount > 500" 쿼리 결과

다음 SQL 문은 Region, Name 및 Address라는 세 개의 열을 포함하는 가상 테이블을 생성합니다. 고객 테이블에서는 Order_Amount가 500을 초과하는 레코드만 선택하고 지역, 이름, 주소 열의 값을 기준으로 그룹화합니다. 즉, 결과 테이블에서는 Region 열에 동일한 값을 가진 레코드가 나란히 위치하게 됩니다. 마지막으로 결과 테이블의 모든 레코드는 이름 열의 값에 따라 정렬됩니다(그림 3).

클라이언트로부터 지역, 이름, 주소 선택

주문_금액 > 500

GROUP BY 지역, 이름, 주소

이름으로 주문하세요.

쌀. 3. "WHERE Order_Amount > 500" 쿼리 결과
"GROUP BY 지역, 이름, 주소"를 그룹화하고 "ORDER BY 이름"을 정렬하여

소스 테이블에서 레코드를 선택하는 연산자는 다른 SQL 연산자와 공존할 수 있습니다.

WHERE 절

WHERE 절(where)의 검색 조건은 부울 표현식입니다. 즉, true(TRUE) 또는 false(FALSE)의 두 가지 가능한 값 중 하나를 취합니다. 예를 들어 Order_Amount > 500 표현식은 현재 테이블 레코드에 500보다 큰 Order_Amount 열 값이 있는 경우 true로 평가됩니다. 그렇지 않은 경우 표현식은 false로 평가됩니다. 동일한 논리 표현식이 일부 레코드에서는 true이고 다른 레코드에서는 false일 수 있습니다. 일반적으로 SQL에서 부울 표현식은 정의되지 않은 값을 가질 수도 있습니다. 이는 표현식의 일부 요소가 NULL일 때 발생합니다. 따라서 SQL에서는 전통적인 2값 논리가 아닌 3값 논리를 다루고 있습니다.

WHERE 절 뒤에 오는 표현식은 true, false 또는 NULL의 세 가지 값 중 하나를 반환합니다. 쿼리(SQL 표현식)가 실행되면 소스 테이블의 모든 레코드에 불리언 WHERE 표현식이 적용됩니다. 소스 테이블의 특정 항목에 대해 true인 경우 해당 항목이 선택되고 결과 테이블에 표시됩니다. 그렇지 않으면 항목이 결과 테이블에 포함되지 않습니다.

논리식을 작성할 때 비교 연산의 특수 키워드와 기호를 사용합니다. 술어 . 조건자는 SQL: 1999에 처음 등장했습니다. 예를 들어 Order_Amount > 500 식에서는 비교 조건자(>)가 사용됩니다.

WHERE 절이 포함된 표현식은 데이터를 검색할 때(즉, SELECT 문을 사용할 때)뿐만 아니라 레코드를 삽입, 수정, 삭제할 때도 사용됩니다. 따라서 이 섹션의 자료는 데이터 샘플링 주제의 범위를 넘어서는 의미를 갖습니다.

가장 일반적으로 사용되는 비교 술어 , 예: (=), (<),(>), (<>), (<=) и (>=). 그러나 다른 것들도 있습니다. 다음은 모든 술어의 목록입니다.

비교 술어:

(=) - 같음, (<) - меньше, (>) - 더, (< >) - 같지 않음,

(<=) – меньше или равно (не больше), (>=) - 크거나 같음(작지 않음)

· 좋아요, 싫어요;

· 모두, 일부, 모두;

메모

일반적인 절차적 프로그래밍 언어에서는 나열된 비교 기호를 술어가 아닌 비교 연산자라고 부르지만, 비교 기호와 관련된 모든 것을 무엇이라고 부르든 본질은 동일합니다.

BETWEEN(사이) 조건자를 사용하면 경계 값으로 정의된 범위에 값이 포함되는지 여부를 확인하는 표현식을 지정할 수 있습니다. 예를 들어:

Order_Amount가 100과 750 사이인 경우

여기서 핵심 단어는 그리고논리 합집합 AND를 나타냅니다. 경계 값(예에서는 100과 750)이 범위에 포함됩니다. 또한 첫 번째 경계 값은 두 번째 경계 값보다 커서는 안 됩니다.

비교 조건자가 있는 표현식은 다음과 동일합니다.

WHERE Order_Amount >= 100 AND Order_Amount<= 750

숫자 데이터 외에도 문자, 비트, 날짜-시간 등의 데이터 유형을 BEETWEEN 표현식에 사용할 수 있습니다. 예를 들어 고객 이름이 A부터 F까지의 범위에 있는 레코드를 선택하려면 다음 표현식을 사용할 수 있습니다.

클라이언트에서 이름, 주소 선택

"A"와 "F" 사이에 이름이 있는 경우;

IN과 NOT IN

IN(in) 및 NOT IN(not in) 술어는 주어진 값 목록에서 값의 발생을 확인하는 데 사용됩니다. 예를 들어 특정 지역의 고객 레코드를 선택하려면 다음 표현식을 사용할 수 있습니다.

클라이언트에서 이름, 주소 선택

WHERE 지역 IN(“북서부”, “스타브로폴 영토”,

"이르쿠츠크 지역");

모스크바와 북서부가 아닌 모든 클라이언트에 대한 데이터를 얻으려면 NOT IN 조건자를 사용할 수 있습니다.

클라이언트에서 이름, 주소 선택

지역이 아닌 곳("모스크바", "상트페테르부르크");

좋아요와 싫어요

LIKE 및 NOT LIKE 조건자는 문자열의 부분 일치를 테스트하는 데 사용됩니다. 예를 들어, 테이블의 전화 열에는 전체 전화번호가 포함되어 있지만 전화번호가 348로 시작하거나 이러한 숫자 조합을 포함하는 레코드만 선택하려고 합니다.

부분 일치 기준은 두 개의 와일드카드 문자인 백분율 기호(%)와 밑줄(_)을 사용하여 지정됩니다. 퍼센트 기호는 빈 문자를 포함한 모든 문자 집합을 의미하고 밑줄은 단일 문자를 의미합니다. 예를 들어 전화번호가 348로 시작하는 고객의 레코드를 선택하려면 다음 표현식을 사용할 수 있습니다.

전화가 "348%"와 같은 곳;

주소 열에 전체 우편 주소(우편번호, 도시 이름, 거리 이름 등)가 포함되어 있다고 가정해 보겠습니다. 상트페테르부르크에 거주하는 고객에 대한 레코드를 선택해야 하는 경우 다음 표현식을 사용할 수 있습니다.

클라이언트로부터 이름, 주소, 전화번호 선택

WHERE 주소 LIKE "%St.Petersburg%";

모스크바에 거주하는 모든 고객을 제외하려면 다음 표현식을 사용하십시오.

클라이언트로부터 이름, 주소, 전화번호 선택

주소가 "%Moscow%"가 아닌 곳;

백분율 및/또는 밑줄 문자가 포함된 레코드를 선택해야 할 수도 있습니다. 그런 다음 이러한 문자는 SQL 해석기에서 와일드카드 문자가 아닌 것으로 인식되어야 합니다. 백분율이나 밑줄을 문자 그대로 받아들이려면 특수 제어 문자가 앞에 와야 합니다. 이 문자는 데이터 요소로 표시되지 않는 한 임의로 정의할 수 있습니다. 다음 예에서는 이를 수행하는 방법을 보여줍니다.

SELECT- 이름, 주소, 클라이언트의 할인율_%

할인율이 "20#%"와 같은 곳

여기서 ESCAPE 키워드 뒤에는 컨트롤로 사용되는 기호가 옵니다. 같은 방법으로 제어 문자 자체를 비활성화할 수 있습니다.

IS NULL 조건자는 특정 열에 값이 없는 레코드를 식별하는 데 사용됩니다. 예를 들어, 주소가 지정되지 않은 고객 레코드를 검색하려면 다음 표현식을 사용할 수 있습니다.

주소가 NULL인 경우;

Address 열에 특정 값(예: NULL이 아닌)이 포함된 레코드를 검색하려면 유사한 표현식을 사용할 수 있지만 NOT 논리 연산자를 사용하면 됩니다.

클라이언트에서 이름, 주소, 지역 선택

주소가 NULL이 아닌 곳;

Address = NULL과 같은 NULL 비교 조건자를 사용하면 안 됩니다.

SQL SELECT 문은 데이터베이스에서 데이터를 선택하는 쿼리용입니다. 조건 없이(모든 열의 모든 행 선택 또는 특정 열의 모든 행 선택) WHERE 절에 지정된 여러 조건(특정 행 선택)과 함께 사용할 수 있습니다. 데이터 선택을 위해 이러한 조건을 설정하는 데 사용할 수 있는 SQL 도구에 대해 알아보고 하위 쿼리에서 SELECT 문을 사용하는 방법도 알아봅니다.

SELECT를 사용하여 테이블 열 선택

테이블의 모든 열을 선택하는 SELECT 문이 포함된 쿼리의 구문은 다음과 같습니다.

SELECT * FROM TABLE_NAME

즉, 테이블의 모든 열을 선택하려면 SELECT 단어 뒤에 별표를 넣어야 합니다.

예시 1.회사 데이터베이스가 있습니다 - 회사. 여기에는 Org(회사 구조) 테이블과 Staff(직원) 테이블이 포함되어 있습니다. 테이블에서 모든 열을 선택해야 합니다. Org 테이블의 모든 열을 선택하는 해당 쿼리는 다음과 같습니다.

* 조직에서 선택

이 쿼리는 다음을 반환합니다(이미지를 확대하려면 마우스 왼쪽 버튼을 클릭하세요).

Staff 테이블에서 모든 열을 선택하는 쿼리는 다음과 같습니다.

직원에게서 * 선택

이 쿼리는 다음을 반환합니다.


특정 테이블 열을 선택하려면 별표를 사용하는 대신 선택해야 하는 모든 열의 이름을 쉼표로 구분하여 나열해야 합니다.

TABLE_NAME에서 SELECTABLE_COLUMNS 선택

예시 2.회사의 부서 번호와 부서 이름에 대한 데이터가 각각 포함된 Org 테이블에서 Depnumb 및 Deptname 열을 선택해야 한다고 가정합니다. 이러한 샘플을 얻기 위한 쿼리는 다음과 같습니다.

조직에서 부서 번호, 부서 이름 선택

그리고 직원 테이블에서 직원이 근무하는 부서 번호, 이름 및 직위에 대한 데이터가 각각 포함된 DEPT, NAME, JOB 열을 선택해야 합니다.

직원에서 부서, 이름, 직업 선택

테이블의 특정 행을 선택하려면 SELECT 문과 함께 관심 있는 행에 포함된 특정 값 또는 여러 값을 나타내는 WHERE 키워드가 이미 필요합니다. 가장 간단한 조건은 비교 연산자(, =)와 IS 키워드를 사용하여 지정됩니다. 여러 조건이 있을 수 있으며 AND 키워드를 사용하여 나열됩니다. 행 선택 쿼리의 구문은 다음과 같습니다.

예시 4.이전 예에서는 DEPT라는 한 열의 값만 사용하여 테이블에서 행을 선택했습니다. 이제 38번째 부서에서 근무하고 직위가 사무원인 직원에 대한 데이터를 선택해야 한다고 가정해 보겠습니다. 이렇게 하려면 WHERE 섹션에서 AND라는 단어를 사용하여 해당 값을 나열해야 합니다.


실시예 5.커미션 규모가 무한정인 직원의 식별자와 이름을 Staff 테이블에서 선택해야 한다고 가정해 보겠습니다. 이렇게 하려면 WHERE 섹션에서 COMM - NULL 열의 값을 지정하기 전에 등호가 아닌 IS라는 단어를 입력해야 합니다.

이 쿼리는 다음 데이터를 반환합니다.


비교 기호는 선택하려는 행의 값을 나타내는 데에도 사용됩니다.

SELECT 및 IN, OR, BETWEEN, LIKE 조건자 사용

조건자(WHERE 섹션의 IN, OR, BETWEEN, LIKE 단어)를 사용하면 특정 범위의 값(IN, OR, BETWEEN) 또는 행의 값(LIKE)을 선택할 수도 있습니다. 테이블. IN, OR, BETWEEN 조건자가 포함된 쿼리의 구문은 다음과 같습니다.

LIKE 조건자가 포함된 쿼리의 구문은 다음과 같습니다.

실시예 7. Staff 테이블에서 20번 또는 84번 부서에서 근무하는 직원의 이름, 직위, 근무 연수를 선택한다고 가정합니다. 이는 다음 쿼리를 사용하여 수행할 수 있습니다.

요청 결과:


실시예 8.이제 이전 예제와 마찬가지로 Staff 테이블에서 동일한 데이터를 선택한다고 가정합니다. OR라는 단어가 포함된 쿼리는 IN이라는 단어가 포함되고 괄호 안에 관심 값이 나열되는 쿼리와 유사합니다. 요청은 다음과 같습니다:

실시예 9.동일한 테이블에서 급여가 15,000에서 17,000 사이인 직원의 이름, 직위 및 근무 연수를 선택해 보겠습니다.

요청 결과:


LIKE 조건자는 아포스트로피(") 사이의 조건자 뒤에 지정된 문자가 값에 포함된 문자열을 선택하는 데 사용됩니다.

실시예 10.동일한 테이블에서 이름이 문자 S로 시작하고 7자로 구성된 직원의 이름, 직위 및 근무 연수를 선택해 보겠습니다.

밑줄 문자(_)는 모든 문자를 의미합니다. 요청 결과:


실시예 11.이름이 문자 S로 시작하고 수량에 관계없이 다른 문자를 포함하는 직원의 이름, 직위 및 근무 연수를 동일한 테이블에서 선택해 보겠습니다.

퍼센트 기호(%)는 임의의 문자 수를 의미합니다. 요청 결과:


IN, OR, BETWEEN, LIKE 술어를 사용하여 지정된 값은 NOT이라는 단어를 사용하여 반전될 수 있습니다. 그러면 요청된 데이터는 반대의 의미를 갖게 됩니다. NOT IN (20, 84)을 사용하면 숫자 20과 84를 제외한 모든 부서에 근무하는 직원의 데이터가 표시됩니다. NOT BETWEEN 15000 AND 17000을 사용하면 급여가 아닌 직원의 데이터를 얻을 수 있습니다. NOT LIKE를 사용한 쿼리는 이름이 시작하지 않거나 NOT LIKE로 지정된 문자를 포함하지 않는 직원에 대한 데이터를 반환합니다.

SELECT 및 IN, NOT IN, BETWEEN 조건자를 사용하여 SQL 쿼리를 작성한 다음 솔루션을 살펴보세요.

데이터베이스 "Theater"가 있습니다. Play 테이블에는 제작물에 대한 데이터가 포함되어 있습니다. 팀 테이블 - 배우의 역할에 관한 것입니다. Actor 테이블은 배우에 관한 테이블입니다. 감독 테이블 - 감독에 관한 것입니다. 테이블 필드, 기본 키 및 외래 키는 아래 그림에서 볼 수 있습니다(확대하려면 왼쪽 클릭).


실시예 12.주연으로 캐스팅된 적이 없는 배우 목록을 표시합니다. 팀 테이블에서 주요 역할에 대한 데이터는 mainteam 열에 포함되어 있습니다. 역할이 주요 역할인 경우 해당 줄에 "Y"가 표시됩니다.

SELECT 및 ORDER BY - 행 정렬(순서 지정)

지금까지 설명한 SQL SELECT 쿼리는 순서에 관계없이 행을 반환했습니다. 그러나 숫자 순서, 알파벳 및 기타 기준에 따라 행을 정렬해야 하는 경우가 많습니다. 이는 ORDER BY 키워드를 사용하여 수행됩니다. 이러한 요청의 구문은 다음과 같습니다.

실시예 15.요구 사항은 Staff 테이블에서 부서 번호 84에서 근무하는 직원을 선택하고 근무 연수에 따라 오름차순으로 레코드를 정렬(순서)하는 것입니다.

ASC라는 단어는 정렬 순서가 오름차순임을 나타냅니다. 오름차순 정렬이 기본값이므로 이 단어는 선택 사항입니다. 요청 결과:


실시예 16.이전 예와 동일한 데이터를 선택하되 근무 연수를 기준으로 내림차순으로 레코드를 정렬(정렬)하도록 요구합니다.

DESC라는 단어는 정렬 순서가 내림차순임을 나타냅니다. 요청 결과:


SELECT 및 DISTINCT - 중복 행 제거

테이블 행 값이 고유로 설정되지 않은 경우 쿼리 결과에 중복된 행이 나타날 수 있습니다. 고유한 문자열만 출력해야 하는 경우가 많습니다. 이는 SELECT 문 다음에 DISTINCT 표현식을 사용하여 수행됩니다.

실시예 17.어떤 부서가 존재하는지, 번호가 30개 미만인 부서 중 어떤 직위가 있는지 알고 싶다고 가정해 보겠습니다. 이는 다음 쿼리를 사용하여 수행할 수 있습니다.

요청 결과:


SQL 하위 쿼리의 SELECT 문

지금까지 데이터가 선택되는 조건과 선택된 데이터 자체가 동일한 데이터베이스 테이블에 포함되는 SELECT 문을 사용하는 SQL 구문을 살펴보았습니다. 실제로 선택해야 할 데이터가 한 테이블에 포함되고 조건이 다른 테이블에 포함되는 경우가 종종 있습니다. 하위 쿼리가 구출되는 곳입니다. 선택 조건의 값은 역시 SELECT로 시작하는 다른 쿼리(중첩 쿼리)에서 반환됩니다. 하위 쿼리가 포함된 쿼리는 하나 이상의 행을 반환할 수 있습니다.

실시예 18.모두 동일한 ORG 및 STAFF 테이블. ID 번호 280을 가진 직원이 어느 부서에서 근무하는지, 그리고 이 부서가 어디에 있는지 알고 싶다고 가정해 보겠습니다. 그러나 부서에 대한 정보는 ORG 테이블에 저장되고 직원에 대한 정보는 STAFF 테이블에 저장됩니다. 이는 외부 SELECT가 ORG 테이블에 액세스하고 내부 SELECT가 STAFF 테이블에 액세스하는 하위 쿼리와 함께 다음 쿼리를 사용하여 수행할 수 있습니다.

요청 결과:


실시예 19.이제 급여가 13,000 미만인 직원이 어느 부서에서 근무하는지 알아내야 한다고 가정합니다(ORG 테이블에 대한 쿼리). 값 범위(IN) 및 내부 SELECT(STAFF 테이블에 대한)는 필요한 값 범위를 반환합니다.

관계형 데이터베이스 및 SQL 언어

이전 기사에서는 문제를 논의했습니다. SQL 쿼리를 기반으로 데이터베이스 테이블 “sql_training_st.mdb”의 구조를 생성하는 기술이 고려됩니다. 또한 SQL 쿼리를 사용하여 ACCESS DBMS 테이블 "sql_training_st.mdb"를 채웠습니다.

관계형 데이터베이스에서 SQL 언어는 데이터를 조작하고, 데이터베이스와 해당 구성 요소의 구조를 정의하고, 데이터베이스에 대한 사용자 액세스를 제어하고, 트랜잭션을 관리하거나 데이터베이스의 변경 사항을 관리하도록 설계되었다고 알려져 있습니다.

SQL 언어는 네 가지 그룹으로 구성됩니다.

  • 데이터 조작 언어 DML;
  • DDL 데이터 정의 언어;
  • 데이터 관리 언어 DCL;
  • TCL 트랜잭션 제어 언어.

DML 그룹에는 네 가지 주요 SQL 쿼리 유형이 포함됩니다.

  • INSERT - 테이블 끝에 하나 이상의 레코드를 추가하도록 설계되었습니다.
  • 업데이트 - 테이블 열의 기존 레코드를 변경하거나 테이블의 데이터를 수정하도록 설계되었습니다.
  • DELETE - 테이블에서 레코드를 삭제하도록 설계되었습니다.
  • SELECT - 테이블에서 데이터를 선택하도록 설계되었습니다.

데이터베이스에 대한 수정 쿼리와 관련된 처음 세 가지 유형의 SQL 쿼리(INSERT, UPDATE, DELETE)가 해당 페이지에서 논의되었습니다.

이 문서에서는 Access 데이터베이스 테이블에서 데이터를 검색하는 쿼리를 살펴보겠습니다.

Access 2003 또는 2007 데이터베이스에 저장된 정보를 검색하려면 SELECT 쿼리를 사용하여 테이블에서 데이터를 선택할 수 있습니다.

샘플링을 위해 다음과 같은 SQL 쿼리(SQL 문)를 작성해 보겠습니다. 이를 위해 View/SQL 모드 명령을 실행하여 SQL 모드를 선택합니다. 키보드에서 다음 SQL 문을 입력합니다.

선택하다 *
학생으로부터;

이 명령문은 "SELECT *" 및 "FROM Students"라는 두 개의 절로 구성됩니다. 첫 번째 절에는 SELECT 문과 식별자 *("식별자 *"는 테이블의 모든 열을 나열한다는 의미)가 포함되어 있습니다. 두 번째 절에는 FROM 문과 식별자 "Students"가 포함되어 있습니다.

FROM - SELECT 절에 지정된 필드가 포함된 학생 테이블을 정의합니다. 선택 쿼리에는 항상 SELECT와 FROM이라는 두 개의 문이 포함된다는 점에 유의해야 합니다. 선택 조건에 따라 다른 운영자가 선택 요청에 포함될 수 있습니다. 그림 1은 데이터 검색 요청의 스크린샷을 보여줍니다.


쌀. 1. 데이터를 선택하는 SQL SELECT 쿼리

이 예에서는 Students 테이블의 모든 열에서 데이터 샘플이 생성됩니다.

"Students-query1"이라는 이름으로 요청을 저장합니다. "저장" 명령을 실행하면 "탐색 영역" - "요청: Students-request1"에 개체가 나타납니다.

선택 요청을 저장한 후 "실행" 아이콘을 클릭하여 이 요청을 실행해야 합니다. "Run" 명령의 결과는 그림 1에 나와 있습니다. 2.



쌀. 2. Students 테이블의 모든 열에서 데이터 선택

실무 9호

수업 주제: SQL 쿼리를 생성합니다.

수업 목적: SQL 언어를 사용하여 쿼리를 만드는 방법을 알아보세요.

강의 계획 :

1. 선택을 위한 SQL 쿼리를 생성합니다.

2. 선택 조건을 사용하여 선택을 위한 SQL 쿼리를 생성합니다.

3. 계산을 통해 SQL 쿼리를 생성합니다.

4. 그룹화를 위한 SQL 쿼리를 생성합니다.

SQL( 구조화됨 질문 언어) – 데이터베이스에서 데이터를 생성하고 처리하기 위한 도구를 제공하는 구조화된 쿼리 언어입니다.

SQL 언어 도구를 사용하여 쿼리를 생성하려면 다음 단계를 수행해야 합니다.

    생성자를 사용하여 쿼리를 만듭니다.

· 쿼리 디자이너에서 테이블 표시 영역을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 “SQL 모드”를 선택합니다.

1. 창조SQL 선택 쿼리.

SQL을 사용하여 제품과 해당 제품에 대한 주문을 선택하는 간단한 쿼리를 만들어 보겠습니다.

· SQL 쿼리 편집기를 엽니다.

· 편집기 창에서 다음 요청 절차를 입력합니다.

SELECT 주문.[주문 코드], 제품.[제품 이름], 주문. 수량, 제품. 가격, 제품.[단위], 주문.[주문 날짜]

FROM Products INNER JOIN 주문 ON 제품.[제품 코드] = 주문. 제품;

· 쿼리를 SQL 가져오기로 저장합니다.

· 요청이 올바르게 작동하는지 확인하십시오.

이 작업의 구문을 살펴보겠습니다.

SELECT는 이 작업이 쿼리(거의 모든 쿼리가 이 단어로 시작함)임을 데이터베이스에 알려주는 문입니다. SELECT 문 다음에는 일반적으로 쿼리에 포함될 필드 목록이 시작됩니다. 예를 들어 SELECT Orders.[Order code] 레코드는 해당 필드가 요청에 포함된다는 의미입니다. 주문 코드'주문' 테이블에서 필드명에 공백이 포함된 경우에는 대괄호로 표시해야 합니다.

FROM – 데이터 소스를 담당하는 운영자입니다. 테이블 간의 관계를 지정해야 하는 경우 INNER JOIN 연산자를 사용해야 합니다.

INNER JOIN - 두 테이블의 연결 필드에 동일한 값이 포함된 경우 두 테이블의 레코드를 조인합니다. 예를 들어, “FROM Products INNER JOIN Orders ON Products. [제품 코드] = 주문. 제품'은 이 요청 절차에서 해당 필드를 의미합니다. 제품 코드"제품" 테이블에는 해당 필드에 대한 레코드 소스가 있습니다. 제품"주문" 테이블

운동:제품을 구매한 고객에 대한 정보를 표시할 수 있는 SQL 쿼리를 만듭니다.

2. 선택 조건을 사용하여 선택을 위한 SQL 쿼리를 생성합니다.

SQL 언어를 사용하여 3개 이상의 상품을 판매한 직원에 대한 정보를 표시할 수 있는 쿼리를 생성하겠습니다.

선택 조건이 포함된 쿼리를 생성하려면 WHERE 절을 사용하세요.

· 다음 필드를 포함하는 선택을 위한 SQL 쿼리를 만듭니다. 성명직원, 주문 코드어느 것을 섬겨야 할지, 수량.올바르게 작동하는지 확인하세요.

· 이제 선택 조건을 추가해야 합니다. SQL 편집기를 열고 쿼리 프로시저 끝에 “WHERE (((Orders.Quantity)>3))”를 추가합니다.

· 쿼리를 “Sampling with SQL Selection Condition”이라는 이름으로 저장합니다. 요청을 확인하세요.

운동:가격이 중단되지 않았으며 가격이 20화폐 단위를 초과하지 않는 모든 제품을 선택하는 SQL 쿼리를 생성합니다.

3. 계산을 사용하여 SQL 쿼리 만들기

고객의 성, 제품명, 주문금액(가격*수량)을 조회할 수 있는 SQL 쿼리를 작성해 보겠습니다.

요청 절차는 다음과 같습니다.

클라이언트를 선택하세요. 성, 제품 [제품명], 주문! 수량*제품! 가격 AS [주문금액]

FROM Products INNER JOIN (고객 INNER JOIN 주문 ON 고객.[고객 코드]=주문.고객) ON 제품.[제품 코드]=주문. 제품;

4. 그룹화를 위한 SQL 쿼리 생성

각 고객이 주문한 총 상품 수량을 확인할 수 있는 쿼리를 만들어 보겠습니다.

GROUP BY 연산자는 레코드를 그룹화하는 데 사용됩니다.

요청 절차는 다음과 같습니다.

클라이언트를 선택하세요. 성, 합계(주문! 수량*제품! 가격) AS [주문 합계]

FROM Products INNER JOIN (고객 INNER JOIN 주문 ON 고객.[고객 코드] = 주문. 고객) ON 제품.[제품 코드] = 주문. 제품

클라이언트별 그룹. 성;

통제 질문:

1. SQL이란 무엇입니까?

2. SQL 쿼리를 생성하는 방법은 무엇입니까?

3. SQL 언어의 구조적 구성 요소.

4. 주요 SQL 연산자를 나열합니다.

5. SELECT, WHERE, FROM, INNER JOIN, GROUP BY 연산자에 대한 일반 정보입니다.

높은 성취자를 위한 과제:"제품" 테이블에서 가격이 3화폐 단위 미만인 모든 레코드를 삭제할 수 있는 SQL 쿼리를 직접 만들어 보세요.

결론:이 작업 과정에서 SQL 쿼리를 생성하는 주요 방법과 기술이 연구되었습니다. 쿼리 언어의 구조적 구성 요소를 검토하고 연산자를 사용하는 구문을 설명했습니다.

프로그래밍이 처음이신가요? 아니면 과거에 단순히 SQL을 배우지 않으셨나요? 그러면 모든 개발자가 결국 이 쿼리 언어를 알아야 하는 필요성에 직면하게 되므로 올바른 주소를 찾아오셨습니다. 당신이 주요 데이터베이스 디자이너가 아닐 수도 있지만, 그들과 함께 작업하는 것을 피하는 것은 거의 불가능합니다. 기본 SQL 쿼리 구문에 대한 이 간략한 개요가 관심 있는 개발자와 이를 필요로 하는 모든 사람에게 도움이 되기를 바랍니다.

SQL 데이터베이스란 무엇입니까?

구조적 쿼리 언어(Structured Query Language)는 ANSI에서 지원하는 데이터베이스 통신 표준입니다. 최신 버전은 SQL-99이지만 새로운 표준인 SQL-200n이 이미 개발 중입니다. 대부분의 데이터베이스는 ANSI-92 표준을 엄격하게 준수합니다. 보다 현대적인 표준을 도입하는 것에 대해 많은 논의가 있었지만 상용 데이터베이스 공급업체는 저장된 데이터를 저장하기 위한 자체적인 새로운 개념을 개발하여 이 표준에서 벗어나고 있습니다. 거의 모든 단일 데이터베이스는 ANSI 표준과 매우 유사하지만 고유한 구문 집합을 사용합니다. 대부분의 경우 이 구문은 기본 표준의 확장이지만 이 구문이 데이터베이스마다 다른 결과를 생성하는 경우도 있습니다. 특히 예상치 못한 결과가 나오는 경우 항상 데이터베이스 문서를 검토하는 것이 좋습니다.

SQL을 처음 사용하는 경우 이해해야 할 몇 가지 기본 개념이 있습니다.

일반적으로 "SQL 데이터베이스"는 관계형 데이터베이스 관리 시스템(RDBMS)의 일반적인 이름입니다. 일부 시스템의 경우 "데이터베이스"는 다른 유사한 구조와 본질적으로 분리된 부분인 테이블, 데이터 또는 구성 정보 그룹을 의미하기도 합니다. 이 경우 각 SQL 데이터베이스 설치는 여러 데이터베이스로 구성될 수 있습니다. 다른 시스템에서는 이를 테이블이라고 합니다.

테이블은 데이터 행을 포함하는 열로 구성된 데이터베이스 구조입니다. 일반적으로 테이블은 관련 정보를 포함하기 위해 생성됩니다. 동일한 데이터베이스 내에 여러 테이블을 생성할 수 있습니다.

각 열은 직원 식별 번호, 키, 자동차 색상 등과 같은 객체의 속성 또는 속성 집합을 나타냅니다. 필드라는 용어는 열을 참조하는 데 사용되는 경우가 많으며 "이름 필드에서"와 같이 이름이 뒤따릅니다. 행 필드는 테이블의 최소 요소입니다. 테이블의 각 열에는 특정 이름, 데이터 유형 및 크기가 있습니다. 열 이름은 테이블 내에서 고유해야 합니다.

각 행(또는 레코드)은 특정 개체의 속성 모음을 나타냅니다. 예를 들어 행에는 직원의 식별 번호, 급여, 생년월일 등이 포함될 수 있습니다. 테이블 행에는 이름이 없습니다. 특정 행에 액세스하려면 사용자는 해당 행을 고유하게 식별하는 일부 속성(또는 속성 집합)을 지정해야 합니다.

데이터 작업 시 수행되는 가장 중요한 작업 중 하나는 데이터베이스에 저장된 정보를 검색하는 것입니다. 이렇게 하려면 사용자가 쿼리를 실행해야 합니다.

이제 데이터베이스 내에서 데이터를 조작하는 데 초점을 맞춘 데이터베이스 쿼리의 주요 유형을 살펴보겠습니다. 우리의 목적을 위해 모든 예제는 모든 환경에 맞게 표준 SQL로 제공됩니다.

데이터 쿼리 유형

SQL에는 소위 DML(데이터 조작 언어)에 해당하는 네 가지 주요 데이터 쿼리 유형이 있습니다.
SELECT - 테이블에서 행을 선택합니다.
INSERT - 테이블에 행을 추가합니다.
UPDATE – 테이블의 행을 변경합니다.
DELETE – 테이블의 행을 삭제합니다.

이러한 각 쿼리에는 데이터에 대해 일부 작업을 수행하는 데 사용되는 다양한 연산자와 함수가 있습니다. SELECT 쿼리에는 가장 많은 옵션이 있습니다. JOIN 및 UNION과 같이 SELECT와 함께 사용되는 추가 쿼리 유형도 있습니다. 그러나 지금은 기본 쿼리에만 중점을 둘 것입니다.

SELECT 쿼리를 사용하여 필요한 데이터 선택

데이터베이스에 저장된 정보를 검색하려면 SELECT 쿼리가 사용됩니다. 동시에 여러 테이블에서 선택할 수 있는 디자인이 있지만 이 쿼리의 기본 효과는 단일 테이블로 제한됩니다. 특정 열에 대한 모든 데이터 행을 가져오려면 다음과 같은 쿼리가 사용됩니다.
SELECT 컬럼1, 컬럼2 FROM 테이블_이름;

와일드카드 문자 "*"를 사용하여 테이블의 모든 열을 가져올 수도 있습니다.
SELECT * FROM 테이블_이름;

이는 특정 WHERE 절을 사용하여 데이터를 선택할 때 유용할 수 있습니다. 다음 쿼리는 "column1"에 값 "3"이 포함된 모든 행의 모든 ​​열을 반환합니다.
SELECT * FROM table_name WHERE 컬럼1=3;

"="(같음) 외에도 다음과 같은 조건 연산자가 있습니다.

조건문:
= 같음
<>같지 않음
> 더보기
< Меньше
>= 이상
<= Меньше или равно

또한 BITWEEN 및 LIKE 조건을 사용하여 WHERE 조건은 물론 AND 및 OR 연산자의 조합과 비교할 수도 있습니다.
SELECT * FROM table_name WHERE ((Age >= 18) AND (LastName BETWEEN 'Ivanov' AND 'Sidorov')) OR Company LIKE '%Motorola%';

러시아어 번역의 의미: age 열의 값이 18보다 크거나 같고 LastName 열의 값이 Ivanov에서 Sidorov까지의 알파벳 범위 또는 값인 table_name 테이블에서 모든 열을 선택합니다. 회사 열의 회사는 Motorola입니다.

INSERT 쿼리를 사용하여 새 데이터 삽입

INSERT 쿼리는 새로운 데이터 행을 생성하는 데 사용됩니다. 기존 데이터 또는 빈 행 필드를 업데이트하려면 UPDATE 쿼리를 사용해야 합니다.

INSERT 쿼리 구문 예:
INSERT INTO 테이블_이름(열1, 열2, 열3) VALUES('데이터1', '데이터2', '데이터3');

테이블 열이 나타나는 순서대로 모든 값을 삽입하려는 경우 열 이름을 생략할 수 있지만 가독성을 위해 바람직합니다. 또한 열을 나열하는 경우 입력한 값이 해당 순서와 일치하면 데이터베이스에 나타나는 순서대로 나열할 필요가 없습니다. 정보가 포함되지 않은 열을 나열하면 안 됩니다.

데이터베이스에 이미 존재하는 정보는 매우 유사한 방식으로 변경됩니다.

UPDATE 쿼리 및 WHERE 조건

UPDATE는 기존 값을 변경하거나 행의 필드를 해제하는 데 사용되므로 새 값은 기존 데이터 유형과 일치하고 허용 가능한 값을 제공해야 합니다. 모든 행의 값을 변경하지 않으려면 WHERE 절을 사용해야 합니다.
UPDATE table_name SET 컬럼1 = '데이터1', 컬럼2 = '데이터2' WHERE 컬럼3 = '데이터3';

변경하려는 열을 포함하여 모든 열에서 WHERE를 사용할 수 있습니다. 이는 하나의 특정 값을 다른 값으로 대체해야 할 때 사용됩니다.
UPDATE table_name SET FirstName = 'Vasily' WHERE FirstName = 'Vasily' AND LastName = 'Pupkin';

조심하세요! DELETE 쿼리는 전체 행을 삭제합니다.

DELETE 쿼리는 데이터베이스에서 행을 완전히 삭제합니다. 단일 필드를 삭제하려면 UPDATE 요청을 사용하고 이 필드를 프로그램에서 NULL과 유사한 값으로 설정해야 합니다. DELETE 쿼리를 WHERE 절로 제한하도록 주의하세요. 그렇지 않으면 테이블의 전체 내용이 손실될 수 있습니다.
DELETE FROM table_name WHERE 컬럼1 = '데이터1';

데이터베이스에서 행이 삭제되면 복원할 수 없으므로 "IsActive"라는 이름의 열을 사용하는 것이 좋습니다. 이를 null로 변경할 수 있습니다. 해당 행은 잠겨 있습니다.

이제 SQL 쿼리의 기본 사항을 알았습니다.

SQL은 데이터베이스 언어이며 데이터 쿼리에 사용되는 가장 중요하고 기본적인 명령을 다루었습니다. 다루지 않은 핵심 개념(예: SUM 및 COUNT)이 많이 있지만 위에 나열한 몇 가지 명령을 사용하면 SQL이라는 놀라운 쿼리 언어를 활성화하고 더 깊이 파고들 수 있습니다.