| | | 제 목 | 공부중 질문이 있어요 | | | 글쓴이 | 기사친구 | 작성일 | 2011-04-30 오전 3:09:06 | 조회수 | 566 | | | 글공유 | |
| | | 이영주님 안녕하세요?
in 연산자는 select문에서 where 절에서 사용됩니다.
value in 의 경우에는 제약조건을 걸어줄 때 값이 다음과 같은 범위 내에 있어야 한다..
라는 의미입니다. 따라서 check 조건을 걸어줄 때 value in 을 쓰게 되지요.
value in (a, b, c) 가 맞는 표현입니다.
=과 in 은 다릅니다.
where 절에서 = 을 사용하여 서브쿼리를 작성하게 되면 서브쿼리의 값이 반드시 하나만
나와야 합니다. 그렇지 않으면 에러가 됩니다.
in 의 경우에는 결과값이 여러개 나올 수 있는 것이지요.
그래서 강의에서 말씀드린 대로 OR의 결과가 되는 겁니다.
select name from shop where id ( ) select shopid from staff where id = '10'
위 SQL 문장을 잘 보시면
서브쿼리(부속질의문)이 사용되었습니다.
부속질의문이 사용되는 경우 id is 와 같은 형식은 사용하지 않습니다.
= 연산자나 in , not in , exist , not exist 등을 사용합니다.
만약 =을 쓰게 되면
select shopid from staff where id = '10'
의 결과가 딱 하나만 나와야 합니다.
만약 직원(staff)의 id가 유니크 성질을 가지고 있다면 id = '10' 인 결과값은 하나만
나오겠지요? 그런 경우라면 =을 쓸 수 있습니다.
그러나 다시 강조드리지만 부속질의문의 결과가 하나 이상이 나오는 경우에는 =을 쓰면
에러가 됩니다.
열공하시구요.
마지막까지 힘내세요. ^^
1. in과 value in의 차이가 뭔가요? 그냥 같다고 보면 되나요? 예를들어 constrain 직위 check ( ) (사원, 대리, 과장) 구문이 있으면 둘다 답이되는것인지요?
2. value(a, b, c)와 value in (a, b, c)의 차이를 알려주세요
3. in과 =의 차이는 뭔가요? select name from shop where id ( ) select shopid from staff where id = '10'
위 구문에서 전 답을 is로 생각했는데 in이 답이더라구요 강의때 in은 여러값중에 몇개 택하는거고 =는 택할수 있는 값이 하나일때라고 했던거같은데 택할수 있는 값이 하나면 무조건 = 인가요? 보기에 in과 =이 같이있으면 헷갈릴것 같네요
차이점 설명 좀 부탁드립니다
그리고 항상 친절한 답변 감사드립니다 ㅎㅎ | |
|
|