SQL 언어의 기능. 모든 프로그래머가 알아야 할 기본 SQL 명령 집계 및 스칼라 함수

대부분의 프로그래밍 언어와 마찬가지로 SQL에도 데이터 조작 기능이 있습니다. SQL 문과 달리 함수는 모든 유형의 DBMS에 대해 표준화되어 있지 않습니다. 즉, 데이터에 대해 동일한 작업을 수행하기 위해 서로 다른 DBMS에는 고유한 함수 이름이 있습니다. 이는 하나의 DBMS에 작성된 쿼리 코드가 다른 DBMS에서는 작동하지 않을 수 있다는 것을 의미하며, 향후에는 이 점을 고려해야 합니다. 무엇보다도 이는 텍스트 값 처리, 데이터 유형 변환 및 날짜 조작 기능과 관련이 있습니다.

일반적으로 DBMS는 다음과 같은 표준 함수 유형 세트를 지원합니다.

  • 텍스트 처리에 사용되는 텍스트 기능(텍스트의 문자 일부 선택, 텍스트 길이 결정, 문자를 대문자 또는 소문자로 변환...)
  • 수치 함수. 숫자 값에 대한 수학 연산을 수행하는 데 사용됩니다.
  • 날짜 및 시간 기능(날짜 및 시간 조작, 날짜 사이의 기간 계산, 날짜의 정확성 확인 등)
  • 통계 기능(최대/최소값, 평균값, 수량 계산 및 합계 계산용...)
  • 시스템 기능(DBMS, 사용자 등에 대한 각종 서비스 정보 제공)

1. 텍스트 처리를 위한 SQL 함수

Access DBMS의 SQL 구현에는 텍스트 처리를 위한 다음 기능이 있습니다.

함수를 사용하여 제품 이름을 대문자로 변환해 보겠습니다. U케이스():

선택하다 제품, UCase(제품) AS 제품_UCase FROM Sumproduct

함수를 사용하여 텍스트의 처음 세 문자를 선택해 보겠습니다. 왼쪽():

선택하다 제품, LEFT(제품, 3) AS 제품_LEFT FROM Sumproduct

2. 숫자 처리를 위한 SQL 함수

숫자 처리 기능은 숫자 데이터에 대한 수학적 연산을 수행하도록 설계되었습니다. 이러한 함수는 대수 및 기하학적 계산을 위한 것이므로 날짜 및 시간 함수보다 훨씬 덜 자주 사용됩니다. 그러나 숫자 함수는 모든 SQL 버전에서 가장 표준화되어 있습니다. 숫자 함수 목록을 살펴보겠습니다.

몇 가지 기본 기능만 나열했지만 언제든지 DBMS 설명서를 참조하여 자세한 설명과 함께 지원되는 전체 기능 목록을 확인할 수 있습니다.

예를 들어, 열에 있는 숫자의 제곱근을 구하는 쿼리를 작성해 보겠습니다. 기능을 사용하여 SQR():

선택하다 금액, SQR(금액) AS Amount_SQR FROM Sumproduct

3. 날짜 및 시간 처리를 위한 SQL 함수

날짜 및 시간 조작 함수는 SQL에서 가장 중요하고 자주 사용되는 함수 중 하나입니다. 데이터베이스는 날짜와 시간 값을 특별한 형식으로 저장하기 때문에 추가적인 처리 없이 바로 사용할 수는 없다. 각 DBMS에는 날짜 처리를 위한 고유한 기능 세트가 있지만 안타깝게도 이를 다른 플랫폼 및 SQL 구현으로 전송할 수는 없습니다.

날짜와 시간을 처리하는 일부 함수 목록 DBMS 접속:

함수가 어떻게 작동하는지 예를 살펴보겠습니다. 날짜부분():

선택하다 Date1, DatePart("m", Date1) AS Month1 FROM Sumproduct

기능 날짜부분()날짜의 필수 부분을 표시할 수 있는 추가 매개변수가 있습니다. 예제에서는 매개변수를 사용했습니다. "중", 월 번호를 표시합니다(같은 방식으로 연도를 반영할 수 있습니다. "으이이이이", 4분의 1 - "큐", 낮 - "디", 주 - "여", 시간 - "시간", 분 - "N", 초 - "에스"등.).

4. SQL 통계 함수

통계 기능을 사용하면 샘플링하지 않고도 데이터를 준비할 수 있습니다. 이러한 기능이 포함된 SQL 쿼리는 다양한 보고서를 분석하고 생성하는 데 자주 사용됩니다. 이러한 선택의 예로는 테이블의 행 수 결정, 특정 필드에 대한 값의 합계 얻기, 지정된 테이블 열에서 최대/최소 또는 평균 값 검색 등이 있습니다. 또한 통계 함수는 특별한 서면 변경 없이 모든 DBMS에서 지원된다는 점에 유의하세요.

의 통계 함수 목록 DBMS 접속:

세다():

선택하다 COUNT(*) AS Count1 FROM Sumproduct- 테이블의 모든 행 수를 반환합니다.

선택하다 COUNT(제품) AS Count2 FROM Sumproduct- 필드에 비어 있지 않은 모든 줄의 수를 반환합니다. 제품

열에서 값 하나를 의도적으로 제거했습니다. 제품두 쿼리의 작동 방식의 차이점을 보여줍니다.

