[Mysql] SQLyog 관계형 DB
728x90

mysql의 관계형 DB 및 SQL 문법에 대해 공부하고 배운 것들을 작성하고자 한다.

 


조회

SHOW DATABASES; - MySQL에서 모든 DB 목록 표시

SHOW TABLES; - DB내 모든 테이블 반환

DESC tablename; - 테이블(구조) 표시

desc sample

SELECT * FROM tablename; - 해당 테이블의 모든 행과 열을 검색한다.

 

SELECT 컬럼명

FROM tablename

WHERE 조건

AND 조건

ORDER BY id DESC

LIMIT 3;

SELECT에서 여러가지로 필터를 걸어서 조회를 할 수 있다.

생성

CREATE DATABASE databasename; - db 생성

USE databasename; - db 선택

 

CREATE TABLE tablename (

        컬럼명 데이터타입 조건,

); - table 생성

 

INSERT INTO tablename

SET 컬럼명 = 내용,

컬럼명2 = '내용';

DATETIME의 경우 내용에 NOW()를 넣으면 현재 시간이 넣어진다.

 

수정

ALTER TABLE tablename 행동 컬럼명 데이터타입 조건;

 

UPDATE tablename SET 컬럼명 = 내용 조건;

- UPDATE tablename SET title = 'HELLO' WHERE id > 3;

삭제

DROP DATABASE databasename; - db삭제

DROP TABLE tablename; - table 삭제

DELETE FROM tablename; - 특정 테이블에서 데이터 행 삭제

 

제약 조건 등 기타

이곳에 들어가면 더 많은 정보를 볼 수 있다.

NOT NULL, PRIMARY KEY, UNSIGNED, 등등..

 

2023 11 02 추가

SQL

GROUP BY

전체적으로 GROUP BY는 데이터를 그룹화하는 것을 의미하고

상황에 따라 특정 항목을 기준으로 그룹을 지어 조건에 맞는 결과만 출력하고 싶을 때

사용하는 명령어이다.

GROUP BY를 사용하면 데이터를 그룹화하여 집계 함수를 사용하거나 데이터를 세분화하는 등

다양한 작업을 할 수 있다!

집계 함수 목록 📰

집계함수 의미

COUNT 총 행의 개수를 반환합니다.
SUM 행 안의 합계를 반환합니다.
MIN 행 안의 최소값을 반환합니다.
MAX 행 안의 최대값을 반환합니다.
AVG 행 안의 평균값을 반환합니다.

집계 함수의 간단한 사용 방법

#DB는 이미 생성되어 있다고 가정합니다.
|title|somethingid|amount|
|CLANG|1          |3     |
|JAVA |2          |4     |
|JAVA |3          |5     |
|PYT  |4          |6     |

#4를 출력합니다.
SELECT COUNT(*)
FROM [테이블];

#순서대로 1,2,1 을 출력합니다.
SELECT COUNT(*)
FROM [테이블]
GROUP BY [묶는 기준];

#테이블 레코드 중 가장 높은 값
SELECT MAX(amount)
FROM [테이블];

#etc...

GROUP BY와 HAVING을 같이 사용 / ORDER BY

SELECT [조회하고자 하는 부분]
FROM [테이블]
WHERE [테이블에서 GROUP BY 전 필터링 조건]
GROUP BY[묶는 기준]
HAVING [GROUP BY 결과 필터링 조건]

#ORDER BY를 같이 사용할 경우
#ORDER BY[정렬 기준]을 같이 사용하면 된다!
#ORDER BY[기준] [DESC / ASC];

GROUP BY의 주의 사항

  1. GROUP BY의 경우 NULL을 포함해서 집계하기 때문에 NULL 값 처리가 중요한 경우 NULL이 포함되는 것을 염두에 두고 SQL 문을 작성해야 한다.
  2. GROUP BY는 정렬 순서를 보장하지 않는다! 그렇기에 정렬을 하기 위해서는 ORDER BY 절을 사용하여 원하는 순서로 정렬하자.
  3. GROUP BY 절 다음에는 컬럼의 별칭을 사용할 수 없고, 반드시 컬럼명을 넣어야 한다.

JOIN

JOIN이란 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법이다.

이를 통해 DB의 여러 테이블 간의 관계를 활용하여 더 복잡한 쿼리를 수행할 수 있다!

JOIN 의 종류

  1. INNER JOIN - 교집합
  2. LEFT/RIGHT JOIN - 부분 집합
  3. OUTER JOIN - 합집합

성능에서는 LEFT JOIN보다 INNER JOIN이 성능이 더 좋다고 한다.

'BackEnd > DB' 카테고리의 다른 글

관계형 데이터 모델링  (0) 2023.11.02