11월25일 SQL(<> , LIKE,연산자)

박재용·2020년 11월 25일
0

오늘 mbti 세션을 강제로 들었다 . (다들려서 ..)
내 유형은 infp 유형으로 나왔다 . . .
본론으로 들어와서

  • <> 표현식
    sql 에서 <>는 포함하지 않는다는 의미이다 . (아래 테이블은 tags의 테이블이다)
    예를들어 .
    +----+--------------------+
    | id | name |
    +----+--------------------+
    | 1 | 업계연봉수준 |
    | 2 | 투자 |
    | 3 | 인원성장률 |
    | 4 | 퇴사율 |
    | 5 | 인원수 |
    | 6 | 업력 |
    | 7 | 근무.휴가 |
    | 8 | 보상 |
    | 9 | 기업문화 |
    | 10 | 식사.간식 |
    | 11 | 편의시설 |
    | 12 | 가족 |
    | 13 | 출퇴근 |
    | 14 | 건강.여가 |
    | 15 | 교육 |
    | 16 | 기타 |
    +----+--------------------+

위와 같은 테이블이있고 id 가 2번인 항목을 포함하고 싶지 않는다면 다음과 같이 작성한다 .
select * from tags where id<>2;

다음과 같은 결과를 얻을수있다 .
+----+--------------------+
| id | name |
+----+--------------------+
| 1 | 업계연봉수준 |
| 3 | 인원성장률 |
| 4 | 퇴사율 |
| 5 | 인원수 |
| 6 | 업력 |
| 7 | 근무.휴가 |
| 8 | 보상 |
| 9 | 기업문화 |
| 10 | 식사.간식 |
| 11 | 편의시설 |
| 12 | 가족 |select name from tags where nameselect name from tags where name LIKE '기%'; LIKE '기%';select name from tags where name LIKE '기%';
| 13 | 출퇴근 |select name from tags where name LIKE '기%';
| 14 | 건강.여가 |
| 15 | 교육 |
| 16 | 기타 |
+----+--------------------+

  • Like 표현식 . (패턴 매칭에 의한 검색)
    Like 를 써서 문자열의 일부분을 비교하는 부분검색을 할 수 있습니다 .
    예를들어 .
    아까와 같은 tags테이블이 있다고 할때 .
    name 열 에서 문자열 "기" 가 포함되어있는 행을 뽑아 내고싶다면 다음과 같은 쿼리문을 쓴다 .

select name from tags where name LIKE '기%';
(select * from 테이블명 where 열명 LIKE '패턴%';) 식으로 사용하면된다 .
하지만 이와 같이 '기'라는 문자열을 포함하는것은 '기'라는 문자열로 시작한것만 검색된다 .
ex ) 기러기 , 숫기 라고있을때 기러기는 검색되지만 숫기는 검색되지 않는다 . -ㅅ- 불편 ...
만약 시작이아닌 문자열 도중에 존자하는 '기' 라는 문자열을 찾기위해서는 패턴을 바꾸어 줄 필요가 있다 .
select name from tags where name LIKE '%기%'; 다음과 같이 바꾸어주면 된다 .
이처럼 첫번째 '기%' 패턴은 전방일치 2번째 패턴은 '%기%' 중간일치 마지막으로 3번빼
후방 일치인 '%기'패턴이 있다 .
각각 1 . 기차표 2. 숫기 , 3 책읽기 와같이 패턴으로 나뉜다
1= 전방 , 2 중간 , 3 후방 으로 '기'의 문자열을 찾는다 .

  • 조건식
    다음과 같은 조건식이 있을때 And는 or보다 우선순위를 가지고 있어서 실행에 주의할 필요가있다 . a가 1 또는 a가 2 인과 동시에 b가 1 또는 2인 행을 가지고 싶을때 조건식이다
    Select * from sample24 where a=1 or a=2 and b=1 or b=2 와 같이 하면
    and의 우선순위가 높으므로 a=1 or (a=2 and b=1) or b=2 가 된다 .
    그러므로 다음과 같이 써준다 .
    (a=1 or a=2) and (b=1 or b=2) 와같이 ()로 정해주면 ()를 먼저 우선으로 계산한다 .
profile
박재용이란 사람이 복습을 하기위해 만든 벨로그 입니다 . 잘부탁드려요

0개의 댓글