0_ch4n
기계쟁이\n개발자
0_ch4n
0chn.xxx@gmail.com @0ch._.n
전체 방문자
오늘
어제

공지사항

  • All (282)
    • 🖥 CS (21)
      • 네트워크 (12)
      • 운영체제 (3)
      • 자료구조 (2)
      • Web (4)
    • 🧠 Algorithm (185)
      • [C] BOJ (93)
      • [JAVA] Programmers (91)
    • 📚 Study (69)
      • HTML&CSS (19)
      • MySQL (11)
      • JAVA (22)
      • Servlet&JSP (8)
      • Thymeleaf (2)
      • Spring (5)
      • JPA (2)
    • 📖 Book (1)
    • 📃 Certification (6)
      • 정보처리기사 (6)

인기 글

최근 글

최근 댓글

태그

  • kakao
  • 카카오
  • CSS
  • til
  • 프로그래머스
  • 코테
  • 자바
  • 코딩테스트
  • java
  • Programmers

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
0_ch4n

기계쟁이\n개발자

[MySQL] 문법
📚 Study/MySQL

[MySQL] 문법

2022. 6. 19. 23:07
반응형

✔️ MySQL 문법

 

📌주석

#내용 : 한 줄 주석
--내용 : 한 줄 주석
/*내용*/ : 두 줄 이상 주석

 

📌 CREATE문 (데이터베이스, 테이블 생성)

-- 데이터베이스 생성
CREATE DATABASE [DB이름];

-- 테이블 생성
CREATE TABLE [테이블이름] (
	[컬럼이름] [타입] (제약조건),
	[컬럼이름] [타입] (제약조건)
);

 

📌 ALTER문 (데이터베이스, 테이블 수정)

-- 데이터베이스 수정
ALTER DATABASE [DB이름] [DB속성=속성값];

-- 테이블 수정
ALTER TABLE [테이블이름] ADD [컬럼이름] [컬럼타입] (AFTER [기존컬럼이름]) -- 컬럼 추가
ALTER TABLE [테이블이름] DROP [컬럼이름] -- 컬럼 제거
ALTER TABLE [테이블이름] CHANGE [컬럼이름] [새 컬럼이름] [새 컬럼타입] -- 컬럼 변경
ALTER TABLE [테이블이름] CHANGE [컬럼이름] [컬럼이름] [새 컬럼타입] -- 컬럼 M타입만 변경
ALTER TABLE [테이블이름] MODIFY [컬럼이름] [새 컬럼타입] -- 컬럼 타입만 변경
ALTER TABLE [테이블이름] RENAME [새 테이블이름] -- 테이블 이름 변경
  • ADD를 사용할 때 AFTER를 이용해 추가하는 컬럼의 위치를 기존 컬럼 다음으로 지정할 수 있다.

 

📌 UPDATE문 (데이터 수정)

UPDATE [테이블이름]
SET [필드이름1 = 데이터값1], [필드이름2 = 데이터값2], ...
(WHERE [조건]); -- 조건식을 안쓰면 테이블에 해당 레코드가 전부 바뀐다.

 

📌 DROP문 (데이터베이스, 테이블 자체를 삭제)

-- 데이터베이스 삭제
DROP DATABASE [DB이름] IF EXISTS [DB이름];

-- 테이블 삭제
DROP TABLE [테이블이름] IF EXISTS [테이블이름];
  • 테이블의 모든 데이터뿐만 아니라 테이블 자체도 삭제
  • IF EXISTS를 사용해 데이터베이스나 테이블이 존재하지 않아 발생하는 에러를 미리 방지하는게 좋다.

 

📌 DELETE문 (데이터 삭제)

DELETE FROM [테이블이름]
(WHERE [컬럼이름=데이터값]); -- 생략하면 해당 테이블에 모든 데이터 삭제
  • 모든 데이터가 삭제되더라도 테이블은 남아 있음
  • 복구 가능
  • 휴지통 개념으로 트랜잭션 로그를 기록해서 속도가 느리고 테이블 자체 용량이 안 줄어든다.

 

📌 TRUNCATE문 (데이터 초기화)

TRUNCATE TABLE [테이블이름];
  • 테이블 구조는 남기고 데이터만 삭제
  • 복구 불가

 

📌 SELECT문 (데이터 조회)

-- 문법
SELECT (DISTINCT) [컬럼] AS [별명]
FROM [테이블]
WHERE [조건] AND [조건] OR [조건] (IS NULL)
GROUP BY [컬럼] (WITH ROLLUP)
HAVING [GROUP BY에 대한 조건]
ORDER BY [컬럼] ASC or DESC
LIMIT [건너뛸 갯수], [가져올 갯수]
  • 컬럼에 임의의 값을 넣어서 불러올 수 있다.
  • 정렬은 ASC가 디폴트라 생략 가능하다.

 

DISTINCT

  • 중복을 없앨 때 사용하며 정렬은 되지 않습니다.
SELECT DISTINCT CategoryID
FROM Products;

SELECT
  Country,
  COUNT(DISTINCT CITY)
FROM Customers
GROUP BY Country

 

AS

  • 해당 컬럼의 원래 이름이 아닌 별명으로 보여줍니다.

GROUP BY

  • 조건에 따라 집계된 값을 가져옵니다.
  • 그룹 함수와 함께 사용할 수 있습니다.
  • 중복을 없애주고 오름차순으로 자동 정렬해줍니다.
SELECT Country FROM Customers
GROUP BY Country;

SELECT
  COUNT(*), OrderDate
FROM Orders
GROUP BY OrderDate;
WITH ROLLUP;
  • 집계 함수와 WITH ROLLUP을 함께 사용하면 전체의 집계값을 확인할 수 있습니다.
  • WITH ROLLUP은 ORDER BY와 함께 사용할 수 없습니다.

HAVING

  • GROUP BY로 그룹화된 데이터를 조건식을 통해 걸러냅니다.
  • GROUP BY 보다 뒤에 써야합니다.
  • WHERE은 그룹화 전 데이터, HAVING은 그룹화 후 집계 데이터에 사용합니다.
SELECT
  Country, COUNT(*) AS Count
FROM Suppliers
GROUP BY Country
HAVING Count >= 3;

 

ORDER BY

  • 오름차순 : ASC (기본값)
    • 숫자 : 작은 값부터 정렬 (0, 1, 2, …)
    • 문자 : 사전 순 정렬 (a, b, c, …)
    • 날짜 : 빠른 날짜 순 정렬 (오래된 순)
    • NULL : 마지막에 나옴
  • 내림차순 : DESC
    • 숫자 : 큰 값부터 정렬 (10, 9, 8, …)
    • 문자 : 사전 역순 정렬 (z, y, x, …)
    • 날짜 : 늦은 날짜 순 (최신 순)
    • NULL : 먼저 나옴

 

IS NULL

  • WHERE 과 함께 사용하며 널값을 검색합니다.
SELECT name
FROM user_info
WHERE mobile IS NULL;

 

📌 INSERT문 (데이터 추가)

-- 특정 컬럼에 데이터 추가
INSERT INTO [테이블이름(컬럼이름1, 컬럼이름2, ...]
VALUES [(데이터값1, 데이터값2, ...)];

-- 테이블 전체에 데이터 추가 (컬럼이름 생략가능)
INSERT INTO [테이블이름]
VALUES [(데이터값1, 데이터값2, ...)];
  • 컬럼이름을 생략하는 경우 테이블의 컬럼 순서대로 값이 자동 대입된다.
  • 생략 가능한 컬럼
    1. NULL을 저장할 수 있는 컬럼
    2. DEFAULT가 설정된 컬럼
    3. AUTO_INCREMENT가 설정된 컬럼

 

📌 기타 문법

-- 데이터베이스 목록을 보여줌
SHOW DATABASES;

-- 테이블 목록을 보여줌
SHOW TABLES;

-- 테이블의 컬럼 정보를 보여줌
SHOW COLUMNS FROM 테이블이름;
DESCRIBE 테이블이름;
DESC 테이블이름;

-- 데이터베이스를 사용하기 위해 선택함
USE DB이름;
반응형
저작자표시 (새창열림)

'📚 Study > MySQL' 카테고리의 다른 글

[MySQL] 서브쿼리  (0) 2022.07.02
[MySQL] 제약조건  (0) 2022.06.19
[MySQL] 함수  (0) 2022.06.16
[MySQL] 연산자  (0) 2022.06.15
[MySQL] 데이터 타입  (0) 2022.06.15
    0_ch4n
    0_ch4n
    while(true) { study(); }

    티스토리툴바