반응형
이것이 MariaDB다
- 실무에서 리눅스 환경에서 많이 사용
- 상용적으로 사용해도 되는 오픈소스 SQL
- HeidiSQL Tool을 사용
- MariaDB 및 MySQL의 포트는 기본적으로 3306번을 사용하며, 오라클은 1521번, SQL Server는 1433을 사용한다.
- EXPLAIN은 쿼리문이 실행될 때 어떤 방식으로 실행되는지 실행 계획의 내용을 보여준다.
- 인덱스, 뷰, 스토어드 프로시저, 트리거
- 백업과 복원하는 법
- 데이터베이스 모델링 : 개념적, 논리적, 물리적 모델링
- dbForge Studio Express : Databases Diagram
- DML(Data Manipulation Language) : SELECT, INSERT, UPDATE, DELETE
- DDL(Data Definition Language) : CREATE, DROP, ALTER
- DCL(Data Control Language) : GRANT, REVOKE, DENY
기본SQL
- SELECT문
- USE 데이터베이스 이름
- SHOW table status : 테이블 정보 조회
- DESCRIBE 테이블명 or DESC 테이블명 : 테이블 상세 조회
- 별칭 AS
- WHERE문 관계 연산자 AND, OR, NOT 등 조건연산자
- WHERE문 BETWEEN, AND, IN, LIKE %, _
- ANY/ALL/SOME 그리고 서브쿼리
- ORDER BY 정렬하기 ASC(오름차순) DESC (내림차순)
- DISTINCT 중복 제거
- LIMIT
- GROUP BY
- 집계 함수 : AVG, MIN, MAX, COUNT, STDEV, VAR_SAMP
- HAVING : 집계함수의 조건에 대해서 제한을 두는 것. GROUP BY 뒤에 올 것
- ROLLUP : 중간 합계
- INSERT
- AUTO_INCREMENT : Primary Key 혹은 Unique 지정해야 함
- 여러개를 한번에 INSERT 하기 : INSERT INTO 테이블 ( 열이름~) SELECT문;
- UPDATE
- DELETE FROM
- DELETE문은 트랜잭션 로그를 기록하기 때문에 성능이 상당히 나쁘다. 그러므로, 대용량의 테이블 전체 내용을 삭제할 때, 테이블 자체가 필요 없는 경우에는 DROP으로 삭제하고, 테이블의 구조는 남겨놓고 싶다면 TRUNCATE로 삭제하는 것이 효율적이다.
- INSERT IGNORE : PK 중복이더라도 무시하고 넘어감
- INSERT INTO ~ ON DUPLICATE KEY UPDATE ~ : PK 중복이면 UPDATE 문 실행되도록 처리
- WITH절과 CTE
SQL고급
- 데이터 형식
- SMALLINT, INT, BIGINT, FLOAT, DOBBLE, REAL, DECIMAL
- CHAR, VARCHAR
- DATE, DATETIME
- PREPARE 쿼리이름 FROM 쿼리문
- EXECUTE
- 명시적 변환과 암시적 변환
- 제어흐름함수 IF, IFNULL, NULLIF, CASE~WHEN~ELSE~END
- 문자열 함수
- 수학 함수
- 날짜 및 시간 함수 : ADDDATE(날짜, 차이), SUBDATE(날짜, 차이), ADDTIME(날짜/시간, 시간), SUBTIME(날짜/시간, 시간), DATE(), TIME(), DATEDIFF(), TIMEDIFF() 기타 등등
- 시스템 정보 함수 : USER(), DATABASE(), FOUND_ROWS(), ROW_COUNT(), SLEEP(초) 등
- 기타 내장함수 https://mariadb.com/kb/en/library/built-in-functions/
- 윈도우 함수 OVER절
- 순위 함수 RANK, NTITLE, DENSE_RANK, ROW_NUMBER
- 분석 함수 CUME_DIST, LEAD, FIST_VALUE, LAG, LAST_VALUE, PERCENT_RANK
- 피벗과 JSON, JSON_OBJECT, JSON_ARRAY 함수 이용
- 조인
- INNER JOIN(내부 조인) : 교집합
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN < 두 번째 테이블>
ON <조인될 조건>
[WHERE 검색조건]
- OUTER JOIN(외부 조인) : 합집합
SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
<LEFT | RIGHT | FULL > OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
ON <조인될 조건>
[WHERE 검색조건]
- CROSS JOIN(상호 조인) : 두 테이블의 수를 곱한 데이타의 결과를 얻음, 테스트로 사용할 많은 용량의 데이터를 생성할 때 주로 사용
- SELF JOIN(자체 조인) : 하나의 테이블에 같은 데이터가 존재하되 의미는 다르게 존재하는 경우
- UNION / UNION ALL / NOT IN / IN
- 동적 SQL
반응형
'DB' 카테고리의 다른 글
프로그래머스 SQL 테스트 3 (0) | 2022.06.01 |
---|---|
SQL JOIN문 공부하기 (0) | 2022.05.15 |
프로그래머스 SQL 테스트 2 (0) | 2022.05.11 |
프로그래머스 SQL 테스트 1 (0) | 2022.05.10 |
이것이 MariaDB다 2 (0) | 2020.02.22 |
댓글