명령프롬프트에 타이핑을 하면서 내가 이렇게 명령하면 데이터가 이렇게 나오고 저렇게 명령하면 데이터가 저렇게 나오는게 너무 재미있다.
브라켓이나 이클립스와는 다르게 엔터만 치면 내가 작업한 코드가 작동되서 모니터에 나타난다.
결과를 바로바로 볼 수 있다는게 이렇게 좋을 줄 몰랐다.ㅎㅎ
그래서 사람들이 "빨리빨리" 그러는가 보다.ㅋㅋㅋㅋㅋ
그럼 빨리 SQL 수업 시작 이라고 해 놓고 이틀 뒤 업로드하는 나...
null값 검색
null값을 검색하려면 열 is null 이라고 쓰면 된다.
*is not null도 있다.
조건 조합하기
and는 왼쪽, 오른쪽 식이 모두 참이여야 검색결과를 반환한다. -> 조건을 모두 만족해야 한다.
or은 하나라도 참이 되면 된다.
and는 미니멀리스트라 자기 마음에 하나라도 안 들면 안 되고 or은 멕시멈리스트라서 다 가지거라고 외우면 되겠당!
테이블에서 and와 or을 써서 데이터를 검색해봤다.
and를 써서 a열에서 0이 아닌 셀 그리고 b열에서 0이 아닌 셀을 검색.
or를 써서 a열에서 0이 아닌 셀 또는 b열에서 0이 아닌 셀을 검색.
and와 or가 섞여 있으면 and가 우선 순위가 높다. and가 알파벳 a로 시작해서
그럴 때는 헷갈리니까 어떻게 한다? 괄호로 묶어 준다~ 괄호 쓰는 건 습관을 꼭 들여놔야겠다!
*not은 !로 사용가능하다.
*조건을 만들 때는 부정 조건보다 긍정 조건이 인식하기 편하다. ex) birthday가 null값인 열(긍정), birthday가 null값이 아닌 열(부정)
~where no=1 or 2 는 잘못된 코드다. ~where no=1 or no=2라고 써줘야 한다. 0을 뺀 상수는 무조건 참으로 인식한다. 그래서 저 잘못된 코드를 해석해보면 no=1은 참이고 2도 참이기 때문에 or은 양쪽 조건문 모두 참으로 인식하고 모든 데이터를 검색해서 반환하게 된다. 잘못된 방법이니까 쓰지 않도록 주의하기!
패턴 매칭
특정 문자를 포함하여 검색
코드는 열 like 패턴이라고 쓴다.
패턴이 들어간 자리에 특정문자를 넣으면 된다. 패턴은 %(문자열), _(문자)로 퍼센트와 언더스코어를 써서 만든다.
*숫자는 패턴을 안 만든다.
테이블에 있는 SQL 단어를 검색해봤다. %와 _는 메타문자이기 때문에 작은따옴표 안에 넣어줘야 한다.
'SQL%'은 SQL로 시작하는 데이터를 검색한다.
저기서 %SQL% 으로 쓰면 SQL이 들어간 모든 데이터를 검색한다.
*'SQL_' 는 SQL로 시작하는 글자 하나, 'SQL__' 글자 둘을 검색한다. 언더스코어를 연달아서 쓰면 하나씩 늘어난다.
*%를 앞에 쓸 수 있지만 선호하지 않음. 왜냐면 검색속도가 느려진다.
데이터베이스에서 검색속도를 높이기 위해 인덱스를 쓴다. %를 앞에 쓰면 인덱스가 동작 안 함. 어마어마한 차이라고
이스케이프
내가 만약 %나 _를 검색해야 한다면?! 걱정 ㄴㄴ \를 앞에 붙여주면 문자로 인식한다.
큰따옴표도 \를 붙여서 \""로 쓰면 된다.
문자열 안에 작은따옴표를 써야 할 때는 따옴표를 하나 더 써주면 된다. ex) It's -> 'It''s'
정렬 - 마지막 작업
select 열 from 테이블명 where 조건식 order by 열
order by로 데이터의 정렬을 어떻게 할지 설정할 수 있다. order by 뒤에 열이 오는 이유는 테이블의 어떤 열을 기준으로 정렬할 것인지 정하기 위해서다.
데이터는 들어간 순서대로 정렬되기 때문에 원하는 정렬이 있다면 따로 지정해줘야 한다.
아래는 데이터를 나이순으로 정렬했봤다.
order by는 where 없이 써도 된다. 꼭 지켜야 할 것은 맨 마지막에 써야 하는 것.
그리고 order by 뒤에 열을 여러개 쓸 수 있는데 제일 처음에 온 열이 우선순위가 높다.
asc : 오름차순(디폴트)
desc : 내림차순
'학원 수업' 카테고리의 다른 글
9일차 - JAVA '제어문 if(조건문)' (0) | 2021.10.11 |
---|---|
9일차 - SQL '연산하기' (0) | 2021.10.11 |
7일차 - java '연산자' (0) | 2021.10.07 |
6일차 - SQL '테이블 구조' (0) | 2021.10.06 |
5일차 - java '형변환' (0) | 2021.10.05 |