기본 SQL 문
SQL 표준은 1992 년에 채택되었으며여전히 사용됩니다. 그는 많은 데이터베이스 관리 시스템의 벤치마킹 대상이되었습니다. 물론 일부 제조업체는 표준에 대한 해석을 사용합니다. 그러나 어떤 시스템에서든 주요 구성 요소 인 SQL 문이 있습니다.
소개
데이터베이스에 SQL 문을 사용하여테이블을 제어하고 추가 분석 및 표시를 위해 가져옵니다. 그것들은 시스템이 데이터로 무엇을해야 하는지를 이해하는 키워드의 집합입니다.
SQL 문에 대한 몇 가지 범주를 정의하십시오.
- 데이터베이스 객체의 정의;
- 가치 조작;
- 보호 및 관리;
- 세션 파라미터들;
- 기지에 관한 정보;
- 정적 SQL;
- 동적 SQL.
데이터 조작을위한 SQL 문
이 카테고리에는 데이터베이스의 값 배치를 관리 할 수있는 키워드가 포함됩니다.
INSERT. 기존 테이블에 행을 삽입합니다. 특정 조건에 의해 정의 된 하나의 값 또는 여러 값에 사용될 수 있습니다. 예 :
INSERT INTO
테이블 이름 (컬럼 1 명, 컬럼 명 2)
VALUES (값 1, 값 2).
여러 값에 대해 SQL 쿼리 연산자 INSERT를 사용하려면 구문은 다음과 같습니다.
INSERT INTO
테이블 이름 1 (열 이름 1, 열 이름 2)
SELECT 열 이름 1, 열 이름 2
FROM 테이블 이름 2
WHERE 테이블 이름 2. 열 이름 1> 2
이 질의는 2보다 큰 1 개 컬럼과 제에 붙여은 표 2의 모든 데이터를 선택한다.
업데이트. 이름에서 알 수 있듯이이 SQL 쿼리 연산자는 기존 테이블의 데이터를 특정 특성으로 업데이트합니다.
예 :
UPDATE 테이블 이름 1
SET 열 이름 2 = "바질"
WHERE 테이블 이름 1. 열 이름 1 = 1
이 구조 채움 값 바 첫 번째 열에서의 숫자를 만족하는 모든 행.
DELETE. 테이블에서 데이터를 제거합니다. 조건을 지정하거나 모든 행을 제거 할 수 있습니다.
DELETE FROM 테이블 이름
WHERE 테이블 이름. 컬럼 이름 1 = 1
위의 쿼리는 첫 번째 열의 값이 1 인 데이터베이스에서 모든 데이터를 제거합니다. 전체 테이블을 지우는 방법은 다음과 같습니다.
테이블의 이름에서 삭제하십시오.
또한 연산자 SELECT에 대해 알려줄 필요가 있습니다. 그는 가장 중요한 중 하나이기 때문에 별도의 장을 써야 할 것입니다.
SELECT 문
SELECT의 주요 목적은 데이터를 검색하는 것입니다.특정 조건. 그의 작업 결과는 항상 선택된 데이터가있는 새로운 테이블입니다. MS SQL SELECT.은 여러 가지 다른 u 리에서 사용될 수 있습니다. 따라서 이와 함께 다른 관련 키워드도 고려할 수 있습니다.
특정 테이블의 모든 데이터를 선택하려면 "*"기호를 사용하십시오.
선택 *
FROM 테이블 이름 1
이 쿼리의 결과는 표 1과 동일합니다.
그리고 여기서 샘플은 WHERE 조건에 의해 취해지며, 표 1에서 1 열에서 2보다 큰 모든 값을 추출합니다.
선택 *
FROM 테이블 이름 1
WHERE 테이블 이름 1. 열 이름 1> 2
선택 항목에서 특정 열만 필요하다는 것을 지정할 수도 있습니다.
SELECT 테이블 이름 1. 열 이름 1
FROM 테이블 이름 1
이 쿼리의 결과는 열 1의 값을 가진 모든 행이됩니다. MS SQL 문을 사용하면 자체 테이블을 만들어 즉시 바꾸고 특정 값을 계산하고 대체 할 수 있습니다.
선택
테이블 이름 1. 열 이름 1
테이블 이름 1. 열 이름 2
테이블 이름 1. 컬럼 이름 3
«=»AS EQ
테이블 이름 1. 컬럼 이름 2 * 테이블 이름 1. 컬럼 이름 3 AS SUMMA
FROM 테이블 이름 1
이 겉보기에 복잡한 쿼리는표 1의 모든 값을 선택한 다음 새 열 EQ 및 SUMMA를 작성하십시오. 첫 번째 문자는 부호 2와 3의 데이터의 두 번째 곱에 기호 "+"를 넣습니다. 결과는 테이블 형식으로 표현되어 어떻게 작동하는지 이해할 수 있습니다.
열 1 | 열 2 | 3 열 | EQ | SUMMA |
제품 이름 1 | 10 | 50 | + | 500 |
상품명 2 | 15 | 100 | + | 1500 |
SELECT.을 사용하면 모든 특성에 대한 데이터를 즉시 정렬 할 수 있습니다. 이렇게하려면 단어 ORDER BY를 사용하십시오.
선택
테이블 이름 1. 열 이름 1
테이블 이름 1. 열 이름 2
테이블 이름 1. 컬럼 이름 3
FROM 테이블 이름 1
ORDER BY 열 이름 2
결과 테이블은 다음과 같습니다.
열 1 | 열 2 | 3 열 |
1 | 1 | 54 |
3 | 2 | 12 |
7 | 3 | 100 |
2 | 5 | 1 |
즉, 모든 행이이 순서대로 설정되어 있으므로 열 2에서 값은 오름차순으로 표시됩니다.
데이터는 여러 테이블에서 얻을 수도 있습니다. 명확하게하기 위해 먼저 데이터베이스에 두 개가 있다고 대략 상상할 필요가 있습니다. 대략 다음과 같습니다.
직원 테이블
방 | 이름 | 성 |
1 | 바시 야 | 바신 |
2 | Petya | 페틴 |
표 "급여"
방 | 평가 | 유료 |
1 | 1 | 10000 |
2 | 0,5 | 3500 |
이제 어떻게 든 공통 값을 얻기 위해이 두 테이블을 연결해야합니다. 기본 SQL 문을 사용하여 다음을 수행 할 수 있습니다.
선택
종업원. 번호
종업원. 이름
샐러리. 스탁 카
샐러리. 아니.
직원, 급여에서
직원 수. 번호 = 급여. 번호
여기에는 두 개의 서로 다른 값 표 (선택 항목)가 번호별로 통합되어 있습니다. 결과는 다음 데이터 세트입니다.
방 | 이름 | 평가 | 유료 |
1 | 바시 야 | 1 | 10000 |
2 | Petya | 0,5 | 3500 |
SELECT에 대해 조금 더. 집계 함수 사용하기
기본 SQL SELECT 문 중 하나는 샘플에서 일부 계산을 수행 할 수 있습니다. 이를 위해 그는 특정 기능과 공식을 사용합니다.
예를 들어, Employees 테이블에서 항목 수를 얻으려면 쿼리를 사용해야합니다.
SELECT COUNT (*)로 N
직원으로부터
결과는 하나의 값과 열이있는 테이블입니다.
N |
2 |
쿼리에서는 합계, 최대 값과 최소값 및 평균을 계산하는 함수를 사용할 수 있습니다. 이를 위해 키워드 SUM, MAX, MIN, AVG가 사용됩니다.
예를 들어, 이미 알려진 "Salary"테이블에서 샘플을 추출해야합니다.
방 | 평가 | 유료 |
1 | 1 | 10000 |
2 | 0,5 | 3500 |
이 쿼리를 적용하고 어떤 일이 발생하는지 확인할 수 있습니다.
선택
SUM (급여. 지정) AS SUMMA
MAX (Salary.No) AS MAX
MIN (Salary.No) 그대로 MIN
AVG (Salary.No) AS SRED
연봉에서
최종 테이블은 다음과 같습니다 :
SUMMA | MAX | MIN | SRED |
13500 | 10000 | 3500 | 6750 |
이러한 방식으로 다양한 기능의 계산을 수행하여 데이터베이스에서 필요한 값을 즉석에서 선택할 수 있습니다.
통일, 교차점 및 차이점
여러 쿼리를 SQL에 병합
SELECT Sotrudniki.Imya
직원으로부터
직원 수. 번호 = 1
UNION
SELECT Sotrudniki.Imya
직원, 급여에서
월급. 번호 = 1
이 경우, 그러한 테이블 조합이 호환 가능해야 함을 명심해야합니다. 즉, 동일한 수의 열을가집니다.
SELECT 문의 구문 및 처리 순서
SELECT가 먼저 결정하는 것은 데이터를 가져올 영역입니다. 이렇게하려면 키워드 FROM을 사용하십시오. 지정되지 않은 경우 정확하게 선택할 것입니다.
그런 다음 SQL WHERE 절이있을 수 있습니다. SELECT를 사용하면 테이블의 모든 행을 실행하고 조건 준수 여부를 확인합니다.
조회에 GROUP BY가 들어 있으면 값은 지정된 매개 변수로 그룹화됩니다.
데이터 비교 연산자
그 중 몇 가지 유형이 있습니다. SQL에서 비교 연산자는 다양한 유형의 값을 검사 할 수 있습니다.
"=". 추측 할 수 있듯이 두 표현식의 동일성을 나타냅니다. 예를 들어, 위 예제에서 이미 사용되었습니다 - WHERE Salary. Number = 1.
">". 더 많은 서명. 표현식의 왼쪽 값이 더 큰 경우 논리적 TRUE가 리턴되고 조건은 충족 된 것으로 간주됩니다.
"<". 덜 서명하십시오. 이전 명령문을 역으로하십시오.
"<="및 "> ="기호. 단순 피연산자와 피연산자가 같으면 조건도 사실이라는 점에서 점점 더 다릅니다.
"<>". 동등하지 않습니다. 하나의 피연산자가 다른 피연산자와 같지 않으면 조건은 TRUE로 간주됩니다. 그는 또 다른 해석 - "! ="을 가지고 있습니다.
좋아해요.
이 키워드는 다음과 같이 번역 할 수 있습니다."비슷합니다." SQL의 LIKE 연산자는 대략 동일한 원칙에 따라 사용됩니다. 즉, 패턴으로 쿼리를 수행합니다. 즉, 정규 표현식을 사용하여 데이터베이스에서 데이터 선택을 확장 할 수 있습니다.
예를 들어, 다음 작업이 설정되었습니다. 이미 알려진 "Employees"기반에서 이름이 "I"로 끝나는 모든 사람들을 얻습니다. 그런 다음 요청을 다음과 같이 만들 수 있습니다.
선택 *
직원으로부터
WHERE 이름이 좋아요 '% I`
이 경우의 퍼센트 기호는 마스크, 즉 임의의 문자 및 숫자를 의미합니다. 문자 "I"에 의해 SQL은 마지막 문자가 정확히 그와 같아야한다는 것을 결정합니다.
사례
이 SQL Server 문은 다음과 같습니다.객관식의 구현. 이것은 많은 프로그래밍 언어에서 스위치 구조와 유사합니다. SQL의 CASE 문은 여러 조건에 대해 조치를 수행합니다.
예를 들어, "급여"테이블의 최대 값과 최소값을 선택해야합니다.
방 | 평가 | 유료 |
1 | 1 | 10000 |
2 | 0,5 | 3500 |
그런 다음 요청을 다음과 같이 만들 수 있습니다.
선택 *
연봉에서
최대 금액을 선택할 때 (미지급) THEN 최대
MIN 선택 (미지급) THEN 최소
총 종료
이 문맥에서, 시스템은 최대 및 최대'청구 됨'열의 최소값입니다. 그런 다음 END를 사용하여 조건의 결과에 따라 "최대"또는 "최소"가 입력되는 "전체"필드가 작성됩니다.
그런데 SQL에서는 CASE-COALESCE의보다 간단한 형식이 있습니다.
데이터 정의 연산자
이 뷰를 사용하면 인덱스 작성, 삭제, 수정 및 작업과 같이 테이블을 다양하게 변경할 수 있습니다.
처음 고려해야 할 것은 CREATE입니다.TABLE. 아무것도 작성하지 않고 표를 작성합니다. CREATE TABLE 쿼리를 입력하면 몇 가지 매개 변수를 지정해야하므로 아무 것도 발생하지 않습니다.
예를 들어 이미 친숙한 "Employees"테이블을 만들려면 다음 명령을 사용해야합니다.
사원 만들기
(숫자 (10) NOT NULL
Name varchar (50) NOT NULL
성 varchar (50) NOT NULL)
이 쿼리에서 필드 이름과 해당 유형은 즉시 대괄호로 묶이고 NULL이 될 수 있는지 여부가 결정됩니다.
드롭 테이블
하나의 간단한 작업, 즉 지정된 테이블 삭제를 수행합니다. IF EXISTS라는 추가 매개 변수가 있습니다. 찾고있는 테이블이없는 경우 삭제 오류가 발생합니다. 사용 예 :
DROP TABLE IF EXISTS 직원.
CREATE INDEX
SQL에는 빠른 데이터 액세스를 허용하는 인덱스 시스템이 있습니다. 일반적으로 특정 열을 가리키는 링크입니다. 간단한 쿼리로 인덱스를 만들 수 있습니다.
CREATE INDEX index_name
ON table_name (column_name)
이 연산자는 T-SQL, Oracle, PL SQL 및 기타 기술 해석에 사용됩니다.
ALTER TABLE
매우 기능적인 조작자 소유다양한 옵션. 일반적으로 테이블의 구조, 정의 및 배치를 변경합니다. 운영자는 Oracle SQL, Postgres 및 기타 여러 곳에서 사용됩니다.
다음은 ALTER TABLE을 사용하기위한 다양한 옵션입니다.
추가. 테이블에 열을 추가합니다. 구문은 다음과 같습니다. ALTER TABLE tbl_name ADD column_name type_data_type. IF NOT EXISTS 매개 변수는 이미 생성 된 열이 있으면 오류를 표시하지 않을 수 있습니다.
DROP. 열을 삭제합니다. 또한 필수 항목이 누락되었음을 나타내는 오류가 생성되지 않는 IF EXISTS 키가 있습니다.
변경. 필드 이름을 지정된 이름으로 바꿉니다. 사용 예제 : ALTER TABLE tbl_name CHANGE old_name new_name;
수정하십시오. 이 명령은 특정 열의 유형과 추가 속성을 변경하는 데 도움이됩니다. 그리고 다음과 같이 사용됩니다 : ALTER TABLE table_name MODIFY column_name 데이터 유형 속성;
CREATE VIEW
SQL에서, 아이디어와 같은 일이있다. 간단히 말해서, 이것은 데이터가있는 일종의 가상 테이블입니다. SQL SELECT.을 사용하여 선택 결과로 형성됩니다. 뷰는 데이터베이스 액세스를 제한하고 숨기고 실제 열 이름을 바꿀 수 있습니다.
생성 프로세스는 간단한 쿼리를 사용하여 수행됩니다.
CREATE VIEW 뷰 이름 AS SELECT FROM * 테이블 이름
샘플링은 전체 데이터베이스와 일부 조건에서 발생할 수 있습니다.
기능에 대해 조금
SQL 쿼리는 종종 다른 쿼리를 사용합니다.데이터와 상호 작용하고 즉시 변환 할 수있는 내장 함수. 그것들은 구조화 된 언어의 필수적인 부분이므로 고려해 볼 가치가 있습니다.
COUNT. 특정 테이블의 레코드 또는 행을 계산합니다. 매개 변수로 열의 이름을 지정할 수 있습니다. 그러면 데이터가 열 이름에서 가져옵니다. 직원들로부터 선택 COUNT *
AVG. 이 함수는 숫자 데이터가있는 열에 만 적용됩니다. 이 결과는 모든 값의 산술 평균의 결정이고;
MIN 및 MAX. 이러한 기능은이 기사에서 이미 사용되었습니다. 지정된 열의 최대 값과 최소값을 결정합니다.
SUM. 간단합니다. 함수는 열 값의 합을 계산합니다. 이것은 숫자 데이터 유형에 독점적으로 사용됩니다. DISTINCT 매개 변수를 쿼리에 추가하면 고유 한 값만 추가됩니다.
라운드. 소수점 이하 자릿수의 반올림 기능. 구문은 열의 이름과 소수 자릿수를 사용합니다.
LEN. 열 값의 길이를 계산하는 간단한 함수입니다. 결과는 문자 수를 나타내는 새 테이블이됩니다.
지금. 이 키워드는 현재 날짜와 시간을 계산하는 데 사용됩니다.
추가 연산자
SQL 문을 사용하는 많은 예제에는 작은 작업을 수행하는 키워드가 있지만 그럼에도 불구하고 데이터베이스를 사용한 선택 또는 작업이 크게 단순화됩니다.
그대로. 지정된 이름을 결과 테이블에 할당하여 결과를 시각적으로 정렬해야하는 경우에 사용됩니다.
둘 사이. 샘플링을위한 매우 편리한 도구. 데이터를 가져와야하는 값의 범위를 나타냅니다. 입력은 범위가 사용되는 번호와 매개 변수를 사용합니다.
안돼. 연산자는 반대 표현식을 제공합니다.
TRUNCATE. 지정된 기본 파트에서 데이터를 제거합니다. 데이터를 사용 한 후에는 데이터를 복구 할 수 없다는 점에서 유사한 운영자와 다릅니다. SQL의 다른 해석에서이 키워드의 구현이 다를 수도 있다는 것을 고려해야합니다. 따라서 TRUNCATE를 사용하기 전에 참조 정보에 대해 잘 알고 있어야합니다.
LIMIT. 출력 할 행 수를 설정합니다. 운영자의 특질은 항상 그것이 끝에 있다는 것입니다. 필수 매개 변수 하나와 선택적 매개 변수 하나를 허용합니다. 첫 번째 행은 선택된 데이터가 표시된 행 수를 나타냅니다. 그리고 두 번째가 사용되면, 연산자는 값의 범위와 같이 작동합니다.
UNION. 여러 쿼리를 결합하는 매우 편리한 연산자. 그는 이미이 기사에서이 예들 중에서 만났습니다. 더 편리한 사용을 위해 UNION과 결합하여 여러 테이블의 필요한 행을 표시 할 수 있습니다. 구문은 다음과 같습니다. SELECT column_name FROM table_name UNION SELECT name_of another_column FROM name_of 다른 테이블. 결과는 병합 된 쿼리가있는 피벗 테이블입니다.
기본 키. "기본 키"로 번역됩니다. 실제로 참조 자료에 사용되는 것은이 용어입니다. 문자열에 대한 고유 한 식별자를 의미합니다. 일반적으로 테이블을 작성하여이를 포함 할 필드를 지정할 때 사용됩니다.
DEFAULT. 이전 명령문뿐만 아니라 작성 명령을 실행하는 프로세스에서 사용됩니다. 필드가 작성 될 때 필드를 채우는 데 사용될 기본값을 정의합니다.
SQL 작업을위한 플랫폼 개발에 대한 몇 가지 팁
Null 초보자뿐만 아니라 쿼리 준비의 프로그래머는 NULL 값을 얻을 가능성을 잊어 버리는 경우가 많습니다. 결과적으로 디버깅 프로세스 중에 추적하기 어려운 코드에 오류가 발생합니다. 따라서 테이블을 만들고 값을 선택하거나 다시 계산할 때 쿼리의이 부분에서 NULL이 발생하는지 고려해야합니다.
기억. 이 기사는 몇 가지 작업을 수행 할 수있는 몇 가지 기능을 보여줍니다. 데이터베이스 작업을위한 쉘을 개발할 때 데이터베이스 관리 시스템에서 간단한 표현식의 계산보다 "중요"할 수 있습니다. 어떤 경우에는 성능이 크게 향상됩니다.
제한 사항. 수천 줄의 데이터베이스가있는 두 줄만 가져와야하는 경우 LIMIT 또는 TOP와 같은 연산자를 사용해야합니다. 셸 개발 언어를 사용하여 데이터를 추출 할 필요가 없습니다.
연결 여러 테이블에서 데이터를받은 후 많은 프로그래머는 쉘 메모리를 사용하여 여러 테이블을 결합하기 시작합니다. 하지만 왜? 결국이 모든 것이 존재할 수있는 하나의 요청을 할 수 있습니다. 시스템에 추가 코드를 작성하고 추가 메모리를 예약 할 필요가 없습니다.
정렬. 질의, 즉 DBMS에 의해 순서화를 적용 할 수 있다면, 그것을 사용해야한다. 이렇게하면 프로그램이나 서비스를 실행할 때 리소스가 크게 절약됩니다.
많은 요청. 여러 레코드를 순차적으로 삽입해야한다면 최적화를 위해 하나의 쿼리로 배치 데이터 삽입을 고려해야합니다. 이렇게하면 전체 시스템의 성능이 향상됩니다.
데이터 배치로 간주됩니다. 기본 구조를 작성하기 전에 그러한 많은 수의 테이블과 필드가 필요한지 생각해야합니다. 아마 그들을 결합하거나 어떤 것을 포기할 수있는 방법이있을 것입니다. 프로그래머는 절대 사용하지 않을 데이터의 양을 과도하게 사용합니다.
유형. 공간과 자원을 절약하려면 사용되는 데이터 유형에 민감해야합니다. 메모리에 덜 "무거운"유형을 사용할 수있는 기회가 있으면이를 사용해야합니다. 예를 들어,이 필드에서 숫자 값이 255를 초과하지 않는다는 것이 알려지면 1 바이트의 TINYINT가있는 경우 4 바이트 INT를 사용해야하는 이유는?
결론
결론적으로, 언어구조화 된 SQL 쿼리는 웹 사이트, 웹 서비스, PC 용 소프트웨어, 모바일 장치 용 응용 프로그램 등 거의 모든 곳에서 사용됩니다. 따라서 SQL에 대한 지식은 모든 개발 단계에서 도움이 될 것입니다.
그러나 원래 표준의 수정언어가 서로 다른 경우가 있습니다. 예를 들어, PL SQL 문은 SQL Server와는 다른 구문을 가질 수 있습니다. 따라서이 기술로 개발하기 전에 설명서를 읽어야합니다.
미래에는 SQL의 기능과 성능을 능가하는 아날로그가 나타나기 쉽지 않으므로이 영역은 모든 프로그래머에게 유망한 틈새 시장입니다.