SQL DML
-
Create(데이터 생성, 입력)
INSERT INTO 테이블명 VALUES(값1, 값2);: 테이블 전체 컬럼에 대응하는 값을 모두 넣기. 전체 레코드를 순서대로 입력.이때 문자열((VARCHAR))은 quotation mark((‘))를 이용해야 한다.
INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES(값1, 값2);: 테이블 특정 컬럼에 대응하는 값만 넣기.이때 지정되지 않은 컬럼은 디폴트 값 혹은 NULL 값이 들어감.
- Read(데이터 읽기, 검색)
-
기본구조: SELECT
SELECT * FROM 테이블명;: 테이블 전체 컬럼의 데이터 모두 읽기.*: 전체라는 뜻.
SELECT 컬럼1, 컬럼2 FROM 테이블명;: 테이블 특정 컬럼의 데이터만 읽기.SELECT 컬럼1 AS 바꿀컬럼명, 컬럼2 AS 바꿀컬럼명 FROM 테이블명;: 테이블 특정 컬럼의 데이터를 검색하되, 표시할 컬럼명도 다르게 하기.ORDER BY 정렬기준컬럼명 DESC/ASC;: 데이터를 내림차순/오름차순 정렬해서 읽기. -
조건문
WHERE 컬렴명 >/=/< 값;: 조건문에 맞는 데이터만 검색.뒤에
OR/AND과 같 논리 연산자도 사용 가능.WHERE 필드명 LIKE;: 조건에 맞는 데이터만 검색.LIKE '김%';: ‘김'으로 시작하는 모든 값.LIKE '%김%';: ‘김'이 들어간 모든 값.LIKE '김__';: ‘김'으로 시작되고 뒤에 2글자가 붙는 값. 앞도 가능.LIMIT 100, 10;: 결과중 100번째 다음부터, 10개만 가져오기.LIMIT 10;: 결과중 처음부터 10개만 가져오기.
-
-
Read_additional
-
COUNT
SELECT COUNT(*) FROM tb;: 전체 row의 수 반환.SELECT COUNT(column) FROM tb;: 특정 column의 row 수를 반환.결측값은 count 되지 않음.
-
통계: SUM, AVG, MAX, MIN
SELECT SUM(column) FROM tb;SUM(): column 값의 합계.AVG(): column 값의 평균.MAX(): 최대 column 값.MIN(): 최소 column 값. -
GROUP BY
SELECT AVG(column) FROM tb GROUP BY gender;: 그룹을 지어서, 데이터를 분석.GROUP BY: WHERE 뒤에서 각 그룹별 통계 확인. -
HAVING
SELECT column FROM tb GROUP BY column HAVING COUNT(*)>=100;: GROUP BY의 column에 대한 조건 비교. -
DISTINCT
SELECT DISTINCT cloumn FROM tb;: 중복된 column 값을 출력하지 않음. -
AS
SELECT COUNT(*) AS abc FROM tb;: 결과값의 이름 변경.tb a: Table 이름 다음 한칸 띄고 새로운 이름을 쓰면, 구문 안에서 AS와 유사한 역할. -
INNER JOIN
JOIN: 두 개 이상의 Table로부터 필요한 데이터를 연결해 하나의 포괄적인 구조로 결합시키는 연산.FROM tb1 INNER JOIN tb2 ON 매칭조건;: Join하는 Table의 ON 조건이 일치하는 결과만 출력.매칭조건 예시:
tb1.COLUMN = tb2.COLUMN -
OUTER JOIN(참고)
INNER JOIN과 달리 조건에 없는 값은 null로 다 붙임.
LEFT나 RIGHT와 같이 쓰이며, 각 방향에 있는 테이블을 기준으로 함.
-
SubQuery
SubQuery: SQL문 안에 포함된 (SQL)문. JOIN과 유사.SELECT column FROM tb1 WHERE column 비교 (SELECT column FROM tb2 WHERE 조건);: tb1의 column 값과 tb2의 column 값을 비교.비교:IN,>,<,=등.SELECT column FROM (SELECT column FROM tb1);: 다른 Table에서 몇 개 값만 가져오기.
-
-
Update(데이터 수정, 갱신)
조건문 없는 전체 데이터 수정은 실수로 판단하여 막고 있음. WHERE 조건문과 같이 쓰임.
UPDATE 테이블명 SET 기존컬럼명 = '수정컬럼명' WHERE 특정컬럼 >/=/< '값';: 특정한 조건에 맞는 데이터만 수정.다수의 컬럼 값 수정 가능.
-
Delete(데이터 삭제)
DELETE FROM 테이블명 WHERE 특정 컬럼 >/=/< '값';: 특정한 조건에 맞는 데이터만 삭제.DELETE FROM 테이블명;: 테이블에 저장된 모든 데이터 삭제.