2012-05-12 5 views
2

그래서 C++이나 VB와 같은 일반적인 사용 프로그래밍 언어와 함께 쿼리 언어가 정확히 어떻게 작동하는지 기사 나 포럼 게시물을 찾지 못했습니다. 그래서 나는 그것을 묻지 않을 것이라고 생각합니다. <쿼리 언어의 역할에 대해 혼란 스럽습니다

기본적으로 간단한 데이터베이스를 만드는 경우 쿼리 언어의 역할 (쿼리 언어 및 VB6은 SQL을 예제 언어로 사용합니다)을 이해하는 데 어려움을 겪어 왔습니다. 일반적인 정보 (성, 이름, 주소 등)로 테이블을 채우는 쿼리. 나는 커넥션과 겹침에 AD 객체를 사용하여 이와 같은 프로그램을 설정하는 단계를 어느 정도 알고 있지만, 2의 어떤 언어가 어떤 것에 사용되는지 결정하는 방법은 무엇입니까? vb6은 특별히 루프와 같은 기본 사항을 처리합니까? 그렇지 않으면 vars를 선언하고 SQL은 데이터베이스에 연결하고 검색, 필터링 및 정렬과 같은 작업을 구체적으로 처리합니까? 대신 SQL 구문에서 특정 일반 사용 vb6 작업 (루프 또는 조건부)을 수행 할 수 있습니까? 어떤 도움 이라든지 대단히 감사 할 것입니다.

답변

5

SQL은 데이터베이스를 쿼리하는 언어입니다. SQL은 ISO standard이고 관계형 데이터베이스 공급 업체는 ISO 표준을 구현 한 다음 자체 사용자 지정을 추가합니다. 예를 들어 SQL Server에서는 T-SQL이라고하며 Oracle에서는 PL-SQL이라고합니다.....

select columname from tablename where columnname=1 

그러나, 각각의 문자열 함수, 날짜 함수 등 다른 구문이 같은 선택 그들은 ISO 표준을 구현하는 모두와 각각의 간단한에 대해 동일한 쿼리를해야합니다

는 ISO SQL 표준

디자인에 의해 루핑, 서브 루틴, VB와 같은 전체 절차 언어에서와 같은 요법과 전체 절차 언어되지 않습니다. 그들의 버전

그러나, 각각의 벤더가 추가 한 기능이 일부 기능을 추가한다.

예를 들어 T-SQL 및 PL-SQL 둘 수의 언어의 다양한 구조를 사용하여 기록을 "루프".

많은 개발자가 잘 조정되지 않은 데이터로 작업 할 때 차이점이 있습니다. 이는 절차 기반 대 운영 방식을 기반으로 설정됩니다.

데이터베이스는 절차 적 구문과 함께 작동 할 수 있지만 종종 집합 기반을 사용하면 더 효율적입니다. 이 개념에 정통하지 않은 개발자는 매우 비효율적 인 쿼리를 작성하게 될 수 있습니다. Here's an example of this discussion.

어떤 상황이든이 작업을 수행하는 것이 가장 좋은 위치의 프로/콘의 무게를 줄여야합니다.

SQL을 사용하는 언어의 루프와 같은 절차 적 구문을 사용하는 경향이 있습니다. 유지 관리가 더 쉬워졌고 사용중인 언어가 작업을 완료하는 데있어보다 강력한 구문을 제공합니다.

그러나 두 옵션을 도구 상자의 도구로 유지합니다. 예를 들어 SQL에서 데이터 변환 스크립트를 작성했으며이 경우 SQL에서 루핑 구문을 사용했습니다.

+0

이것은 많은 혼란을 없앴습니다. 고마워 친구. – Garrettchap1

1

프로그래밍 언어는 클라이언트 측 (앱 서버도)에서 실행되며 쿼리 언어는 db 서버에서 실행되므로 결국에는 모든 작업을 넣을 위치에 따라 달라집니다. 때로는 프로그래밍 언어로 계산을하고 db 서버를 더 많이 사용하고 쿼리 언어 또는 더 나은 tsql/psql 등을 사용하여 결국 클라이언트 측에서 많은 작업을 수행 할 수 있습니다.

+0

이 답변은 다른 사람들이 제시 한 질문보다 훨씬 좋은 질문이라고 생각합니다. 어쩌면 원래의 질문은 OP가 실제로 나온 것이 아니라 "SQL은 무엇을합니까?"와 같은 대답을 알고 싶어했을 것입니다. – Bob77

1

관계형 데이터베이스는 데이터를 관리하도록 설계되었습니다. 특히 대량의 데이터를 위해 메모리, 디스크 및 프로세서를 관리하는 효율적인 메커니즘을 제공합니다. 또한 관계형 데이터베이스는 여러 클라이언트를 처리하고 트랜잭션 무결성, 보안, 백업, 지속성 및 기타 여러 기능을 보장 할 수 있습니다.

일반적으로 다른 언어로 RDBMS를 사용하는 경우 데이터 구조를 먼저 디자인 한 다음 두 API 간의 API (응용 프로그램 프로그래밍 인터페이스)에 대해 생각하고 싶습니다. 이는 앱/서버 관계가있는 경우 특히 그렇습니다.

많은 데이터를 사용하지만 최소한의 일괄 처리 만 변경 한 "단순한"유형의 응용 프로그램의 경우 합리적인만큼 많은 처리 작업을 데이터베이스로 옮기고 싶습니다.

  1. 검색어를 사용하여 항목을 배열에로드 한 다음 언어 수준에서 배열 조작을 수행합니다. SQL은 이에 대한 조인을 제공합니다.
  2. 배열에 데이터를로드하고 배열에서 조작 및 요약을 수행합니다. SQL은 이에 대한 집계를 제공합니다.
  3. 데이터를 백업 파일로 저장하십시오. 데이터베이스는 백업 메커니즘을 제공합니다.

데이터가 배열이나 Excel 스프레드 시트에 저장되는 경우 해당 데이터를 시작하는 것으로 충분할 수 있습니다. 요구 사항을 확장하기 시작할 때 (여러 클라이언트, 보안, 다른 데이터와의 통합) 데이터베이스의 장점이 더 분명 해집니다.

이는 단지 지침이며 몇 가지 아이디어를 제공하기위한 것입니다.

1

어디서나 할 수있는 것처럼 SQL에서 현명한 (서버에서 실행되는 경우) 것이 좋습니다.

그래서 (사이비 코드)처럼 물건을하지 않는다 예를 들어

foreach(row in "Select * from Orders") 
    if (row[CustomerID] = 876) 
    Display(row) 

는 수행

foreach(row in "Select * from Orders where CustomerId = 876") 
    Display(row) 

첫째는 모든 876s는 방법 빨리 주문 찾을 수 있도록 CustomerID를 색인되는 것 주문입니다 .

두 번째로 첫 번째 단계는 네트워크의 클라이언트 메모리 공간에 해당 테이블의 모든 레코드를 빨아 들였습니다.

사용되는 언어는 본질적으로 관련이 없으므로 자신의 언어로 자신의 DBMS를 만들 수 있습니다.

중요한 처리가 이루어지는 곳입니다. 예외가있는 규칙이지만 필수 아이디어는 백엔드가 가능한 한 많이 할 수있게하는 것입니다.

관련 문제