MySQL 문법


  • MySQL 에서 작업 명령은 SQL문법을 사용한다

  • SQL 순서

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s)
LIMIT number;

CREATE, DROP


  • database 또는 table을 생성 CREATE, 삭제 DROP 한다
CREATE DATABASE database_name;

DROP DATABASE database_name;

CREATE TABLE table_name;

DROP TABLE table_name;

SHOW, USE, DESC


  • SHOW : database table column 목록 등 다양한 정보를 보여준다
SHOW DATABASES;

SHOW TABLES;

SHOW TABLES FROM database_name;

SHOW COLUMNS FROM table_name;
  • USE : 사용할 database를 선택한다.
USE database_name;
  • DESC : table의 구성과 데이터타입을 보여준다
DESC table_name;

INSERT INTO, VALUES


  • tablerecord를 넣어준다.
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

-- 모든 column에 value를 넣는 경우에는 아래와 같이 작성해도 된다
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

-- MySQL에서 주석처리는 -- 를 사용한다

UPDATE, SET, DELETE


  • UPDATE, SET: table의 기존 record를 수정한다

  • DELETE : table의 기존 record를 삭제한다

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

-- WHERE 가 없이 UPDATE 하면 모든 record(row)가 바뀌게 된다는 것을 주의한다
-- 아래의 경우 table의 column1의 모든 값이 value1로 수정된다.

UPDATE table_name
SET column1 = value1
DELETE FROM table_name WHERE condition;

-- WHERE 가 없이 DELETE 하면 모든 record(row)가 삭제된다는 것을 주의한다

SELECT, FROM


  • databasetable에서 data를 불러온다
-- table의 모든 column의 data를 보여준다
SELECT * FROM table_name;

-- table의 특정 column의 data를 보여준다
SELECT column_name FROM table_name;

-- table의 특정 column의 data를 보여준다
SELECT column1_name, column2_name FROM table_name;	

DISTINCT, AS


  • DISTINCT : 중복된 값이 한 번만 선택되도록 한다

  • AS : table column에 별칭alias를 부여한다. 해당 별칭은 SELECT문에서 사용가능하다

-- 특정 table의 특정 column의 데이터를 보여줄 때
-- 그 데이터에 중복되는 값이 있으면 그 값은 한 번만 보여준다
SELECT DISTINCT column_name FROM tabel_name;

SELECT column_name AS 별칭 FROM tabel_name;

SELECT column_name FROM tabel_name AS 별칭;

WHERE, IN


  • table에서 WHERE다음으로 오는 조건condition을 만족하는 row를 선택할 때 사용한다

  • IN을 사용하면 WHERE에 여러 값을 지정할 수 있다

SELECT column_name FROM tabel_name WHERE condition;

--아래처럼 작성해도 위와 같다
SELECT column_name
FROM tabel_name
WHERE condition;

-- IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

-- 서브쿼리 (SELECT ... FROM ... WHERE ...) 사용 가능하다
-- (SELECT STATEMENT) <- 이 부분이 서브쿼리
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);

GROUP BY


  • 동일한 값을 가진 row를 하나의 row로 그룹화한다
SELECT column_name FROM tabel_name WHERE condition GROUP BY column_name;

--아래처럼 작성해도 위와 같다

SELECT column_name(s)
FROM tabel_name
WHERE condition
GROUP BY column_name(s);

ORDER BY


  • 결과를 오름차순ASC 또는 내림차순DESC로 정렬한다
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

-- ASC, DESC를 입력하지 않으면 기본설정은 ASC 이다.
-- 각 column을 다르게 정렬 할 수 있다

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC, column2 DESC, ... ;

LIMIT


  • LIMIT 다음으로 오는 수 만큼 상위부터 결과를 보여준다
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

-- record 수가 큰 테이블에서 유용하다.

COUNT,SUM,AVG,MIN,MAX


  • COUNT : 조건condition과 일치하는 record의 수를 반환한다

  • SUM : 숫자 column의 총 합을 반환한다

  • AVG : 숫자 column의 평균을 반환한다

  • MIN : 숫자 column의 최소값을 반환한다

  • MAX : 숫자 column의 최대값을 반환한다

-- column_name에 *을 사용할 수 있다.

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

SELECT SUM(column_name)
FROM table_name
WHERE condition;

SELECT AVG(column_name)
FROM table_name
WHERE condition;

SELECT MIN(column_name)
FROM table_name
WHERE condition;

SELECT MAX(column_name)
FROM table_name
WHERE condition;

HAVING


  • WHERE는 집계함수를 조건에 사용할 수 없기 때문에 HAVING을 사용한다
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

-----------------------
HAVING COUNT(column_name) > 100
-- 어느 column에서 특정 조건인 row의 수가 100 이상인 이라는 조건이다.

INNER JOIN, ON


  • INNER JOIN

    두 테이블에 일치하는 값을 가진 레코드를 연결하여 두 테이블의 데이터를 사용할 수 있다

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

LEFT OUTER JOIN


  • LEFT OUTER JOIN

    왼쪽 테이블(테이블 1)에서 모든 레코드를 반환하고 오른쪽 테이블(테이블 2)에서 일치하는 레코드(가 있는 경우)를 반환한다.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

RIGHT OUTER JOIN


  • RIGHT OUTER JOIN

    오른쪽 테이블(테이블 2)에서 모든 레코드를 반환하고 왼쪽 테이블(테이블 1)에서 일치하는 레코드(가 있는 경우)를 반환한다.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
profile
real.great.code

0개의 댓글