반응형
SQL에서 "@"기호는 무엇을합니까?
나는 질문을 훑어 보면서 이것을 발견했다 :
SELECT prodid, issue
FROM Sales
WHERE custid = @custid
AND datesold = SELECT MAX(datesold)
FROM Sales s
WHERE s.prodid = Sales.prodid
AND s.issue = Sales.issue
AND s.custid = @custid
custID 앞에서 "@"가 무엇을하는지 궁금합니다. 선택한 테이블에서 custID를 참조하는 방법 일 뿐입니 까?
@CustID는 나중에 코드에서 값을 제공 할 매개 변수임을 의미합니다. 이것이 SQL 인젝션을 방지하는 가장 좋은 방법입니다. 문자열과 변수를 연결하는 대신 매개 변수를 사용하여 쿼리를 만듭니다. 데이터베이스 엔진은 매개 변수 값을 자리 표시자가있는 위치에 배치하고 SQL 삽입의 가능성이 없습니다.
@는 저장 프로 시저 및 함수 매개 변수 이름과 변수 이름을 나타내는 접두사로 사용됩니다.
정의해야하는 매개 변수입니다. SQL 주입을 방지하려면 모든 변수를 매개 변수로 전달해야합니다.
MySQL의 구문에 익숙 할 수 있습니다. Microsoft SQL @은 MySQL의 구문 과 동일 합니다.?
당신이 말하는 것은 매개 변수화 된 쿼리가 작성되는 방식입니다. '@'는 매개 변수임을 나타냅니다. 실행 프로세스 중에 해당 매개 변수의 값을 추가 할 수 있습니다.
eg:
sqlcommand cmd = new sqlcommand(query,connection);
cmd.parameters.add("@custid","1");
sqldatareader dr = cmd.executequery();
publish data where stoloc = 'AB143'
|
[select prtnum where stoloc = @stoloc]
이것이 @작동 하는 방식입니다.
@ 뒤에 숫자는 함수에 나열된 순서대로 매개 변수입니다.
참고 URL : https://stackoverflow.com/questions/361747/what-does-the-symbol-do-in-sql
반응형
'Program Club' 카테고리의 다른 글
| std :: future의 상태 가져 오기 (0) | 2020.11.08 |
|---|---|
| 플롯에서 파이썬 데이터 포인트에 레이블 지정 (0) | 2020.11.08 |
| Snow Leopard에 Java jdk 7을 설치하는 방법 (0) | 2020.11.08 |
| Homebrew : 새로운 formula @ version 형식으로 사용 가능한 버전 나열 (0) | 2020.11.08 |
| AspNet Core 스캐 폴드 앱의 로그인 및 등록 페이지는 어디에 있습니까? (0) | 2020.11.08 |