🌱 오늘의 주제 : Mysql Query - SELECT문
🌱 Mysql Query - SELECT문 예시
select * from `entrant`;
# group by - 그룹화 // 중복된 이름 제거.
-- 동명이인들을 그룹으로 묶는다. (중복 제거된 효과) , 한 그룹에 중복이름이 그룹으로 묶여있는 것임. 즉 주머니가 생긴것, 중복이름 숨겨있다..
select `name` from `entrant`
group by `name`;
# distinct - 중복제거
-- 동명이인이 있을 경우, 한 사람만 남기고 제거한다. (진짜 중복 제거)
select distinct `name` from `entrant`;
# 자격증 종류(중복 제거)
select `license` from `entrant`
group by `license`;
# 그룹바이 연산
-- 사람 별 응시 시험 개수 구하기 (행 개수가 응시 시험의 종류와 같다.)
select `name`, count(*) from `entrant`
group by `name`;
-- 자격증 종류별 점수 합계 구하기
select `license`, sum(`score`) AS `sum` from `entrant`
group by `license`;
-- 자격증 종류별 점수 평균 구하기
select `license`, avg(`score`) from `entrant`
group by `license`;
# group by - having 절 : group by 된 결과의 조건 붙이기
-- 자격증 시험을 2개 이상 응시한 사람의 이름 출력
-- 1. 사람 별 응시 개수 구하기
-- 2. 그 중 개수가 2개 이상인 조건 구하기
select `name`, count(1) from `entrant`
group by `name`
having count(*) >= 2;
select `name`, count(*) AS `count` from `entrant`
group by `name`
having `count` >= 2;
-- 자격증 종류별 평균 점수가 80이 넘는 자격증을 출력
select `license`, avg(`score`) AS `average` from `entrant`
group by `license`
having `average` > 80;
select * from `user`;
select `id`,`name`,`yyyymmdd`,`hobby`,`introduce`,`email`,`createdAt`, `updatedAt`
from `user`;
-- 테이블명에 별칭 붙이기 : workbench 프로그램에서 보기에 바뀌는건 없음.
select * from `user` AS `person`;
-- 컬럼명에 별칭 붙이기: 조회 후 컬럼명이 변경되어 보임(실제 데이터는 변경되지 않음)
-- 테이블에 변경이 일어나는건 아니고, 조회할 때만 바뀌는 것임.
select `id`, `name` AS `이름`, `yyyymmdd` AS `생년월일` ,`hobby`,`introduce`,`email`,`createdAt`, `updatedAt`
from `user`;
# 특정 컬럼의 중복값 제거 -- 예) 동명이인 제거
select distinct `name` from `user`;
-- 데이터의 개수 조회
select count(*) from `user`;
select count(1) from `user`;
select count(`name`) from `user`;
-- *** 조건에 일치하는 데이터 조회
# id가 3번인 데이터 조회
select * from `user`
where `id` = 3;
# *** 이름이 '신바다'인 사용자의 생년월일 조회
select `yyyymmdd` from `user`
where `name` = '신바다';
# ***이름이 '신바다'가 아닌 사용자의 데이터 조회
select * from `user`
where `name` != '신바다';
# ***데이터의 생성일이 특정일 이후인 데이터들 조회
select * from `user`
where `createdAt` > '2023-02-15 19:00:00';
# !!!!!!!자기소개가 없는(null) 데이터 조회
select * from `user`
where `introduce` is null;
# 자기소개가 있는 (null이 아닌) 데이터 조회
select * from `user`
where `introduce` is not null;
# id가 1, 3, 4인 데이터 조회
select * from `user`
where `id` in (1, 3, 4);
-- 논리 연산자 사용
# id가 3번이거나 4번인 데이터 조회
select * from `user`
where `id` = 3 or `id` = 4;
# 이름이 '신바다'이면서 '사냥하기'인 데이터 조회 and
select * from `user`
where `name` = '신바다' and `hobby` = '사냥하기';
'Database' 카테고리의 다른 글
Database - DDL 대 DML (0) | 2023.08.03 |
---|---|
UNIQUE 삭제 후 다시 설정하기. (0) | 2023.05.30 |
Database - 테이블 JOIN (0) | 2023.03.13 |
Database - SELECT문과 다양한 문법 (MySQL) (0) | 2023.03.13 |
Database - Query (MySQL) (0) | 2023.03.13 |