Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL

구조적 쿼리 언어(SQL)


SQL(Structured Query Language)은 관계형 데이터베이스를 관리하고 데이터에 대한 다양한 작업을 수행하는 데 사용하도록 표준화된 전문 프로그래밍 언어입니다. 데이터베이스 테이블 및 인덱스 구조 수정을 포함하여 SQL의 다양한 용도가 있습니다. 데이터 행 추가, 업데이트 및 삭제; 및 트랜잭션 처리 및 분석 애플리케이션을 위해 데이터베이스에서 정보의 다양한 하위 집합을 검색합니다. 명령 형태로 작동하고 일반적으로 선택, 추가, 삽입, 업데이트, 삭제, 생성, 변경 및 자르기와 같은 SQL 문으로 알려진 특수 쿼리 및 작업이 있습니다.

SQL은 1970년대 후반과 1980년대 초반에 등장한 관계형 데이터베이스의 표준 프로그래밍 언어가 되었습니다. 일반적으로 SQL 데이터베이스로 알려진 관계형 시스템은 행과 열 형식의 데이터를 포함하는 테이블 세트로 구성되며, 여기서 테이블의 각 열은 데이터 범주(예:고객 이름 또는 주소)에 해당하고 각 행에는 다음에 대한 데이터 값이 포함됩니다. 교차 기둥.

SQL은 또한 관계형 데이터베이스 관리 시스템(RDBMS)에 보관된 데이터를 프로그래밍하고 설계하는 데 사용되는 도메인별 언어입니다. 데이터의 서로 다른 엔터티/변수 간에 관계가 있는 구조화된 데이터를 처리하는 데 특히 유용합니다.

SQL은 원래 관계 대수 및 튜플 관계 미적분학을 기반으로 하며 일반적으로 데이터 쿼리 언어(DQL), 데이터 정의 언어(DDL), 데이터 제어 언어(DCL) 및 데이터로 알려진 여러 유형의 명령문으로 구성됩니다. 조작 언어(DML). SQL의 범위에는 데이터 쿼리, 데이터 조작(삽입, 업데이트 및 삭제), 데이터 정의(스키마 생성 및 수정), 데이터 액세스 제어가 포함됩니다. 또한 SQL은 절차적 요소도 포함하기 때문에 선언적 언어(4GL)로 설명됩니다.

SQL의 응용

다양한 SQL 응용 프로그램이 있습니다 -

  • 1. 데이터 통합 ​​스크립트 - SQL의 주요 응용 프로그램은 데이터베이스 관리자와 개발자가 데이터 통합 ​​스크립트를 작성하는 것입니다.
  • 2. 분석 쿼리 - 데이터 분석가는 정기적으로 분석 쿼리를 설정하고 실행하기 위해 구조화된 쿼리 언어를 사용합니다.
  • 3. 정보 검색 - 이 언어의 또 다른 인기 있는 응용 프로그램은 분석 응용 프로그램 및 트랜잭션 처리를 위해 데이터베이스 내의 정보 하위 집합을 검색하는 것입니다. 가장 일반적으로 사용되는 SQL 요소는 선택, 삽입, 업데이트, 추가, 삭제, 생성, 자르기 및 변경입니다.
  • 4. 기타 중요한 응용 프로그램 - SQL은 인덱스 구조 및 데이터베이스 테이블의 수정에 사용됩니다. 또한 사용자는 이 언어를 사용하여 데이터 행을 추가, 업데이트 및 삭제할 수 있습니다.

SQL 표준 및 독점 확장

공식 SQL 표준은 1986년 ANSI(American National Standards Institute), 1987년 ISO(International Organization for Standardization)에서 채택되었습니다. SQL은 데이터베이스 관리자와 데이터 통합 ​​스크립트 및 데이터를 작성하는 개발자가 정기적으로 사용합니다. 분석 쿼리를 설정하고 실행하려는 분석가

조직은 SQL을 기반으로 구축된 독점 및 오픈 소스 관계형 데이터베이스 관리 시스템을 모두 사용할 수 있습니다. 여기에는 Microsoft SQL Server, Oracle Database, IBM DB2, SAP HANA, SAP Adaptive Server, MySQL(현재 Oracle 소유) 및 PostgreSQL이 포함됩니다.

그러나 이러한 데이터베이스 제품 중 상당수는 절차적 프로그래밍 및 기타 기능을 위한 표준 언어에 대한 독점 확장을 통해 SQL을 지원합니다. 예를 들어, Microsoft는 Transact-SQL(T-SQL)이라는 확장 세트를 제공하는 반면 Oracle의 표준 확장 버전은 PL/SQL입니다. 결과적으로 공급업체에서 제공하는 다양한 SQL 변형이 서로 완전히 호환되지 않습니다.

SQL 명령 및 구문

