요약은 제일 밑에 !!
그룹핑(group by)
특정 칼럼을 기준으로 데이터를 그룹핑함
SELECT * FROM 테이블명 GROUP BY 그룹핑 할 기준 칼럼명
예제:
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` tinyint(4) NOT NULL,
`name` char(4) NOT NULL,
`sex` enum('남자','여자') NOT NULL,
`address` varchar(50) NOT NULL,
`distance` INT NOT NULL,
`birthday` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울', 10, '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', 200, '1982-11-16 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', 350, '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', 190, '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', 200, '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', 400, '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', 310, '1981-2-3 00:00:00');
1.
select sex from student group by sex;

성별 중에 어떠한 성별의 종류가 있는지 파악하기 위해 사용할 수 있습니다.
2.
select sex,sum(distance), avg(distance) from student group by sex;

sum(distance)는 거리의 합, avg(distance) 거리의 평균.
모든 남자의 거리 합,평균
모든 여자의 거리 합,평균 을 출력한 것 !
정렬(order)
지정된 칼럼을 기준으로 행을 정렬
DESC - 내림차순, ASC - 오름차순
SELECT * FROM 테이블명 ORDER BY 정렬의 기준으로 사용할 열 [DESC | ASC]
예제 :
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` tinyint(4) NOT NULL,
`name` char(4) NOT NULL,
`sex` enum('남자','여자') NOT NULL,
`address` varchar(50) NOT NULL,
`distance` INT NOT NULL,
`birthday` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울', 10, '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', 200, '1982-11-16 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', 350, '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', 190, '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', 200, '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', 400, '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', 310, '1981-2-3 00:00:00');
1.
select * from student order by distance desc;
distance 숫자를 기준으로 해서 정렬하는 것 !

desc 내림차순, asc 오름차순으로 정렬된 것을 볼 수 있습니다.
2.
select * from student order by distance desc, address asc;

명령어 순서대로 일단 distance 기준으로 정렬을 하고,
그 안에서 동일한 데이터 (ex. 200)가 있는 경우 address를 기준으로 정렬을 한다는 뜻 !
오늘은 간단히 그룹핑과 정렬에 대해 공부했습니닷
다음은 Index 에 대해 공부하겠습니다.

요약
그룹핑(group by)
특정 칼럼을 기준으로 데이터를 그룹핑함
SELECT * FROM 테이블명 GROUP BY 그룹핑 할 기준 칼럼명
- 칼럼1의 데이터가 어떠한 값으로 이루어져있는지 볼 수 있음.
select 칼럼1 from 테이블명 group by 칼럼1;
- 예제에서 보았듯 칼럼1의 데이터에서의 칼럼2 데이터 합과 평균을 볼 수 있음.
select 칼럼1,sum(칼럼2), avg(칼럼2) from 테이블명 group by 칼럼1;
정렬(order)
지정된 칼럼을 기준으로 행을 정렬
DESC - 내림차순, ASC - 오름차순
SELECT * FROM 테이블명 ORDER BY 정렬의 기준으로 사용할 열 [DESC | ASC]
- 선택한 칼럼1의 데이터를 기준으로 desc(내림차순) 또는 asc(오름차순)으로 정렬함.
select * from 테이블명 order by 칼럼1 desc(asc);
- 명령어 순서대로 칼럼1을 desc(내림차순) 정렬하고, 정렬한 값 중 같은 데이터 값이 있다면,
그 데이터들을 칼럼2의 기준으로 asc(오름차순) 정렬함.
select * from 테이블명 order by 칼럼1 desc, 칼럼2 asc;
강의 및 자료 출처 -
생활코딩
https://opentutorials.org/course/1
생활코딩
hello world 생활코딩의 세계에 오신 것을 환영합니다. 생활코딩은 일반인들에게 프로그래밍을 알려주는 무료 온라인, 오프라인 수업입니다. 어떻게 공부할 것인가를 생각해보기 전에 왜 프로그
opentutorials.org
'컴터 > Database (MYSQL)' 카테고리의 다른 글
| 6) [Database_MYSQL] JOIN (0) | 2023.06.16 |
|---|---|
| 5) [Database_MYSQL] Index (0) | 2023.06.16 |
| 3) [Database_MYSQL] table 조회 (0) | 2023.06.16 |
| 2) [Database_MYSQL] table 삽입,변경,삭제 (0) | 2023.06.16 |
| 1) [Database_MYSQL] database, table 생성 (0) | 2023.06.16 |