답변:
애드혹 은 "이 목적을 위해"라틴어입니다. "즉석"쿼리 또는 "그냥"쿼리라고 부를 수 있습니다. 필요한 곳에서 느슨하게 입력하는 SQL 쿼리의 종류입니다.
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
...의 값에 따라 코드 줄이 실행될 때마다 완전히 다른 쿼리입니다 myId
. 임시 쿼리의 반대편에는 스토어드 프로 시저와 같은 사전 정의 된 쿼리가 있습니다.이 프로 시저에서는 해당 테이블에서 선택하는 일반적인 일반 목적을 위해 단일 쿼리를 작성하고 ID를 변수로 전달합니다.
임시 쿼리는 쿼리가 발행되기 전에 결정될 수없는 쿼리입니다. 필요할 때 정보를 얻기 위해 작성되며 일반적으로 데스크탑 상주 조회 도구로 구성되는 동적으로 구성된 SQL로 구성됩니다.
확인 : http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
또한 임시 쿼리는 SQL 인젝션 공격에 취약하다는 점도 덧붙입니다. 이를 사용하지 말고 대신 매개 변수화 된 SQL을 사용하십시오 ( 예 : Java의 PreparedStatement ).
임시 쿼리는 쿼리가 발행되기 전에 결정될 수없는 쿼리입니다. 필요할 때 정보를 얻기 위해 작성되며 일반적으로 데스크탑 상주 조회 도구로 구성되는 동적으로 구성된 SQL로 구성됩니다. 임시 조회는 컴퓨터 나 데이터베이스 관리 프로그램에 상주하지 않지만 데이터 사용자의 요구에 따라 동적으로 작성됩니다.
SQL에서 임시 쿼리는 느슨하게 입력 된 명령 / 쿼리이며 값은 변수에 따라 다릅니다. 명령이 실행될 때마다 변수 값에 따라 결과가 달라집니다. 미리 정의 할 수 없으며 일반적으로 동적 프로그래밍 SQL 쿼리에서 제공됩니다. 임시 쿼리는 수명이 짧고 런타임에 만들어집니다.
애드혹 쿼리는 하나 또는 다수의 DB 서버에서 사용할 수있는 테이블을 병합에서 특정 레코드를 제공하기 위해 만든 것입니다. 이러한 쿼리는 일반적으로 단일 용도로 사용되므로 나중에 다시 실행하기 위해 저장 프로 시저에 통합하지 않아도됩니다.
임시 시나리오 : 고유 한 변수 세트를 사용하여 특정 데이터 서브 세트에 대한 요청을받습니다. 필요한 결과를 제공 할 수있는 미리 작성된 쿼리가 없으면 임시 쿼리를 작성하여 레코드 세트 결과를 생성해야합니다.
일회용 임시 쿼리 외에 저장 프로 시저가 있습니다 . 즉, DB 인터페이스 도구 내에 저장된 쿼리입니다. 이러한 저장 프로시 저는 모듈 또는 매크로 내에서 순서대로 실행되어 요청시, 일정에 따라 또는 다른 이벤트에 의해 트리거되는 미리 정의 된 작업을 수행 할 수 있습니다.
저장 프로 시저 시나리오 : 매월 동일한 테이블 세트에서 동일한 변수로 보고서를 생성해야합니다 (이러한 변수는 사전 정의 된 특정 값, "현재 달의 끝"과 같은 계산 된 값 또는 사용자 입력 값일 수 있음). 처음에는 임시 쿼리로 프로 시저를 작성했습니다. 정확성을 보장하기 위해 결과를 테스트 한 후이 쿼리를 배포하도록 선택할 수 있습니다. 그런 다음 필요에 따라 쿼리 또는 일련의 쿼리를 모듈 또는 매크로에 저장하여 다시 실행할 수 있습니다.
임시 쿼리는 컴퓨터 정의 유형입니다. 즉,이 쿼리는 필요할 때만 정보를 얻도록 특별히 설계되었습니다. 사전 정의. 이 참조 https://www.youtube.com/watch?v=0c8JEKmVXhU을
SQL injection attacks
... 매개 변수를 사용해야합니다.