반응형
[MariaDB] 마리아DB SQL 쿼리 기본 - SELECT (MySQL)
DB목록 조회
SHOW DATABASES;
DB선택
USE DB명;
선택된 DB에 존재하는 테이블 정보 조회
SHOW TABLE STATUS; -- 테이블 이름만 간단히 볼 때는 SHOW TABLES;
테이블 조회(SELECT)
SELECT * FROM 테이블명;
DB선택과 함께 테이블 조회
SELECT * FROM DB명.테이블명;
테이블에서 필요한 열만 조회
SELECT 열이름1, 열이름2, 열이름3 FROM 테이블명;
별칭 사용법 (AS)
SELECT 열이름1 AS 별칭1, 열이름2 AS 별칭2 FROM 테이블명; -- 열이름이 별칭으로 적혀서 테이블 조회됨
조건절 (WHERE)
SELECT * FROM 테이블명 WHERE 조건문; -- 테이블명에 있는 데이터중 조건문에 해당되는 행의 모든(*) 열 조회
조건절 AND, OR
SELECT * FORM 테이블명 WHERE 조건1 AND 조건2; -- 조건1, 2 모두 참인 행들만 조회
SELECT * FROM 테이블명 WHERE 조건1 OR 조건2; -- 조건1이거나 2를 만족하는 행들을 조회
조건절 BETWEEN...AND
/* 열이름이 시작값부터 끝값까지의 포함된 행들을 조회(값은 보통 수치) */
SELECT * FROM 테이블명 WHERE 열이름 BETWEEN 시작값 AND 끝값;
조건절 IN('값1', '값2', ...)
/* 열이름이 IN 뒤에 값에 포함되는 행들만 조회 */
SELECT * FROM 테이블명 WHERE 열이름 IN ('값1', '값2', '값3');
조건절 LIKE '%'
/* 열이름이 LIKE 뒤에 문자와 %(모든문자)를 합쳐서 해당되면 조회 */
SELECT * FROM 테이블명 WHERE 열이름 LIKE '김%' -- 열이름이 '김'으로 시작하는 모든 행 조회
순서정렬 (ORDER BY)
SELECT * FROM 테이블명 ORDER BY 열이름; -- 기본값이 ASC이며 열이름 기준 오름차순 정렬
SELECT * FROM 테이블명 ORDER BY 열이름 DESC; -- 열이름 기준 내림차순 정렬
중복제거 조회 (DISTINCT)
SELECT 지역명 FROM 동창회테이블; -- 동창회테이블에 중복되는 지역명이 테이블 행만큼 조회됨
SELECT DISTICT 지역명 FROM 동창회테이블 -- 동창회테이블에 지역명중 중복되는 값은 1개만 조회됨
조회(출력) 갯수 제한 (LIMIT)
SELECT * FROM 테이블명 LIMIT 5; -- 5개 행까지만 조회
테이블 새이름으로 복사하기
/* DB명 안에 있는 기존테이블을 새테이블로 복사 */
USE DB명;
CREATE TABLE 새테이블이름 (SELECT 복사할열1, 복사할열2 FROM 기존테이블);
GROUP BY절
/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 합칠열 값을 모두 더해서(SUM) 출력 */
SELECT 그룹열, SUM(합칠열) FROM 테이블명 GROUP BY 그룹열;
/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 수량열과 가격열을 곱한(*) 값들을 모두 더해서(SUM) 출력 */
SELECT 그룹열, SUM(수량열*가격열) FROM 테이블명 GROUP BY 그룹열;
GROUP BY절과 함께 사용되는 집계함수
함수명 |
설명 |
AVG() |
평균을 구합니다. |
MIN() |
최소값을 구합니다. |
MAX() |
최대값을 구합니다. |
COUNT() |
행의 개수를 구합니다. |
COUNT(DISTINCT) |
행의 개수를 구합니다. (중복값은 1개로 인정) |
STDEV() |
표준편차를 구합니다. |
VAR_SAMP() |
분산을 구합니다. |
HAVING 절(GROUP BY의 조건절)
/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 합칠열 값을 모두 더한값이(SUM) 1000보다 큰 행들을 출력 */
SELECT 그룹열, SUM(합칠열)
FROM 테이블명
GROUP BY 그룹열
HAVING SUM(합칠열) > 1000;
/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 수량열과 가격열을 곱한(*) 값들을 모두 더한값이(SUM) 1000보다 큰 행들을 출력 */
SELECT 그룹열, SUM(수량열*가격열)
FROM 테이블명
GROUP BY 그룹열
HAVING SUM(수량열*가격열) > 1000;
반응형