벌써 혼공단을 반이나!
기본미션
4. 다음 sql문은 회원으로 강비만 하고, 한번도 구매한 적이 없는 회원의 목록입니다. 빈칸에 들어갈 가장 적합한 것을 고르세요
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id=B.mem_id
// ?
ORDER BY M.mem_id;
① JOIN B.prod_name IS NULL
② LIMIT B.prod_name IS NULL
③ HAVING B.prod_name IS NULL
④ WHERE B.prod_name IS NULL
정답: 4
정수형
데이터 형식 |
바이트 수 |
숫자 범위 |
TINYINT |
1 |
-128~127 |
SNALLINT |
2 |
-32768~32767 |
INT |
4 |
약-21억~+21억 |
BIGINT |
8 |
약 -900경~900경 |
문자형
데이터 형식 |
바이트 수 |
CHAR(개수) |
1~255 |
VARCHAR(개수) |
1~16383 |
실수형
데이터 형식 |
바이트 수 |
설명 |
FLOAT |
4 |
소수점 아래 7자리까지 표현 |
DOUBLE |
8 |
소수점 아래 15자리까지 표현 |
날짜와 시간
데이터 형식 |
바이트 수 |
설명 |
DATE |
3 |
YYYY-MM-DD |
TIME |
3 |
HH:MM:SS |
DATETIME |
8 |
YYYY-MM-DD HH:MM:SS |
변수의 사용
SET @변수 이름 = 변수의 값; --변수의 선언 및 값 대입
SELECT @변수이름 --변수의 값 출력
데이터 형 변환
- 명시적 형변환: 함수를 이용하여 데이터 형식을 변환하는 것
- CAST(데이터 형식[길이])
- CONVERT(데이터형식[길이])
- 암시적 형변환: 함수를 사용하지 않고 형이 변환되는 것
JOIN
두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것
가장 많이 사용되는 조인으로 두 테이블에 모두 지정한 열이 었어야함
SELECT <열 목록>
FORM <첫번째 테이블>
INNER JOIN <두번째 테이블>
ON <조인될 조건>
[WHERE 검색 조건];
INNER JOIN을 그냥 JOIN이라고만 써도 INNER JOIN으로 인식
1개의 테이블에만 데이터가 있어도 결과가 나옴
SELECT <열 목록>
FROM <첫번째 테이블(LEFT 테이블)>
<LEFT|RIGHT|FULL>OUTER JOIN<두번째 테이블(RIGHT 테이블)>
ON <조인될 조건>
[WHERE 검색 조건];
- CROSS JOIN: 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인
SELECT * FROM 테이블1 CROSS JOIN 테이블2;
- SELF JOIN: 자신이 자신과 조인,1개의 테이블 사용
SELECT <열 목록>
FROM <테이블> 별칭A
INNER JOIN <테이블> 별칭B
ON <조인될 조건>
[WHERE 검색 조건];
스토어드 프로시저
프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체
DELIMITER $$
CREATE PROCEDURE 스토어드_프로시저_이름()
BEGIN
--SQL 프로그래밍 코딩--
END $$
DELIMITER;
CALL 스토어드_프로시저_이름();
true or false
IF <조건식> THEN
SQL 문장
END IF;
여러가지 경우일 때 처리가능
CASE
WHEN 조건1 THEN
SQL 문장1
WHEN 조건2 THEN
SQL 문장2
WHEN 조건3 THEN
SQL 문장3
ELSE
SQL 문장4
END CASE;
조건식이 참인 동안에 SQL문장들 반복
WHILE <조건식> DO
SQL 문장
END WHILE;