기능 사용 예 합집합():

선택하다 SUM(수량) AS Sum1 FROM Sumproduct WHERE 월 = "4월"

이 요청에 우리는 4월에 판매된 총 상품 수량을 반영했습니다.

선택하다 SUM(수량*금액) AS Sum2 FROM Sumproduct

보시다시피, 통계 함수에서는 표준 수학 연산자를 사용하여 여러 열에 대한 계산을 수행할 수 있습니다.

기능 사용 예 최소():

선택하다 MIN(금액) AS Min1 FROM Sumproduct

기능 사용 예 최대():

선택하다 MAX(금액) AS Max1 FROM Sumproduct

기능 사용 예 평균():

선택하다 AVG(금액) AS Avg1 FROM Sumproduct

이 기사에서는 SQL 언어의 함수 유형을 살펴볼 수 있습니다. 함수는 집계 또는 스칼라일 수 있습니다. 의 시작하자...

세다()

세다()- 테이블의 레코드(행) 개수를 반환하는 함수입니다. 컬럼을 지정하는 함수를 작성하면 NULL 레코드를 제외한 특정 컬럼의 레코드 개수가 반환됩니다. 함수 구문:

COUNT(열_이름);

마스크 "*"를 사용하여 함수를 작성하면 테이블의 모든 레코드 수가 반환됩니다. 통사론:

세다(*);

예를 살펴보겠습니다. 다음과 같은 대학 테이블이 있습니다.

ID 대학이름 재학생 학부 교수 위치 대지
1 페름 주립 국립 연구 대학교 12400 12 1229 파마 psu.ru
2 상트페테르부르크 주립대학교 21300 24 13126 상트 페테르부르크 spbu.ru
3 노보시비르스크 주립대학교 7200 13 1527 노보시비르스크 nsu.ru
4 모스크바 주립대학교 35100 39 14358 모스크바 msu.ru
5 고등경제대학 20335 12 1615 모스크바 hse.ru
6 우랄연방대학교 57000 19 5640 예 카테 린 부르크 urfu.ru
7 국립연구원자력대학교 8600 10 936 모스크바 mephi.ru

예 1. COUNT 함수를 사용하여 테이블 레코드 수를 인쇄합니다.

개수 선택(*)
대학에서; // 7을 인쇄합니다.

예 2. COUNT 함수를 사용하여 모스크바에 위치한 대학 수 찾기:

SELECT COUNT(*) 대학 WHERE 위치 = "모스크바"; // 3을 인쇄합니다.

평균()

평균()- 열의 평균값을 반환하는 함수입니다. 이 함수는 숫자 열에만 적용 가능합니다. 통사론:

AVG(열_이름);

예를 살펴보겠습니다. 대학 테이블을 살펴보겠습니다. 예. AVG 함수를 사용하여 모든 대학의 평균 학생 수(학생)를 찾습니다.

대학에서 AVG(학생)를 선택합니다. // 23133을 인쇄합니다.

최소()

최소()- 열의 최소값을 반환하는 함수입니다. 이 함수의 구문은 다음과 같습니다.

MIN(컬럼_이름);

예를 살펴보겠습니다. 대학 테이블을 살펴보겠습니다. 예. MIN 함수를 사용하여 Professores 열의 최소값을 찾습니다.

대학에서 MIN(교수)을 선택하세요. // 936을 인쇄합니다.

최대()

최대()- 테이블 컬럼의 최대값을 반환하는 함수. 이 함수의 구문은 다음과 같습니다.

MAX(열_이름);

예를 살펴보겠습니다. 대학 테이블을 살펴보겠습니다. 예. MAX 함수를 사용하여 Students 열의 최대값을 찾습니다.

대학에서 최대(학생)를 선택하세요. // 57000을 출력합니다.

합집합()

합집합()- 테이블 컬럼의 값의 합을 반환하는 함수. 숫자 열에만 사용됩니다. 함수 구문:

SUM(표현식);

매개변수 모두- 기본 옵션입니다. 모든 라인의 합이 계산됩니다. 매개변수를 지정할 때 별개의- 고유한 값만 계산됩니다.

예를 살펴보겠습니다. 대학 테이블을 살펴보겠습니다. 예 1. SUM 함수를 사용하여 테이블에서 모든 대학의 학생 수를 찾습니다.

대학에서 SUM(학생)을 선택합니다. // 161935를 인쇄합니다.

예 2. SUM 함수를 사용하여 Faculties 열의 고유 값을 계산합니다.

대학에서 SUM(고유한 교수진)을 선택합니다. // 117이 표시됩니다(교수 열에는 ID 1과 5 아래에 2개의 동일한 레코드가 있습니다. ID 5 아래 열의 값은 합산되지 않습니다.)

둥근()

둥근()- 십진수 반올림 기능. 숫자 열이나 임의의 실수에만 작동합니다. 함수 구문:

ROUND(표현식, 길이);

표현- 열 이름과 실수. 길이- 숫자의 반올림 정밀도를 나타냅니다.

예를 살펴보겠습니다. Planets 테이블을 살펴보겠습니다.

