USE 데이터베이스명;
CREATE DATABASE 데이터베이스명
DROP DATABASE 데이터베이스명
CREATE TABLE SampleTable(
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
PRIMARY KEY(id)
);
NOT NULL: 공백 허용 하지 않겠다는 뜻이다.
AUTO_INCREMENT: 자료형이 INT(정수형)일때 적용 된다. 데이터가 많이질때마다 1씩 자동 증가한다.
PRIMARY KEY: 테이블 내 고유값이 필요한 경우 중복을 허용하지 않는 컬럼 1개를 선택한다.
INSERT INTO 테이블명 (컬럼1,컬럼2,컬럼3 ...) VALUES (값1,값2,값3 ...)
SELECT * FROM 테이블명;
SELECT 컬럼1, 컬럼2 ... FROM 테이블명
SELECT * FROM 테이블명 WHERE 컬럼명=찾는데이터
SELECT * FROM 테이블명 ORDER BY 컬럼명 ASC
ASC: 오름차순
SELECT * FROM 테이블명 ORDER BY 컬럼명 DESC
DESC: 내림차순
UPDATE 테이블명
SET 수정할 데이터가 있는 컬럼명 = 수정할 내용
WHERE 조건이 적용될 컬럼명 = 조건
DELETE TABLE [테이블명] WHERE [컬럼명] = [컬럼]
RENAME TABLE 기존테이블명 TO 새로운테이블명
DROP TABLE 테이블명
서브쿼리: 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문을 말한다.
인라인뷰 ( Inline Views )라고 불린다.
SELECT 학생이름, 수학점수
FROM ( SELECT 학생.학생이름 AS 학생이름,
과목.과목점수 AS 수학점수
FROM 학생, 과목
WHERE 학생.학생이름 = 과목.학생이름
AND 과목.과목이름 = '수학' ) ;
중첩 서브쿼리 ( Nested Subqueries )라고 불린다.
SELECT *
FROM 학생
WHERE 학생.학생이름 IN ( SELECT 과목.학생이름 FROM 과목 WHERE 과목.과목이름 = '수학' ) ;
오직 하나의 ROW(행)만을 반환한다.
비교연산자는 단일행 비교연산자를 사용한다. ( >, >=, <, <=, =, ... )
SELECT ENAME, SAL
FROM EMP
WHERE SAL > ( SELECT AVG(SAL)
FROM EMP);
서브쿼리의 수행결과가 두 건 이상의 데이터를 반환한다.
비교연산자는 다중행 비교연산자를 사용한다. ( IN, ANY, SOME, ALL, EXISTS ).
SELECT ENAME, SAL
FROM EMP
WHERE SAL > ALL ( SELECT SAL
FROM EMP
WHERE DEPTNO = 30 );
https://mjn5027.tistory.com/51
https://goodmemory.tistory.com/51