DML(Data manipulation Language) : select, insert, update, delete
DDL(Data Definition Language) : create, alter, drop
DCL(Data Control Language)
TCL(Transaction Contriol Language)
show databases;
use [database_name];
show tables;
desc(ribe) [table_name];
터미널 또는 명령 프롬프트에서 MariaDB 또는 MySQL 서버에 접속하는 방법
mysql -u [사용자명] -p -h [호스트명 또는 IP 주소] -P [포트 번호] [데이터베이스 이름]
- 예시:
- mysql -u root -p sample
- mysql -u root -p -h localhost -P 3306 database
- -u: 사용자 이름을 지정합니다.
- -p: 비밀번호 입력을 요구합니다. -p[your_password] 형식으로 비밀번호를 바로 입력할 수도 있지만 보안에 취약할 수 있습니다.
- -h: 서버의 호스트명 또는 IP 주소입니다. localhost는 로컬 서버를 의미합니다.
- -P: 데이터베이스 서버의 포트 번호입니다. 기본 포트는 3306입니다.
- [데이터베이스 이름]: 특정 데이터베이스에 바로 접속하고 싶을 때 지정할 수 있습니다.
GROUP BY
쿼리 결과를 특정 열 기준으로 그룹화 하여,각 그룹에 대해 집계 연산을 수행할 수 있습니다.
ex) 부서별 직원수나 부서별 급여 합계를 구할 때 유용함
- 단일 열을 기준으로 GROUP BY 사용하기
SELECT deptno, COUNT(*) AS 직원수
FROM emp
GROUP BY deptno;
//실행 결과
+--------+-----------+
| deptno | 직원수 |
+--------+-----------+
| 10 | 3 |
| 20 | 5 |
| 30 | 6 |
+--------+-----------+
3 rows in set (0.001 sec)
- 여러 열을 기준으로 GROUP BY 사용하기
//부서별, 직책별 직원 수 구하기
SELECT deptno, job, COUNT(*) AS 직원_수
FROM emp
GROUP BY deptno, job;
//결과
+--------+-----------+------------+
| deptno | job | 직원_수 |
+--------+-----------+------------+
| 10 | CLERK | 1 |
| 10 | MANAGER | 1 |
| 10 | PRESIDENT | 1 |
| 20 | ANALYST | 2 |
| 20 | CLERK | 2 |
| 20 | MANAGER | 1 |
| 30 | CLERK | 1 |
| 30 | MANAGER | 1 |
| 30 | SALESMAN | 4 |
+--------+-----------+------------+
9 rows in set (0.000 sec)
- GROUP BY와 집계 함수 조합
SELECT job, truncate(AVG(sal), 1) AS 평균_급여 FROM emp GROUP BY job;
+-----------+---------------+
| job | 평균_급여 |
+-----------+---------------+
| ANALYST | 3000.0 |
| CLERK | 1037.5 |
| MANAGER | 2758.3 |
| PRESIDENT | 5000.0 |
| SALESMAN | 1400.0 |
+-----------+---------------+
//job을 기준으로 각 직업의 평균 급여를 계산
//AVG() 함수는 그룹별 평균을 구하는 집계 함수.
- HAVING절로 그룹화된 결과 필터링하기.
- 그룹화 후 필터링 할때 사용. ➡️ 그룹화된 결과에 조건을 걸 수 있음.
//직원 수가 3명 이상인 부서만 필터링
SELECT deptno, COUNT(*) AS 직원수
FROM emp
GROUP BY deptno
HAVING COUNT(*) >=3;
//결과값
+--------+-----------+
| deptno | 직원수 |
+--------+-----------+
| 10 | 3 |
| 20 | 5 |
| 30 | 6 |
+--------+-----------+
3 rows in set (0.002 sec)
'Backend > SQL' 카테고리의 다른 글
| [SQL] 참조키 : 기본키, 외래키 (0) | 2024.10.29 |
|---|---|
| [SQL] DDL(Data Definition Language) (0) | 2024.10.28 |
| [SQL]JOIN (0) | 2024.10.28 |
| [SQL]서브쿼리(Subquery) (0) | 2024.10.28 |
| [SQL] MariaDB 연산자/내장함수 (0) | 2024.10.25 |