기본 데이터 타입
정수형 - TINYINT, SMALLINT, INT, BIGINT 문자형 - CHAR(개수), VARCHAR(개수) 대량 데이터 - TEXT, LONGTEXT, BLOB, LONGBLOB → 텍스트, 동영상 실수형 - FLOAT, DOUBLE 날짜형 - DATE, TIME, DATETIME
변수
SET @변수이름 = 변수 값;
SELECT @변수이름;
WHERE에는 사용가능하지만 LIMIT에는 사용불가 → PREPARE ~ EXECUTE 문 사용
SET @COUNT = 3;
PREPARE mysql FROM 'SELECT mem_name, height FROM member ORDER BY height LIMIT ?';
EXECUTE mysql USING @COUNT;
데이터 형변환
CAST(값 AS 데이터형식)
CONVERT(값, 데이터형식)
-- 예시
SELECT CAST(AVG(price) AS SIGNED) '평균가격' FROM buy;
내부조인 일대다 관계(기본키PK-외래키FK), 두 테이블에 모두 있는 내용만 출력
SELECT 열 목록
FROM 테이블1
INNER JOIN 테이블2
ON 조인 조건
WHERE 검색 조건
-- 테이블명 뒤에 별칭을 설정해 사용하는 것 권장
외부조인 필요한 내용이 한쪽 테이블에만 있어도 됨
SELECT 열 목록
FROM 테이블1(LEFT)
[LEFT|RIGHT|FULL] OUTER JOIN 테이블2(RIGHT)
ON 조인 조건
[WHERE 검색 조건]
상호조인 한쪽 테이블의 모든 행과 다른 테이블의 모든 행을 조인 랜덤하게 조인됨.
자체조인 테이블 1개로 조인.
SELECT 열 목록
FROM 테이블1 별칭1
INNER JOIN 테이블2 별칭2
ON 조인 조건
[WHERE 검색 조건]
-- 같은 테이블이지만 별칭을 다르게 설정해 사용
스토어드 프로시저 : SQL프로그래밍의 기본 골격
DELIMITER $$
CREATE PROCEDURE 프로시저 이름()
BEGIN
*코드작성*
END $$
DELIMITER ;
CALL 프로시저 이름()
IF문
IF 조건 THEN
코드
END IF;
CASE문
WHEN 조건1 THEN
코드
WHEN 조건2 THEN
코드
WHEN 조건3 THEN
코드
ELSE
코드
END CASE;
-- SELECT문에 사용하고 END뒤에 문자열을 작성해면 문자열의 이름을 가진 열이 생성됨.
WHILE문
WHILE 조건 DO
코드
END WHILE;
ITERATE [레이블] -- continue
LEAVE [레이블] -- break
동적 SQL : PREPARE의 코드부분에 ?을 삽입하고 EXECUTE에서 값을 전달할 수 있음.
PREPARE myquery FROM ‘코드’;
EXECUTE myquery;
DEALLOCATE PREPARE myquery;