작성
·
184
0
초급부터 들으면서 생긴 아주 기초적인 질문이긴 한데요..
SQL문을 쓰다보면,
SELECT 000, 000, 000
DISTINT *,
SUM(*), AVG(*)
LIKE 'a%' (큰따옴표를 쓰는 경우도 있는지는 모르겠네요)
위와 같이 어떤 것은 테이블/컬럼명을 그래도 쓰고,
어떤것은 괄호()로 묶어주고, 어떤 것은 따옴표를 쓰고...
LIKE같은 경우는 데이터 소스명이라기 보다는 문자열 표현이라 좀 구분이 가는데,
DISTINCT/SELECT 등과 SUM 등의 경우와 같이
어떤것은 괄호로 묶어주고, 어떤 것은 아니고
이 기준이 무엇인지 궁금합니다ㅠ
답변 1
0
컬럼명과 테이블명을 그대로 쓸 때는 괄호나 따옴표 없이 바로 쓰면 됩니다.
SELECT a, b, c
SELECT DISTINCT a, b, c : a, b, c의 값이 모두 같은 행이 두 개 이상일 시 중복값은 제거하고 한 번씩만 출력
SELECT * : 테이블의 모든 컬럼 출력
SUM(), AVG() 등은 정해진 기능을 하는 함수입니다. SUM 만으로는 안 되고 괄호까지 붙어야 동작할 수 있어요. 괄호 안에 넣은 값(보통 컬럼)이 함수가 하는 연산의 재료가 됩니다.
SUM(a) : a 컬럼 값들의 합계를 구함
AVG(b) : b 컬럼 값들의 평균을 구함
따옴표는 말씀하신대로 문자열을 쓸 때 필요합니다. a라는 컬럼을 가진 테이블에서 조회하는 쿼리를 쓸 때, 따옴표 없이 a 라고 쓰면 그 컬럼을 의미하는 것이고 'a'라고 쓰면 컬럼과 상관없이 알파벳 a라는 문자 자체를 의미하게 됩니다.
WHERE a = 'sql' : a 컬럽 값이 'sql'인 데이터를 찾음
WHERE a like 'b%' : a 컬럼 값이 b로 시작하는 문자열(banana, black 등)인 데이터를 찾음