CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
...
CONSTRAINT constraint_name
PRIMARY KEY (column1, column2, ...)
);
ALTER TABLE tablename
DROP PRIMARY KEY;
CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
column3 datatype,
column4 datatype,
...
CONSTRAINT constraint_name
PRIMARY KEY (column1, column2, ..,),
CONSTRAINT constraint_name
FOREIGN KEY (column3, column4, ...) REFERENCES REF_tablename(REF_column)
);
SHOW CREATE TABLE tablename;
ALTER TABLE tablename
DROP FOREIGN KEY FK_constraint;

SELECT COUNT(column)
FROM tablename
WHERE condition;
SELECT SUM(column)
FROM tablename
WHERE condition;
SELECT AVG(column)
FROM tablename
WHERE condition;
SELECT MIN(column)
FROM tablename
WHERE condition;
SELECT MAX(column)
FROM tablename
WHERE condition;
SELECT column1, column2, ..
FROM table
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, column2, ...;
SELECT column1, column2, ..
FROM table
WHERE condition
GROUP BY column1, column2, ...
HAVING condition (Aggregate Functions)
ORDER BY column1, column2, ...;

SELECT UCASE(string);
SELECT LCASE(string);
SELECT MID(string, start_position, lenth);
SELECT LENGTH(string);
SELECT ROUND(number, decimals_place);
SELECT NOW();
SELECT FORMAT(number, decimal_place);
하나의 SQL문 안에 포함되어 있는 또 다른 SQL문
메인쿼리가 서브쿼리를 포함하는 종속적인 관계
-> 서브쿼리는 메인쿼리의 칼럼 사용 가능
-> 메인쿼리는 서브쿼리의 칼럼 사용 불가
Subquery사용 시 주의
-> Subquery는 괄호로 묶어서 사용
-> 단일 행 혹은 복수 행 비교 연산자와 함께 사용 가능
-> Subquery에서는 order by를 사용하지 않음
Subquery 종류
-> Scalar Subquery: SELECT 절에 사용
-> Inline View: FROM 절에 사용
-> 중첩 서브쿼리: WHERE 절에 사용
SELECT column1, (SELECT column2 FROM table2 WHERE condition)
FROM table1
WHERE condition;
SELECT a.column, b.column
FROM table1 a, (SELECT column1, column2 FROM table2) b
WHERE condition;
WHERE 절에서 사용하는 서브쿼리
-> Single Row: 하나의 열을 검색하는 서브쿼리
-> Multiple Row: 하나 이상의 열을 검색하는 서브쿼리
-> Multiple Column: 하나 이상의 행을 검색하는 서브쿼리
서브쿼리가 비교연산자와 사용되는 경우, 서브쿼리의 검색 결과는 한 개의 결과값을 가져야 함
이 글은 제로베이스 강의 자료 일부를 발췌하여 작성되었습니다