[하드스킬 단련하기] 기본 문법 외
구축이 완료된 테이블에서 데이터를 추출하는 기능
가장 기본 형식은 SELECT ~ FROM ~ WHERE.
SELECT 바로 다음에는 열 이름이, FROM 다음에는 테이블 이름,
WHERE 다음에는 조건식이 나오는데, 조건식을 다양하게 표현함으로써 데이터베이스에서 원하는 데이터를 뽑아낼 수 있다.
또한 SELECT 문에서는 결과의 정렬을 위한 ORDER BY, 결과의 개수를 제한하는 LIMIT, 중복된 데이터를 제거하는 DISTINCT를 등을 사용할 수 있다.
SELECT 열_이름
FROM 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식
ORDER BY 열_이름
LIMIT 숫자
GROUP BY와 함께 주로 사용되는 집계 함수는 다음과 같다
SUM() : 합계
AVG() : 평균
MIN() : 최소값
MAX() : 최대값
COUNT() : 행의 개수
COUNT(DISTINCT) : 행의 개수(중복은 1개만 인정)
데이터베이스와 테이블을 만든 후 데이터를 변경하는, 입력/수정/삭제하는 기능이 필요하다.
INSERT는 테이블에 데이터를 삽입하는 명령이다.
INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
UPDATE는 기존에 입력되어 있는 값을 수정하는 명령이다.
UPDATE 테이블_이름
SET 열1=값1, 열2=값2, ...
WHERE 조건 ;
DELETE는 행 단위로 삭제하며 형식은 다음과 같다.
DELETE FROM 테이블 이름 WHERE 조건 ;
데이터를 만들 때는 데이터 형식을 설정해야 한다. 데이터 형식에는 크게 숫자형, 문자형 날짜형이 있고, 세부적으로는 여러 개로 나뉘기도 한다. 이렇게 다양한 데이터 형식이 존재하는 이유는 실제로 저장될 데이터의 형태가 다양하기 때문이다.
1. 정수형
정수형은 소수점이 없는 숫자, 즉 인원 수, 가격, 수량 등이 있다.
데이터 형식 : TINYINT/SMALLINT/INT/BIGINT
2. 문자형
문자형은 글자를 저장하기 위해 사용하며, 입력할 최대 글자의 개수를 지정해야 한다.
데이터 형식 : CHAR(개수)/VARCHAR(개수)
CHAR는 문자를 의미하는 Character의 약자로, 고정길이 문자형이라고 부른다. 즉 자릿수가 고정되어있다.
이와 달리 VARCHAR(Variable Character)는 가변길이 문자형으로, VARCHAR(10)에 '가나다' 3글자를 저장할 경우 3자리만 사용한다.
대량의 데이터 형식
문자형인 CHAR는 최대 255자까지, VARCHAR는 최대 16383자까지 지정이 가능하다. 그래서 더 큰 데이터를 저장하려면 다음과 같은 형식을 사용한다.
TEXT 형식 : TEXT/LONGTEXT
BLOB 형식 : BLOB/LONGBLOG
TEXT로 지정하면 최대 65535자까지, LONGTEXT로 지정하면 최대 약 42억자까지 저장된다. BLOB는 Binary Long Object의 약자로, 컴퓨터에서 이미지나 사운드 등 크기가 비교적 크면서, 바이너리 형식으로 다루어지는 데이터들 가리킨다.
3. 실수형
실수형은 소수점이 있는 숫자를 저장할 때 사용한다.
데이터 형식 : FLOAT/DOUBLE
4. 날짜형
날짜형은 날짜 및 시간을 저장할 때 사용한다.
데이터 형식 : DATE/TIME/DATETIME
DATE는 날짜만, TIME은 시간만, DATETIME은 날짜와 시간을 둘 다 저장한다
SQL도 다른 일반적인 프로그래밍 언어처럼 변수를 선언하고 사용할 수 있다.
SET @변수이름 = 변수의 값 ; -----------> 변수의 선언 및 값 대입
SELECT @변수이름 -------------> 변수의 값 출력.
문자형을 정수형으로 바꾸거나, 반대로 정수형을 문자형으로 바꾸는 것을 데이터의 형 변환(type conversion)이라고 부른다. 형 변환에는 직접 함수를 사용해서 변환하는 명시적인 변환과 별도의 지시 없이 자연스럽게 변환되는 암시적인 변환이 있다.
데이터 형식을 변환하는 함수는 CAST(), CONVERT()이다. 형식만 다를 뿐 동일한 기능을 한다.
CAST( 값 AS 데이터_형식 [ (길이) ] )
CONVERT( 값, 데이터_형식 [ (길이) ] )
조인(Join)이란 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다.
두 테이블을 연결할 때 가장 많이 사용되는 것. 두 테이블의 조인을 위해서는 테이블이 일대다(one to many) 관계로 연결되어야 한다.
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN <두 번째 테이블>
ON <조인될 조건>
내부 조인은 두 테이블에도 모두 데이터가 있어야만 결과가 나오지만, 외부 조인은 한 쪽에만 데이터가 있어도 결과가 나온다.
SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
ON <조인될 조건>
상호 조인은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능을 말한다. 그래서 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 개수가 된다. 상호 조인의 주 용도는 테스트하기 위해 대용량의 데이터를 생성할 때이다.
자신이 자신과 조인한다는 의미이다. 그래서 1개의 테이블을 사용하고, 별도의 문법이 없다.