All Articles

SQL 첫걸음 - 5강 테이블 구조 참고하기, 6강 검색 조건 지정하기

5강 테이블 구조 참고하기

테이블 열 자료형

  • CHAR형

CHAR형은 문자열을 저장할 수 있는 자료형이다. 언제나 고정된 길이로 데이터가 저장되어 ‘고정 길이 문자열’ 자료형이라고도 한다. 최대 길이보다 작은 문자열을 저장하면 모자란 길이만큼 공백이 그 자리를 채워서 저장된다.

필드 속성을 CHAR(5)로 지정하고 ‘ABC’라는 문자열을 저장한다면, 나머지 두 자리는 공백이 채운다.

1 2 3 4 5
A B C
  • VARCHAR형

CHAR형과는 달리 ‘가변 길이 문자열’이다. 저장된 데이터 크기에 맞춰 저장공간 크기도 변경된다. 필드 속성을 VARCHAR(5)로 지정하고 ‘ABC’라는 문자열을 저장한다면, 공백 없이 저장된다.

1 2 3
A B C

6강 검색 조건 지정하기

SELECT 구에서 열 지정하기

SELECT 열1, 열2, … FROM 테이블명;

2개 이상 열은 콤마(,)를 이용해 구분하며, 여러 개를 지정할 수 있다. 테이블과 동일한 순서가 아니어도 되며 보길 원하는 순서대로 열을 지정하면 된다. 별 의미는 없지만 동일한 열을 중복해서 지정해도 된다.

WHERE 구에서 행 지정하기

SELECTFROM 테이블명 WHERE 조건식;

이때 순서는 무조건 ‘SELECT 구 - FROM 구 - WHERE 구’여야 한다.

  • 조건식

WHERE구에 들어가는 조건식 ‘no = 2’는 no 열 값이 2일 경우에 참이 되는 조건이다. = 연산자는 비교한 결괏값이 참인지 거짓인지 반환하므로 ‘비교 연산자’라 부른다. 일치하지 않는 값을 찾으려면 <> 연산자를 사용한다.

sample_table

no name birthday
1 곰돌이 2020-01-01
2 야옹이 2018-05-15
3 멍멍이 NULL

SELECT * FROM sample_talbe WHERE no<>2;

no name birthday
1 곰돌이 2020-01-01
3 멍멍이 NULL

no 열 값이 2가 아닌 행만 리턴한다.

문자열형의 상수

문자열형을 비교할 때는 싱글쿼트(’ ‘)로 둘러싸 표기한다. 날짜시간형도 싱글쿼트로 둘러싸 표기한다. 연월일은 하이픈(-)으로 구분한다. 시분초는 콜론(:)으로 구분한다.

SELECT * FROM sample_talbe WHERE name=‘야옹이’;

no name birthday
2 야옹이 2018-05-15

SELECT * FROM sample_talbe WHERE birthday=‘2020-01-01’;

no name birthday
1 곰돌이 2020-01-01

한편, 자료형에 맞게 표기한 상수값을 ‘리터럴(literal)‘이라고 한다. (뜬금X)

NULL값 검색

= 연산자로는 NULL값을 검색할 수 없다. NULL을 검색할 때는 = 대신 IS NULL을 사용한다.

SELECT * FROM sample_talbe WHERE birthday IS NULL;

no name birthday
3 멍멍이 NULL

반대로 NULL이 아닌 값을 찾고 싶다면 IS NOT NULL을 사용한다.

SELECT * FROM sample_talbe WHERE birthday IS NOT NULL;

no name birthday
1 곰돌이 2020-01-01
2 야옹이 2018-05-15

비교연산자 종류

  • = : 좌변과 우변 값이 같을 경우 참
  • <> : 좌변과 우변 값이 같지 않을 경우 참
  • > : 좌변 값이 우변 값보다 클 경우 참. 같거나 작다면 거짓
  • < : 좌변 값이 우변 값보다 작을 경우 참. 같거나 크다면 거짓
  • >= : 좌변 값이 우변 값보다 크거나 같을 경우 참. 작다면 거짓
  • <= : 좌변 값이 우변 값보다 작거나 같을 경우 참. 크다면 거짓