Head First SQL 2. SELECT문

귀가길·2022년 4월 21일
0

Head First SQL

목록 보기
3/3
post-thumbnail

SQL문장에서 WHERE절을 사용하면 데이터베이스 시스템에 무엇을 찾는지 전달할 수 있습니다.

SELECT * FROM music_list
WHERE music_name = 'Passionate Goodbye';

이때 music_list에 있는 Passionate Goodbye 곡을 찾는 SELECT문에서 곡 이름을 작은따옴표('')로 감싸고 있습니다. 이렇게 하는 이유는 music_list에서 music_name을 VARCHAR(30)으로 선언했기 때문입니다. mysql에서는 CHAR, VARCAHR, DATE, DATETIME, TIME, TIMESTAMP, BLOB 등의 타입은 데이터를 넣을때 ''를 필요로하고, DEC과 INT는 ''를 필요로 하지 않습니다.

이때문에 ''을 사용해서 데이터를 넣을때 주의해야합니다.

> INSERT INTO music_list
  VALUES
  ("Passionate Goodbye", "MP3", "Toy", ...);
'>
'>;

위의 예시에선 Toy's... 부분에 '를 입력데이터의 끝이라고 받아들여 '가 불안전하게 끝나게 되었습니다. 그렇게되면 프롬프트는 '>를 반복해서 출력합니다. 만약 VARCHAR, CHAR, BLOB등의 타입에서 '가 포함된 문자열을 쓸경우 '앞에 \( \ )를 붙여서 '가 문자열의 일부임을 명시해 줄 수 잇습니다.

그런데 처음에 사용한 sql문은 데이터가 많으면 많을수록 표시하는 데이터가 많아져 가독성이 떨어집니다. 그리고 필요한 데이터만 찾아보기도 어려워지죠 그래서 필요한 데이터를 따로 뽑아서 쓸 수 있습니다.

SELECT music_name, music_type
FROM music_list;

조건에 맞는 테이블을 찾는 SELECT문을 사용할 수 있습니다.

...
WHERE
main = 'soda'
AND
amount1 > 1;

조건에 맞는 SELECT문 찾기

  • 비교연산자는 =(같다), <>(같지않다), <,>(보다 작다), <=,>=(보다 크거나 같다)등이 있다.
  • BETWEEN을 이용해 일정 범위의 값들을 찾을수 있으며 (<=,>=)로 범위를 정한다고 이해하시면 됩니다.
  • AND와 OR을 이용해서 필요한 데이터를 찾을 수 있는데 AND는 둘다 참인 경우, OR는 둘중 하나라도 참인 경우 데이터를 불러옵니다.
    • OR의 경우 IN이라는 키워드를 이용해 괄호 안에 여러 값들 중 하나와 일치하면 그 행 또는 지정된 열들이 반환됩니다.
    • 반대로 NOT IN을 사용하면 괄호안에 있는 여러 값들중 하나도 일치하지 않는 행을 반환합니다.
    • NOT은 BETWEEN이나 LIKE와 함께 사용할 수 있으며 WHERE바로 다음에 나와야합니다.
  • LIKE를 써서 데이터를 조회할 수도 있다. LIKE뒤에 %와 _를 쓸수 잇는데 %는 '%~'형태로 사용하고 ~로 끝나는 단어를 찾아줍니다. _는 '_~'형태로 사용하고 불특정한 문자 하나를 대신해 줍니다.
profile
블록체인 개발자

0개의 댓글

관련 채용 정보