ID 행성 이름 반지름 썬시즌 개봉연도 가지고있는 반지 여는 사람
1 화성 3396 687.58 1659 아니요 크리스티안 호이겐스
2 토성 60268 10759.22 - -
3 해왕성 24764 60190.91 1846 존 카우치 아담스
4 수은 2439 115.88 1631 아니요 니콜라우스 코페르니쿠스
5 금성 6051 243.56 1610 아니요 갈릴레오 갈릴레이

예. ROUND 함수를 사용하여 SunSeason 열을 소수점 이하 한 자리로 반올림합니다.

SELECT ROUND(SunSeason, 1) FROM Planets;

유케이스()

유케이스()- 하나 이상의 열 값을 대문자로 반환하는 함수입니다. MS SQL Server DBMS에서 UCASE()와 유사한 것은 동일한 구문을 사용하는 UPPER 함수입니다.

UCASE(열_이름)

예를 살펴보겠습니다. Planets 테이블을 살펴보겠습니다. 예. UCASE 함수를 사용하여 고리가 없는 행성의 이름을 대문자로 인쇄합니다.

HaveRings = "No"인 행성에서 UCASE(PlanetName)를 선택하세요.

LCASE()

LCASE()- 하나 이상의 열 값을 소문자로 반환하는 함수입니다. MS SQL Server DBMS에서 SQL LCASE() 연산자와 유사한 것은 동일한 구문을 사용하는 LOWER 함수입니다.

LCASE(컬럼_이름);

예를 살펴보겠습니다. Planets 테이블을 살펴보겠습니다. 예. LCASE 함수를 사용하여 고리가 있는 행성의 이름을 소문자로 인쇄합니다.

HaveRings = "예"인 행성에서 LCASE(PlanetName)를 선택하세요.

렌()

렌()- 레코드 필드에 있는 값의 길이를 반환하는 함수입니다. 이 함수는 개수에서 후행 공백을 제외합니다. 통사론:

LEN(컬럼_이름);

예를 살펴보겠습니다. Planets 테이블을 살펴보겠습니다. 예. LEN 함수를 사용하여 행성의 발견자(Opener)와 그가 발견한 행성 이름의 길이를 인쇄합니다.

SELECT 오프너, LEN(PlanetName) FROM Planets;

중간()

중간()- 테이블 텍스트 필드에 특정 개수의 문자를 표시하는 기능입니다. 함수 구문:

MID(컬럼_이름,시작 [,길이]);

매개변수 시작시작 문자의 위치를 ​​지정합니다. 매개변수 길이 start 매개변수에 지정된 위치부터 출력할 문자 수를 설정합니다.

예를 살펴보겠습니다. 이전 대학 테이블을 살펴보겠습니다. 예. MID 함수를 사용하여 도시 이름(위치)의 처음 3자를 인쇄합니다.

SELECT MID(위치, 1, 3) FROM 대학;

지금()

지금()- 시스템 시간과 날짜를 반환하는 함수입니다. 함수 구문:

예를 살펴보겠습니다. 이전 대학 테이블을 살펴보겠습니다. 예. 각 대학에서 현재 몇 명의 학생이 공부하고 있는지 알아보세요. NOW 함수를 사용하여:

SELECT UniversityName, Students, NOW() AS CurDate FROM Universities;

자료를 통합하려면 각 기능의 예를 직접 수행하십시오. 궁금한 점이 있으시면 댓글에 적어주시면 확실히 답변해 드리겠습니다.

이 튜토리얼에서는 다음 방법을 배우게 됩니다. SQL Server에서 함수 생성 및 삭제(Transact-SQL) 구문과 예제가 포함되어 있습니다.

설명

SQL Server에서 함수는 매개 변수를 전달하고 값을 반환할 수 있는 저장된 프로그램입니다.

함수 생성

SQL Server(Transact-SQL)에서 고유한 함수를 만들 수 있습니다. 좀 더 자세히 살펴보겠습니다.

통사론

SQL Server(Transact-SQL)의 함수 구문:

