마지막 서브쿼리문
259
작성한 질문수 17
서브쿼리문
select from (select from ex_member where 1=1) where id = ? 를 쓰면 placeholder 개수를 신경 안써도 된다는건 서브쿼리의 실행여부로 조건구문을 테스트 할 수 있다는 뜻인거죠? 즉, 서브쿼리가 성공적으로 수행되면 placeholder의 개수로 인한 에러가 뜰 것이고, 서브쿼리가 실패하면 테이블 없다는 에러가 뜨는 걸로 테스트 한다고 이해하면 될까요?
그리고 sql 쿼리문 실행과정이 웹 기초 강의에서 구문분석,정규화->컴파일->쿼리 최적화->캐시->실행이라고 하셨는데 서브쿼리문을 쓰게 되면 서브쿼리에서 위의 과정을 한번 거치고, 전체 쿼리에서 위의 과정을 또 거쳐서 총 2번 거치는건가요?
답변 2
1
안녕하세요.
서브쿼리 조건 (참) 성공 시 기존 ex_member 테이블에 대한 결과 반환으로 select * from ex_member where id=? 동일한 쿼리라 보심됩니다.
서비쿼리 실패 (거짓) 시 기존 ex_member 테이블 결과 미반환으로 결과는 거짓으로 되어 결과 반환이 되지 않습니다.
그리고 에러는 발생하지 않습니다. 또한 서브쿼리 작성 시 Alias 별칭은 꼭 사용해주셔야 합니다.
select * from (select from ex_member where 1=1)a where id = ?
서브쿼리를 사용하게 된다고 해도 실행과정이 2번이 아닌 1번으로 전부 진행된다고 보면 될 것 같습니다.
0
답변 감사합니다.
그렇다면 select * from (select from ex_member where 1=1)a where id = ?(서브쿼리o) 이 경우도 결국 placeholder의 개수와 파라미터명에 얽매이는건 마찬가지 아닌가요?
select * from ex_member where 1=1 and id=? -- where id =? (서브쿼리x) 이 쿼리문은 placeholder에 신경써야되는데 서브쿼리문 쓰면 placeholder를 무시해도 된다고 하셔서 질문드립니다.
0
select from (select * from ex_member where 1=1)a where id = ? 의 경우는 placeholder 개수에 영향을 받지 않습니다.
이유는 코딩상으로 PlaceHolder가 1개 그리고 값을 세팅하는 셋터 1개는 동일하기 때문입니다. 여기서 유동적으로 변한다고해도 서브쿼리만 건드리고 조건절은 건드리지 않기 때문에(정확히는 PlaceHolder를 건드리지 않기 때문에) 정상적으로 동작이 됩니다.
직접 코딩을 해보시면서 실습을 해보면 보다 쉽게 이해를 하실수 있으실겁니다 ㅎ
0
13분 25초에 보면 ? 가 여러개일때 문제가 발생한다며 이 방법을 추천 안하다고 하셨습니다. 그러면서 ?를 무시하고 사용하는게 서브쿼리라고 하셨는데 from안에 서브쿼리를 넣으면 ? 가 여러개일때 문제를 생각안해도 된다는건가요? 만약 select * from ? where id = ? and name=? and count=? 이렇게 여러개의 ?가 있어도 서브쿼리가 있으면 ? 부분을 무시하고 사용 가능하다는 건지 질문드립니다.
컬럼명 기반으로 테이블 개수를 출력
2
501
1
외부 자료 학습중 질문사항-메타데이터 추출 불가한 상황
1
478
1
텍스트 인코딩 한국어
1
611
1
강의랑 관련없는 내용이지만
1
527
2
왜 취약점이 존재한다고 판단할 수 있는지 궁금합니다.
2
555
1
스프링을 배우는 게 나중에 웹 취약점 진단에 도움이 될까요?
2
619
1
Fatal error
1
698
1
코드에 있는 이상한 노란박스
1
1797
1
Parse error 마지막 부분 에러
1
450
1
microsoft machine leraning server 구성 요소 오프라인 설치
1
698
1
실무에서의 버프스위트 사용이 궁금합니다!
1
371
1
sql injection이 왜 위협적인 공격인지 궁금합니다.
2
458
1
union 공격 시 최적화 방법 (게시글 상세보기)
2
259
1
질문이 있습니다
1
202
1
한글은 비트추론할때 어떻게 해야하나요?
1
233
1
[SQL 인젝션에 대한 이해] - "검색 기능에 대한 올바른 취약점 점검 방법" 강의 내용에 대해서 질문입니다.
1
741
2
로그인 버튼
1
286
1
php+mssql 연동
1
448
1
취약점 실습 에러가 안나요
1
239
1
php 기반 로그인 기능 제작 관련해서 질문드립니다.
1
368
3
[실습 7-4, 7-5, 7-6] MySQL, MSSQL, Oracle union based 공격 실습 강의 이후 상세보기에서 순차적 데이터 호출 실습 질문
1
316
1
[실습2-1] 취약점 분석 실습 도중에 질문있습니다 !!
2
224
1
[실습6-1]MSSQL ERROR-BASED 공격 실습 관련 질문 내용
2
374
1
ORA-12541
1
897
7