SQL 명령은 DML(데이터 조작 언어) 및 DDL(데이터 정의 언어) 문, 트랜잭션 제어 및 보안 조치와 같은 여러 유형으로 나뉩니다.

  • DML은 데이터를 검색하고 조작하는 데 사용됩니다.
  • DDL 문은 데이터베이스 구조를 정의하고 수정하기 위한 것입니다.
  • 트랜잭션 제어는 트랜잭션 처리를 관리하는 데 도움이 되며 오류나 문제가 발생할 경우 트랜잭션이 완료되거나 롤백되도록 합니다.
  • 보안 문은 데이터베이스 액세스를 제어하고 사용자 역할 및 권한을 생성하는 데 사용됩니다.

SQL 언어는 다음을 포함한 여러 언어 요소로 나뉩니다 -

  • 조항, 문장 및 쿼리의 구성 요소입니다.
  • 표현식, 스칼라 값 또는 데이터의 열과 행으로 구성된 테이블을 가질 수 있습니다.
  • 술어 SQL 3값 논리(3VL)(true/false/unknown) 또는 부울 진리값(true/false)으로 평가될 수 있는 조건을 지정하는 데 사용되며 명령문 및 쿼리의 영향을 제한하거나 프로그램 흐름을 변경하는 데 사용됩니다. .
  • 쿼리 특정 기준에 따라 데이터를 검색하는 데 사용됩니다.
  • 명세서, 스키마 및 데이터에 지속적인 영향을 미치거나 트랜잭션, 프로그램 흐름, 연결, 세션 또는 진단을 제어할 수 있습니다.
  • SQL 문에는 세미콜론(";") 문도 포함됩니다. 터미네이터.
  • 무의미한 공백 일반적으로 SQL 문 및 쿼리에서 무시되므로 가독성을 위해 SQL 코드 형식을 지정하기가 더 쉽습니다.

상호 운용성 및 표준화

SQL 구현은 공급업체 간에 호환되지 않으며 모든 표준을 따르지 않습니다. 특히 날짜 및 시간 구문, 문자열 연결, NULL 및 비교 대소문자 구분은 공급업체마다 다릅니다. 결과적으로 SQL 코드는 수정 없이 데이터베이스 시스템 간에 이식되는 경우가 거의 없습니다.

데이터베이스 시스템 간의 이식성 문제에는 여러 가지 이유가 있습니다. -

  • SQL 표준의 복잡성과 크기로 인해 대부분의 구현자가 전체 표준을 지원하지 않습니다.
  • 표준은 몇 가지 중요한 영역(예:색인, 파일 저장소...)에서 데이터베이스 동작을 지정하지 않으므로 동작 방식은 구현이 결정하도록 합니다.
  • SQL 표준은 준수하는 데이터베이스 시스템이 구현해야 하는 구문을 정확하게 지정합니다. 그러나 언어 구성의 의미론에 대한 표준 사양은 덜 명확하여 모호성을 유발합니다.
  • 많은 데이터베이스 공급업체가 기존 고객 기반을 많이 보유하고 있습니다. 최신 버전의 SQL 표준이 공급업체 데이터베이스의 이전 동작과 충돌하는 경우 공급업체는 이전 버전과의 호환성을 깨고 싶지 않을 수 있습니다.
  • 사용자가 데이터베이스 공급업체를 쉽게 변경할 수 있도록 공급업체에 대한 약간의 상업적 인센티브가 있습니다(공급업체 종속성 참조).
  • 데이터베이스 소프트웨어를 평가하는 사용자는 표준 준수보다 성능과 같은 다른 요소를 우선 순위에 두는 경향이 있습니다.

SQL의 장점

  • SQL 쿼리를 사용하여 데이터베이스에서 많은 양의 레코드를 빠르고 효율적으로 검색할 수 있습니다.
  • SQL은 개체에 데이터를 저장하지 않고 데이터를 보는 데 사용됩니다.
  • SQL은 두 개 이상의 테이블을 조인하여 사용자에게 하나의 개체로 표시합니다.
  • SQL 데이터베이스는 ANSI & ISO. 비 SQL 데이터베이스는 명확한 표준을 준수하지 않습니다.
  • 표준 SQL을 사용하면 많은 양의 코드를 작성하지 않고도 데이터베이스 시스템을 더 쉽게 관리할 수 있습니다.
  • SQL은 아무도 테이블에 행을 삽입할 수 없도록 테이블 액세스를 제한합니다.
  • 이전에는 SQL 데이터베이스가 관계형 데이터베이스와 동의어였습니다. ObjectOriented DBMS의 등장으로 개체 스토리지 기능이 관계형 데이터베이스로 확장되었습니다.

SQL의 단점

  • SQL 데이터베이스 인터페이스는 몇 줄의 코드를 추가하는 것보다 더 복잡합니다.
  • 테이블이 삭제되면 뷰가 비활성화됩니다. 테이블 개체에 따라 다릅니다.
  • SQL 데이터베이스는 ANSI & ISO 표준, 일부 데이터베이스는 공급업체 종속성을 보장하기 위해 표준 SQL에 대한 독점 확장을 사용합니다.
  • 물체이므로 공간을 차지합니다.