왜 MYSQL이보다 일반적인 두 개의 등호 대신 조건문에서 하나의 등호를 사용하는지 궁금합니다. 이것에 대한 기술적/역사적 이유가 있습니까? 감사.MYSQL의 동일 함
답변
안녕하세요, 왜 MYSQL이 더 일반적인 두 개의 등호 대신 조건문에서 하나의 등호를 사용하는지 궁금합니다. 이것에 대한 기술적/역사적 이유가 있습니까? 감사.
SQL
은 할당보다 훨씬 더 일반적입니다.
그런 이유로 SQL
은 더 일반적인 구문을 사용하여 더 짧은 구문을 사용합니다.
고전적인 SQL
에서 비교는 문맥에 따라 할당과 구별 될 수 있습니다. 할당은 UPDATE
문에서 SET
절에만있을 수 있습니다. 따라서 한 연산자가 두 연산에 모두 사용될 수 있습니다. SQL
에 MySQL
의 확장에
은 세션 변수에 할당은 SQL의 모호성을위한 경우가 결코 :=
로 표시됩니다. C.J.Date (1987 판), 할당 =
으로 SQL 표준 원래 가이드에서
은 UPDATE
의 SET
절에 사용됩니다. 다른 곳에서는 =
이 사용되고 비교를 위해 사용됩니다.
그러나 C/C++/C#/Java와 같은 다른 언어에서는 =
을 할당으로 사용할 수 있지만 값도 반환합니다. 따라서 a = b
은 "a
을 b
과 같게 설정하고"a
을 반환하는 것을 의미하는 반면, a == b
은 "true
을 반환하고 a
과 b
이 같으면"을 의미합니다. 자바 스크립트/ECMAScript를 같은
일부 언어는 세 번째 유형으로 ===
를 소개합니다 (이 if (a = b)
및 if (a == b)
는 결과가 부울 할 필요가 없기 때문에, 유효한 둘 때문이다., C 프로그램에서 매우 일반적인 버그로 연결) 비교. 해당 언어에서 ==
은 "동일한 유형으로 변환하여 비교"를 의미하는 반면 ===
은 "동일한 유형 및 동일한 값인 경우에만 true
을 반환합니다"를 의미합니다.
SQL은 Ingres의 QUEL에서 진화하지 않았습니다. QUEL은 어떤면에서는 더 나은 디자인 이었지만 SQL로 대체되었습니다. – lavinio
@lavinio : 정확하고 그 부분을 제거했습니다. – Quassnoi