null 심화정보 1. IS NULL 과 = NULL은 다릅니다. 간혹 IS NULL을 써야할 자리에 = NULL이라고 쓰는 실수를 하는 분들이 있습니다. 그러니까 이렇게 써야할 SQL 문을 이렇게 써버리는 거죠. 이런 실수를 하면, 위 그림에서 보이는 것처럼 아무 row도 출력되지 않습니다. NULL은 어떤 값이 아니기 때문에 애초에 등호(=)를 사용해서 어떤 값과 비교할 수 있는 대상이 아닙니다. 그래서 = NULL은 절대 True일 수가 없죠. 그래서 IS NULL이라는 키워드가 별도로 마련된 겁니다. 앞으로 NULL인지를 확인할 때는 = NULL을 쓰면 안 되고, 반드시 IS NULL을 써야한다는 점을 꼭 기억하셔야 합니다. 그럼 당연히 != NULL, NULL 같은 것도 쓸 수 없겠죠? 이 표현은 이전 영상에서 .. 데이터베이스/MySQL 3년 전
집계 함수와 산술 함수 이전 영상에서는 한 컬럼의 개수(COUNT) 최댓값(MAX) 최솟값(MIN) 평균값(AVG) 을 구하는 함수들을 배웠습니다. 이 함수들처럼 어떤 컬럼의 값들을 대상으로 원하는 특징값을 구해주는 함수를 Aggregate Function, 우리말로는 집계 함수라고 합니다. 집계 함수에는 이전 영상에서 배운 것 말고도 모든 값의 합을 구하는 SUM 함수, 모든 값의 표준편차를 구하는 STD 함수 등이 있습니다. 각각 다음과 같습니다. 1. SUM 함수 - 합계 2. STD 함수 - 표준편차 그런데 SQL에는 집계 함수 말고도, 단순한 산술 연산을 해주는 Mathematical Function들도 있습니다. 우리 말로 '산술 함수'라고 할 수 있는데요. 산술 함수에는 다음과 같은 것들이 있습니다. ABS 함수 .. 데이터베이스/MySQL 3년 전
정렬 text int 차이점 이전 영상에서 정렬에 대해 잘 배우셨나요? 그런데 정렬을 할 때는 주의해야할 점이 있습니다. 그건 바로 정렬 기준의 데이터 타입이 (1) 숫자형(INT 등)인 경우와, (2) 문자열형(TEXT 등)인지에 따라 정렬 결과가 달라진다는 점입니다. 아래 그림을 보면 ordering_test라는 테이블에서 data 컬럼을 기준으로 오름차순 정렬을 하고 있습니다. 결과를 보니 크기가 작은 수부터 큰 순으로 잘 정렬되었네요. 잠깐 이 data 컬럼의 타입을 한번 볼까요? 정수형을 나타내는 INT가 지정되어 있네요. 자, 이 데이터 타입을 한번 INT에서 TEXT로 바꿔보겠습니다. 바꾸고나서 Apply 버튼을 눌러서 적용할게요. 그 다음 다시 정렬을 해보면 이번에는 이전과 다른 결과가 나왔죠? 왜 그런 걸까요? 그건.. 데이터베이스/MySQL 3년 전
이스케이핑 1. 이스케이핑(escaping) 문제 예를 들어 이 test라는 테이블을 잠깐 봅시다. test 테이블 안에는 sentence라는 컬럼 하나가 있는데요. 각 row의 값들을 보면 위 그림의 빨간 박스 표시처럼 % ' _ " 와 같은 문자들이 있습니다. 그런데 이런 문자들은 일반적인 문자임과 동시에 '어떤 것이 문자열이라는 것을 나타내거나(' / "), 문자열의 특정 패턴을 나타내는' 표현식(%, _)들인데요. 잠깐 이 테이블에서 sentence 컬럼에 퍼센트 기호(%)가 포함된 row를 찾아야한다고 해봅시다. 우리가 이전에 배운대로 먼저 %를 써주고 그 앞 뒤로 임의의 길이의 문자열을 나타내는 %를 또 써준 뒤, 실행했습니다. 하지만 위 결과를 보니 우리가 예상했던 ‘For 51%’만 나온 게 아니라 .. 데이터베이스/MySQL 3년 전