programing

SQL 쿼리에서 콜론 기호 ":"의 역할은 무엇입니까?

goodjava 2023. 3. 16. 21:28

SQL 쿼리에서 콜론 기호 ":"의 역할은 무엇입니까?

무엇인가.:질문에서 무엇을 의미합니까?

INSERT INTO MyTable (ID) VALUES (:myId)

원하는 값을 가져오려면 어떻게 해야 합니까?

편집: 그리고 저 표지판의 이름은 무엇입니까?구글에서 검색하려고 했는데 이름이 뭐예요?:?

쿼리에서 ":"는 무엇을 의미합니까?

바인드 변수바인드 변수를 사용하면 단일 SQL 문(쿼리든 DML이든)을 여러 번 재사용할 수 있으므로 보안(SQL 주입 공격을 허용하지 않음) 및 성능(필요한 구문 분석 양을 줄임)이 향상됩니다.

원하는 값을 가져오려면 어떻게 해야 합니까?

Oracle에 의해 쿼리(또는 DML)가 실행되기 전에 프로그램에서 커서를 만듭니다.프로그램에서 해당 커서에 대해 구문 분석할 SQL을 발행한 다음 SQL에서 참조하는 각 바인딩 변수의 값을 바인딩해야 합니다.이것은 언어에 따라 다릅니다.

저 표지판의 이름은 무엇입니까?

대장.

Oracle에서는 이를 바인드 변수라고 합니다.

":"의 이름이 뭐죠?

대장

콜론:는 관련된 파라미터가 있음을 나타내기 위해 HQL 휴지 상태 쿼리 언어로 사용됩니다.

즉, SQL SYNTASS:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID

HQL 구문과 동일합니다.

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

empID매개 변수의 로컬 변수...

이게 도움이 됐으면 좋겠다.

이것은 명명된 쿼리 매개 변수에 대한 태그이며 쿼리의 실제 구문의 일부가 아닙니다.태그는 실제로 실행되기 전에 쿼리를 만드는 코드에 지정된 값으로 대체됩니다.

이름 있는 파라미터입니다.

C#에서는 파라미터 앞에 @를 붙입니다(여기를 참조).

다음 문장을 고려하십시오.

select name from T_emp where id=1;
select name from T_emp where id=2;
select name from T_emp where id=3;

문이 실행될 때마다 Oracle은 동일한 쿼리가 이전에 발생했는지 확인합니다.동일한 쿼리를 찾으면 동일한 실행 계획을 사용합니다.그렇지 않으면 다양한 실행 경로를 찾아 최적의 실행 계획을 수립하고 실행해야 합니다.

인간과는 달리 아이디만 바뀌었다는 것을 인지할 만큼 똑똑하지 않다(위의 예와 같다.그래서 그것은 모든 어려움을 겪고 그것을 실행한다.

그러나 Oracle에 이와 유사한 문장이며 동일한 실행 계획인 BIND VARILE을 사용할 수 있음을 알리는 방법이 있습니다.아래의 예를 참조하십시오.

declare
  v_id number;
  v_name varchar2(30);
  type c is ref cursor;
  c1 c;
begin
  for i in 1..100
   loop
    open c1 for 'select * from T_emp where id = :x' using i;
    fetch c1 into v_name;
    dbms_output.put_line('name is ' || v_name);
   end loop;
END;

바인드 변수를 사용하면 성능이 10배 향상됩니다.PL/SQL은 바인드 변수 자체를 사용합니다(명시적으로 알릴 필요는 없습니다).

Delphi 쿼리의 파라미터 구문이기도 합니다.

이 비디오의 처음 몇 분간은 매우 유용하다는 것을 알았습니다.https://www.youtube.com/watch?v=K6VfcRALxW4

추출 방법: 바인드 변수라고 하며, 수신 대기 중인 사용자 입력의 자리 표시자입니다.

언급URL : https://stackoverflow.com/questions/2177978/what-does-the-colon-sign-do-in-a-sql-query