CREATE FUNCTION function_name
([ @parameter [ AS ] 데이터 유형
[=기본값] [읽기 전용]
, @parameter [ AS ] 데이터 유형
[ = 기본값 ] [ 읽기 전용 ] ]
반환 return_datatype
[ 와 ( 암호화
| 스키마 바인딩
| NULL 입력 시 NULL을 반환합니다.
| NULL 입력 시 호출됨
| EXECUTE AS 절 ]
[처럼]
시작하다
실행 파일_섹션
RETURN 반환_값
끝;

매개변수 또는 인수

Schema_name은 이 함수가 속한 스키마의 이름입니다.
function_name은 SQL Server의 함수 이름입니다.
@parameter - 함수에 전달되는 하나 이상의 매개변수입니다.
type_schema_name은 해당되는 경우 데이터 유형을 소유하는 스키마입니다.
datatype — @parameter 의 데이터 유형입니다.
default는 @parameter 매개변수에 할당할 기본값입니다.
READONLY - 이는 함수가 @parameter를 덮어쓸 수 없음을 의미합니다.
return_datatype — 함수 반환 값의 데이터 유형입니다.
암호화 - 이는 함수의 소스가 SQL Server 시스템 뷰에 일반 텍스트로 저장되지 않음을 의미합니다.
SCHEMABINDING - 이는 기본 개체를 수정하여 함수에 영향을 미칠 수 없음을 의미합니다.
RETURNS NULL ON NULL INPUT - 이는 매개변수가 NULL인 경우 함수를 실행할 필요 없이 함수가 NULL을 반환한다는 의미입니다.
CALL ON NULL INPUT - 매개변수가 NULL인 경우에도 함수가 실행된다는 의미입니다.
EXECUTE AS - 함수 실행을 위한 보안 컨텍스트를 설정합니다.
return_value는 함수에서 반환된 값입니다.

SQL Server(Transact-SQL)에서 함수를 만드는 예를 살펴보겠습니다.
다음은 함수의 간단한 예입니다.

Transact-SQL

CREATE FUNCTION ReturnSite (@site_id INT) RETURNS VARCHAR(50) AS BEGIN DECLARE @site_name VARCHAR(50); IF @site_id< 10 SET @site_name = "yandex.com"; ELSE SET @site_name = "google.com"; RETURN @site_name; END;

함수 만들기 ReturnSite

(@site_id 정수)

VARCHAR 반환(50 )

시작하다

DECLARE @site_name VARCHAR(50);

IF@사이트_ID< 10

SET @ 사이트_이름 = "yandex.com" ;

또 다른

SET @site_name = "google.com" ;

RETURN @ 사이트_이름 ;

끝 ;

이 기능을 ReturnSite라고 합니다. 여기에는 INT 데이터 유형인 @site_id라는 매개변수가 하나 있습니다. 이 함수는 RETURNS 절에 지정된 VARCHAR(50) 값을 반환합니다.
그런 다음 이와 같이 새 ReturnSite 함수를 참조할 수 있습니다.

마지막 업데이트: 2017년 7월 29일

다음 함수를 사용하여 T-SQL에서 문자열 작업을 할 수 있습니다.

    LEN: 한 줄의 문자 수를 반환합니다. 매개변수로 길이를 찾아야 하는 함수에 문자열이 전달됩니다.

    SELECT LEN("애플") -- 5

    LTRIM: 문자열에서 선행 공백을 제거합니다. 문자열을 매개변수로 사용합니다.

    SELECT LTRIM("사과")

    RTRIM: 문자열에서 후행 공백을 제거합니다. 문자열을 매개변수로 사용합니다.

    SELECT RTRIM("사과")

    CHARINDEX: 문자열에서 하위 문자열이 처음으로 발견되는 인덱스를 반환합니다. 하위 문자열이 첫 번째 매개변수로 전달되고, 검색할 문자열이 두 번째 매개변수로 전달됩니다.

    SELECT CHARINDEX("pl", "Apple") -- 3

    PATINDEX: 문자열에서 특정 패턴이 처음 나타나는 인덱스를 반환합니다.

    SELECT PATINDEX("%p_e%", "애플") -- 3

    왼쪽: 줄의 시작 부분에서 지정된 수의 문자를 잘라냅니다. 함수의 첫 번째 매개변수는 문자열이고 두 번째 매개변수는 문자열의 시작 부분에서 잘라야 하는 문자 수입니다.

    SELECT LEFT("Apple", 3) -- 앱

    오른쪽: 문자열 끝에서 지정된 수의 문자를 잘라냅니다. 함수의 첫 번째 매개변수는 문자열이고 두 번째 매개변수는 문자열의 시작 부분에서 잘라야 하는 문자 수입니다.

    SELECT RIGHT("Apple", 3) -- ple

    SUBSTRING: 특정 인덱스에서 시작하여 문자열에서 지정된 길이의 하위 문자열을 잘라냅니다. 함수의 첫 번째 매개변수는 문자열이고, 두 번째 매개변수는 자르기 시작 인덱스이고, 세 번째 매개변수는 잘라낼 문자 수입니다.

    SELECT SUBSTRING("갤럭시 S8 플러스", 8, 2) -- S8

    REPLACE: 문자열 내의 한 하위 문자열을 다른 하위 문자열로 바꿉니다. 함수의 첫 번째 매개변수는 문자열이고, 두 번째 매개변수는 대체될 하위 문자열이고, 세 번째 매개변수는 대체될 하위 문자열입니다.

    SELECT REPLACE("갤럭시 S8 플러스", "S8 플러스", "노트 8") -- 갤럭시 노트 8

    REVERSE : 문자열을 반대로 바꿉니다.

    역방향 선택("123456789") -- 987654321

    CONCAT : 두 문자열을 하나로 연결합니다. 매개변수로 연결해야 하는 2개 이상의 문자열을 허용합니다.

    SELECT CONCAT("Tom", " ", "Smith") -- 톰 스미스

    LOWER : 문자열을 소문자로 변환합니다.

    SELECT LOWER("사과") -- 사과

    UPPER : 문자열을 대문자로 변환합니다.

    SELECT UPPER("사과") -- 사과

    SPACE: 지정된 수의 공백을 포함하는 문자열을 반환합니다.

예를 들어 테이블을 살펴보겠습니다.

CREATE TABLE 제품(Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, 제조업체 NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL);

그리고 데이터를 검색할 때 문자열 함수를 사용합니다.

SELECT UPPER(LEFT(Manufacturer,2)) AS 약어, CONCAT(ProductName, " - ", Manufacturer) AS FullProdName FROM Products ORDER BY 약어

SQL 언어 표준은 1992년에 채택되었으며 오늘날에도 여전히 사용되고 있습니다. 물론 일부 제조업체는 표준에 대한 자체 해석을 사용합니다. 그러나 모든 시스템에는 여전히 주요 구성 요소인 SQL 문이 있습니다.

소개

SQL 문을 사용하여 추가 분석 및 표시를 위해 값과 테이블을 관리하고 얻습니다. 이는 시스템이 데이터로 수행할 작업을 이해하는 데 사용되는 키워드 집합입니다.

SQL 문의 여러 범주가 정의됩니다.

  • 데이터베이스 객체 정의
  • 가치 조작;
  • 보호 및 통제;
  • 세션 매개변수;
  • 데이터베이스에 관한 정보;
  • 정적 SQL;
  • 동적 SQL.

데이터 조작을 위한 SQL 문

끼워 넣다. 기존 테이블에 행을 삽입합니다. 이는 특정 조건에 의해 정의된 하나 또는 여러 값에 사용될 수 있습니다. 예를 들어:

테이블명(컬럼명 1, 컬럼명 2)

VALUES(값 1, 값 2).

여러 값에 대해 INSERT 문을 사용하려면 다음 구문을 사용합니다.

테이블 이름 1(컬럼 이름 1, 컬럼 이름 2)

SELECT 컬럼명 1, 컬럼명 2

FROM 테이블 이름 2

WHERE 테이블 이름 2.열 이름 1>2

이 쿼리는 테이블 2에서 열 1의 2보다 큰 모든 데이터를 선택하여 첫 번째 데이터에 삽입합니다.

업데이트. 이름에서 알 수 있듯이 이 SQL 쿼리 문은 특정 기능을 기반으로 기존 테이블의 데이터를 업데이트합니다.

업데이트 테이블 이름 1

SET 열 이름 2 = "Vasily"

WHERE 테이블 이름 1.열 이름 1 = 1

이 구성은 첫 번째 열에서 숫자 1이 나오는 모든 줄에 Vasily 값을 채웁니다.

테이블의 데이터입니다. 조건을 지정하거나 모든 줄을 제거할 수 있습니다.

DELETE FROM 테이블 이름

WHERE 테이블 이름.열 이름 1 = 1

위 쿼리는 첫 번째 열의 값이 1인 모든 데이터를 데이터베이스에서 제거합니다. 전체 테이블을 지우는 방법은 다음과 같습니다.

SELECT 문

SELECT의 주요 목적은 특정 조건에 따라 데이터를 선택하는 것입니다. 그의 작업 결과는 항상 선택된 데이터가 포함된 새 테이블입니다. MS 연산자는 다양한 쿼리에 사용될 수 있습니다. 따라서 이와 함께 다른 관련 키워드를 고려할 수 있습니다.

특정 테이블의 모든 데이터를 선택하려면 "*" 기호를 사용하세요.

FROM 테이블 이름 1

이 쿼리의 결과는 표 1의 정확한 복사본이 됩니다.

그리고 여기서는 테이블 1의 열 1에서 2보다 큰 모든 값을 검색하는 WHERE 조건을 사용하여 선택이 이루어집니다.

FROM 테이블 이름 1

WHERE 테이블 이름 1.열 이름 1 > 2

특정 열만 필요하도록 선택 항목을 지정할 수도 있습니다.

SELECT 테이블 이름 1.컬럼 이름 1

FROM 테이블 이름 1

이 쿼리의 결과는 열 1의 값을 가진 모든 행이 됩니다. MS SQL 문을 사용하면 특정 값을 즉시 대체, 계산 및 대체하여 자신만의 테이블을 만들 수 있습니다.

테이블 이름 1.컬럼 이름 1

테이블 이름 1.컬럼 이름 2

테이블명 1.컬럼명 3

테이블명 1.컬럼명 2 * 테이블명 1.컬럼명 3 AS SUMMA

FROM 테이블 이름 1

겉보기에는 복잡해 보이는 이 쿼리는 표 1의 모든 값을 검색한 다음 EQ 및 SUMMA라는 새 열을 생성합니다. 첫 번째는 "+" 기호로 채워지고 두 번째는 열 2와 3의 데이터를 곱한 것입니다. 얻은 결과는 테이블 형식으로 표시되어 작동 방식을 이해할 수 있습니다.

SELECT 문을 사용하면 어떤 기준에 따라 데이터를 즉시 정렬할 수 있습니다. 이를 위해 ORDER BY라는 단어가 사용됩니다.

테이블 이름 1.컬럼 이름 1

테이블 이름 1.컬럼 이름 2

테이블명 1.컬럼명 3

FROM 테이블 이름 1

ORDER BY 열 이름 2

결과 테이블은 다음과 같습니다.

즉, 모든 행은 2열의 값이 오름차순으로 설정되었습니다.

여러 테이블에서 데이터를 얻을 수도 있습니다. 명확성을 위해 먼저 데이터베이스에 다음과 같은 두 가지가 있다고 상상해야 합니다.

테이블 "직원"

테이블 "급여"

이제 우리는 어떻게든 이 두 테이블을 연결하여 공통 값을 얻어야 합니다. 기본 SQL 문을 사용하면 다음과 같이 할 수 있습니다.

직원.번호

직원.이름

급여.요율

급여.발생

FROM 직원, 급여

WHERE 직원.번호 = 급여.번호

여기서는 숫자로 결합된 두 개의 서로 다른 값 표 중에서 선택합니다. 결과는 다음 데이터 세트가 됩니다.

SELECT에 대해 조금 더 자세히 설명합니다. 집계 함수 사용

주요 운영자 중 한 명이 가져올 때 몇 가지 계산을 수행할 수 있습니다. 이를 위해 그는 특정 기능과 공식을 사용합니다.

예를 들어, Employees 테이블에서 레코드 수를 얻으려면 다음 쿼리를 사용해야 합니다.

N으로 개수 선택(*)

직원으로부터

결과는 하나의 값과 하나의 열이 있는 테이블입니다.

다음과 같은 쿼리를 실행하고 어떤 일이 발생하는지 확인할 수 있습니다.

SUM(급여.미수) AS SUMMA

MAX(급여.미수) AS MAX

MIN(급여. 미지급) AS MIN

AVG(급여. 미지급) AS SRED

급여에서

최종 테이블은 다음과 같습니다.

이런 식으로 데이터베이스에서 원하는 값을 선택하고 다양한 기능을 즉시 계산할 수 있습니다.

결합, 교차점 및 차이점

SQL에서 여러 쿼리 결합

직원 선택.이름

직원으로부터

WHERE 직원.번호 = 1

직원 선택.이름

FROM 직원, 급여

WHERE 급여.번호 = 1

이러한 결합을 사용하면 테이블이 호환되어야 한다는 점을 명심해야 합니다. 즉, 동일한 수의 열을 갖습니다.

SELECT 문 구문 및 처리 순서

SELECT가 가장 먼저 하는 일은 데이터를 가져올 영역을 결정하는 것입니다. 이를 위해 FROM 키워드가 사용됩니다. 정확히 무엇을 선택할지 표시되지 않은 경우.

그런 다음 SQL WHERE 절이 존재할 수 있습니다. 도움을 받아 SELECT는 테이블의 모든 행을 실행하고 데이터가 조건을 준수하는지 확인합니다.

쿼리에 GROUP BY가 포함되어 있으면 지정된 매개변수에 따라 값이 그룹화됩니다.

데이터 비교 연산자

여러 가지 유형이 있습니다. SQL에서 비교 연산자는 다양한 유형의 값을 테스트할 수 있습니다.

    "=". 짐작할 수 있듯이 두 표현의 동등성을 나타냅니다. 예를 들어 위의 예에서는 이미 WHERE Salary.Number = 1로 사용되었습니다.

    ">". 더 많은 표시. 표현식의 왼쪽 값이 더 크면 논리 TRUE가 반환되고 조건이 충족된 것으로 간주됩니다.

    «<». Знак меньше. Обратный предыдущему оператор.

    표지판 "<=» и «>=". 피연산자가 같으면 조건도 true가 된다는 점에서 단순 more and less 연산자와 다릅니다.

좋다

이 키워드는 "비슷한"으로 번역될 수 있습니다. SQL의 LIKE 연산자는 거의 동일한 방식으로 사용됩니다. 즉, 템플릿을 기반으로 쿼리를 실행합니다. 즉, 정규식을 사용하여 데이터베이스에서 데이터 선택을 확장할 수 있습니다.

예를 들어 다음 작업이 설정되었습니다. 이미 알려진 "Employees" 데이터베이스에서 이름이 "I"로 끝나는 모든 사람을 가져옵니다. 그러면 쿼리는 다음과 같이 작성할 수 있습니다.

직원으로부터

WHERE 이름은 `%i`와 같습니다.

이 경우 백분율 기호는 마스크, 즉 문자와 숫자를 의미합니다. 그리고 문자 "I"에 따라 SQL은 마지막 문자가 정확히 이와 같아야 한다고 결정합니다.

사례

이 SQL Server 문은 다중 선택을 구현한 것입니다. 이는 많은 프로그래밍 언어의 스위치 구조를 연상시킵니다. SQL의 CASE 문은 여러 조건에 따라 작업을 수행합니다.

예를 들어, "급여" 테이블에서 최대값과 최소값을 선택해야 합니다.

그러면 쿼리는 다음과 같이 작성할 수 있습니다.

급여에서

MAX(누적)를 선택한 다음 최대를 선택하는 경우

MIN(누적)을 선택한 다음 최소

이러한 맥락에서 시스템은 발생 열에서 최대값과 최소값을 찾습니다. 그런 다음 END를 사용하면 조건 결과에 따라 "최대" 또는 "최소"가 입력되는 "전체" 필드가 생성됩니다.

그런데 SQL에는 CASE - COALESCE라는 보다 간결한 형태도 있습니다.

데이터 정의 연산자

이 보기를 사용하면 테이블에 대한 다양한 수정(인덱스 생성, 삭제, 수정 및 작업)을 수행할 수 있습니다.

고려해야 할 첫 번째 것은 CREATE TABLE입니다. 테이블을 생성하는 것 외에는 아무 것도 수행하지 않습니다. CREATE TABLE 쿼리만 입력하면 여전히 여러 매개변수를 지정해야 하므로 아무 일도 일어나지 않습니다.

예를 들어, 이미 익숙한 "Employees" 테이블을 생성하려면 다음 명령을 사용해야 합니다.

테이블 만들기 직원

(숫자(10)은 NULL이 아닙니다.

이름 varchar(50) NOT NULL

성 varchar(50) NOT NULL)

이 쿼리에서는 필드 이름과 해당 유형이 괄호 안에 즉시 결정되며 NULL이 될 수 있는지 여부도 결정됩니다.

드롭 테이블

하나의 간단한 작업(지정된 테이블 삭제)을 수행합니다. IF EXISTS에 추가 매개변수가 있습니다. 찾고 있는 테이블이 존재하지 않는 경우 삭제 오류를 흡수합니다. 사용 예:

존재하는 경우 DROP TABLE 직원.

인덱스 생성

SQL에는 데이터 액세스 속도를 높일 수 있는 인덱스 시스템이 있습니다. 일반적으로 특정 열을 가리키는 링크입니다. 간단한 쿼리로 인덱스를 생성할 수 있습니다:

인덱스 생성 index_name

ON 테이블_이름(컬럼_이름)

이 연산자는 T-SQL, Oracle, PL SQL 및 기타 여러 해석 기술에 사용됩니다.

테이블 변경

다양한 옵션을 갖춘 매우 기능적인 연산자입니다. 일반적으로 테이블의 구조, 정의 및 배치를 변경합니다. Oracle SQL, Postgres 및 기타 여러 곳에서 사용되는 연산자입니다.

    추가하다. 테이블에 열을 추가합니다. 구문은 다음과 같습니다. ALTER TABLE 테이블_이름 ADD 열_이름 저장된_데이터_유형. 생성 중인 열이 이미 존재하는 경우 오류를 억제하는 IF NOT EXISTS 옵션이 있을 수 있습니다.

    떨어지다. 열을 제거합니다. 또한 IF EXISTS 키가 있는데, 이 키가 없으면 필수 열이 누락되었음을 나타내는 오류가 생성됩니다.

    변화. 필드 이름을 지정된 이름으로 바꾸는 역할을 합니다. 사용 예: ALTER TABLE 테이블_이름 CHANGE old_name new_name;

    수정하다. 이 명령은 특정 열의 유형 및 추가 속성을 변경하는 데 도움이 됩니다. 그리고 다음과 같이 사용됩니다. ALTER TABLE table_name MODIFY 컬럼_이름 data_type 속성;

보기 만들기

SQL에는 뷰라는 것이 있습니다. 한마디로 데이터가 담긴 일종의 가상 테이블이다. SQL SELECT 문을 사용한 선택 결과로 구성됩니다. 보기는 데이터베이스에 대한 액세스를 제한하고, 숨기고, 실제 열 이름을 바꿀 수 있습니다.

생성 프로세스는 간단한 요청을 사용하여 발생합니다.

CREATE VIEW 뷰 이름 AS SELECT FROM * 테이블 이름

샘플링은 전체 데이터베이스에서 또는 일부 조건에 따라 발생할 수 있습니다.

기능에 대해 조금

SQL 쿼리는 데이터와 상호 작용하고 즉시 변환할 수 있는 다양한 내장 함수를 사용하는 경우가 많습니다. 구조화된 언어의 필수적인 부분을 형성하기 때문에 고려해 볼 가치가 있습니다.

    세다. 특정 테이블의 레코드나 행의 개수를 계산합니다. 열 이름을 매개변수로 지정하면 해당 열 이름에서 데이터를 가져옵니다. SELECT COUNT * 직원으로부터;

    평균. 숫자 데이터가 있는 열에만 적용됩니다. 그 결과는 모든 값의 산술 평균을 결정하는 것입니다.

    최소 및 최대. 이러한 기능은 이 기사에서 이미 사용되었습니다. 지정된 열에서 최대값과 최소값을 결정합니다.

    합집합. 간단합니다. 이 함수는 열 값의 합계를 계산합니다. 숫자 데이터에만 적용됩니다. 쿼리에 DISTINCT 매개변수를 추가하면 고유한 값만 합산됩니다.

    둥근. 소수점 이하 자릿수를 반올림하는 함수입니다. 구문에서는 열 이름과 소수 자릿수를 사용합니다.

    렌. 열 값의 길이를 계산하는 간단한 함수입니다. 결과는 문자 수를 나타내는 새 테이블이 됩니다.

    지금. 이 키워드는 현재 날짜와 시간을 계산하는 데 사용됩니다.

추가 연산자

많은 SQL 문 예제에는 작은 작업을 수행하지만 여전히 검색이나 데이터베이스 조작을 크게 단순화하는 키워드가 있습니다.

    처럼. 결과 테이블에 지정된 이름을 지정하여 결과를 시각적으로 형식화해야 할 때 사용됩니다.

    사이. 매우 편리한 샘플링 도구입니다. 데이터를 검색할 값의 범위를 지정합니다. 범위가 사용되는 숫자로부터 매개변수를 입력으로 사용합니다.

    아니다. 연산자는 표현식의 반대를 제공합니다.

    잘라냅니다. 데이터베이스의 지정된 섹션에서 데이터를 삭제합니다. 사용 후 데이터 복원이 불가능하다는 점에서 유사한 연산자와 다릅니다. 다양한 SQL 해석에서 이 키워드의 구현이 다를 수 있다는 점을 고려해 볼 가치가 있습니다. 따라서 TRUNCATE를 사용하기 전에 도움말 정보를 읽어 보는 것이 좋습니다.

    한계. 출력할 라인 수를 설정합니다. 연산자의 특징은 항상 끝에 위치한다는 것입니다. 하나의 필수 매개변수와 하나의 선택 매개변수를 허용합니다. 첫 번째는 선택한 데이터의 행 수를 표시해야 하는지 지정합니다. 그리고 두 번째 것을 사용하면 연산자는 값 범위에 대해 작동합니다.

    노동 조합. 여러 쿼리를 결합하는 데 매우 편리한 연산자입니다. 이 기사의 예에서는 이미 발견되었습니다. 여러 테이블에서 원하는 행을 UNION으로 결합하여 표시할 수 있어 더욱 편리하게 사용할 수 있습니다. 구문은 다음과 같습니다. SELECT 열_이름 FROM 테이블_이름 UNION SELECT 기타_열_이름 FROM 기타_테이블_이름. 결과는 쿼리가 결합된 피벗 테이블입니다.

    기본 키. "기본 키"로 번역됩니다. 실제로 이것은 참고 자료에서 사용되는 용어와 정확히 같습니다. 고유한 행 식별자를 의미합니다. 이는 일반적으로 테이블을 포함할 필드를 표시하기 위해 테이블을 생성할 때 사용됩니다.

    기본. 이전 연산자와 마찬가지로 생성 요청을 실행하는 동안 사용됩니다. 필드가 생성될 때 필드가 채워지는 기본값을 정의합니다.

    없는. 프로그래머뿐만 아니라 초보자도 쿼리를 작성할 때 NULL 값을 얻을 수 있는 가능성을 종종 잊어버립니다. 결과적으로 오류가 코드에 나타나 디버깅 중에 추적하기 어렵습니다. 따라서 테이블을 생성하거나 값을 선택하거나 다시 계산할 때 쿼리의 이 부분에서 NULL이 발생하는지 여부를 잠시 멈추고 생각해야 합니다.

    메모리. 이 문서에서는 일부 작업을 수행할 수 있는 여러 기능을 보여주었습니다. 데이터베이스 작업을 위한 셸을 개발할 때 간단한 표현식 계산을 데이터베이스 관리 시스템에 아웃소싱할 수 있습니다. 어떤 경우에는 이로 인해 성능이 크게 향상됩니다.

    제한. 수천 개의 행이 있는 데이터베이스에서 두 개의 행만 가져와야 하는 경우 LIMIT 또는 TOP와 같은 연산자를 사용해야 합니다. 쉘 개발 언어를 사용하여 데이터를 추출할 필요가 없습니다.

    화합물. 여러 테이블에서 데이터를 받은 후 많은 프로그래머는 쉘 메모리를 사용하여 테이블을 하나로 모으기 시작합니다. 그런데 왜? 결국 이 모든 것이 포함되는 하나의 요청을 만들 수 있습니다. 추가 코드를 작성하거나 시스템에 추가 메모리를 예약할 필요가 없습니다.

    정렬. 쿼리에 순서를 적용하는 것이 가능하다면, 즉 DBMS를 이용한다면 이를 이용해야 한다. 이를 통해 프로그램이나 서비스를 실행할 때 리소스를 크게 절약할 수 있습니다.

    요청이 많습니다. 많은 레코드를 순차적으로 삽입해야 하는 경우 최적화를 위해 한 번의 요청으로 데이터를 일괄 삽입하는 것을 고려해야 합니다. 이는 또한 전체 시스템의 성능을 향상시킵니다.

    신중한 데이터 배치. 데이터베이스의 구조를 컴파일하기 전에 테이블과 필드가 그렇게 많이 필요한지 생각해 볼 필요가 있습니다. 어쩌면 그것들을 결합하거나 일부를 버리는 방법이 있을 수도 있습니다. 프로그래머는 어디에도 사용되지 않을 과도한 양의 데이터를 사용하는 경우가 많습니다.

    유형. 공간과 리소스를 절약하려면 사용하는 데이터 유형에 민감해야 합니다. 메모리에 대해 덜 "무거운" 유형을 사용하는 것이 가능하다면 이를 사용해야 합니다. 예를 들어 특정 필드의 숫자 값이 255를 초과하지 않는다는 것을 알고 있다면 1바이트 TINYINT가 있는 경우 4바이트 INT를 사용하는 이유는 무엇입니까?

결론

결론적으로, 구조화된 쿼리 언어 SQL은 이제 웹사이트, 웹 서비스, PC 프로그램, 모바일 장치용 애플리케이션 등 거의 모든 곳에서 사용된다는 점에 유의해야 합니다. 따라서 SQL에 대한 지식은 모든 개발 분야에 도움이 될 것입니다.

그러나 원래 언어 표준의 수정 사항이 서로 다른 경우가 있습니다. 예를 들어, PL SQL 문은 SQL Server와 다른 구문을 가질 수 있습니다. 따라서 이 기술로 개발을 시작하기 전에 해당 기술에 대한 튜토리얼을 읽어 볼 가치가 있습니다.

앞으로는 기능이나 성능 면에서 SQL을 능가할 수 있는 유사 제품이 나타날 가능성이 낮으므로 이 영역은 모든 프로그래머에게 상당히 유망한 틈새 시장입니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: