[DB] MYSQL DDL, DML, DCL, SET Operation, 내장함수

인바다·2023년 10월 1일

Database

목록 보기
1/2
post-thumbnail

1. DDL (Data Definition Language)

CREATE DATABASE	[테이블명];
DROP TABLE		[테이블명];
ALTER TABLE		[테이블명];	-- ADD, MODIFY, CHANGE, DROP을 사용하여 컬럼 수정 가능

2. DML (Data Manipulation Language)

SELECT	*
FROM	[테이블명]
WHERE	[조건문]
ORDER BY id DESC(ASC);

UPDATE	[테이블명]
SET		([컬럼명] = [값], [컬럼명] = [값], ...)
WHERE	[조건문];

INSERT INTO	[테이블명](컬럼명, 컬럼명, ...)
VALUES		([값], [값], ...)

DELETE FROM	[테이블명]
WHERE	[조건문];
-- WHERE 사용하기

-- 부등호 (=, <=, >=, <, >, !=)
WHERE id > 20;

-- 사이값 
WHERE id BETWEEN 10 AND 20;

-- 부정
WHERE NOT id = 20;

-- 문자열 패턴(%: 아무 문자열, _: 아무 문자 하나)
WHERE id LIKE '%@%.%_';

-- 포함
WHERE id IN (1, 2, 3);

-- 여러 조건
WHERE id < 10 OR id IN (20, 30, 40) ANS id LIKE '1%';

NULL 논리연산 주의!

NOTTRUEFALSENULL
FALSETRUENULL

ANDTRUEFALSENULL
TRUETRUEFALSENULL
FALSEFALSEFALSEFALSE
NULLNULLFALSENULL

ORTRUEFALSENULL
TRUETRUETRUETRUE
FALSETRUEFALSENULL
NULLTRUENULLNULL

3. DCL (Data Control Language)

GRANT [권한종류] ON [대상] TO [계정명] IDENTIFIED BY [암호];
COMMIT;
ROLLBACK;

4 SET Operation

-- UNION : 합집합 (중복은 한 번만)
-- UNION ALL : 합집합 (중복 포함) 
SELECT	*
FROM	[테이블명]
UNION	(ALL)
SELECT	*
FROM	[테이블명]

-- INTERSECT : 교집합
SELECT	*
FROM	[테이블명]
INTERSECT
SELECT	*
FROM	[테이블명]

-- MINUS : 차집합  > MySQL 지원 안함. LEFT OUTER JOIN, NOT IN, NOT EXISTS으로 해결
SELECT	*
FROM	[테이블명]
MINUS	(LEFT OUTER JOIN)
SELECT	*
FROM	[테이블명]

SELECT	*
FROM	[테이블명]
WHERE NOT IN (NOT EXISTS)	(SELECT	*
							FROM	[테이블명]
							);

5. 내장함수

  • 단일행 함수

    • 숫자관련: ABS(숫자), CEILING(숫자), FLOOR(숫자), ROUND(숫자, 자릿수), TRUNCATE(숫자, 자릿수), POW(밑, 승), MOD(분자, 분모), GREATEST(숫자, 숫자, ...), LEAST(숫자, 숫자, ...)

    • 문자관련: CONCAT(문자열, 문자열, ...), INSERT(문자열, 시작위치, 길이, 새로운 문자열), REPLACE(문자열, 기존문자열, 바뀔문자열), INSTR(문자열, 찾는 문자열), MID(문자열, 시작위치, 개수), SUBSTRING(문자열, 시작위치, 개수), LTRIM(문자열), RTRIM(문자열), TRIM(문자열)

    • 날짜관련: NOW(), SYSDATE(), CURDATE(), CURTIME(), DATE_ADD(날짜, INTERVAL 기준 값), DATE_SUB(날짜, INTERVAL 기준 값), YEAR(날짜), MONTH(날짜), MONTHNAME(날짜), DAYNAME(날짜), ...

  • 다중행 함수
    sum, avgm count, max, min

    GROUP BY와 함께 사용하고 GROUPING 후에는 HAVING을 이용하여 조건을 걸 수 있다

[참조]

[MySQL] DDL, DML, DCL 명령어

0개의 댓글