데이터베이스 & SQL/SQL - MySQL

SQL 기초 - Select문(싱글테이블)

Recfli 2024. 3. 1. 00:47

[ Insert 문 ]

 나머지를 진행하기 이전에 가장 우선될 것은 데이터를 입력하는 것이다. 다음과 같이 MySQL 콘솔창에 데이터를 다음과 같이 입력을 해주자. INSERT에서 어려운 점은 constraint 조건에 따른 내용들인데, 이는 이 글에 정리되어있으니 보길 바란다. 어려운 부분이 없어서 넘기도록 하겠다.

CREATE DATABASE study_mysql;
USE study_mysql;

DROP table if exists member;
CREATE TABLE member (
	member_id CHAR(8) PRIMARY KEY,
    group_id CHAR(10),
    member_phone CHAR(20) NOT NULL,
    member_age INT,
    member_salary INT
);

INSERT INTO member values ('Tommy', 'A', '01011111111', 30, 1000);
INSERT INTO member values ('Json', 'A', '01022222222', 50, 2000);
INSERT INTO member values ('Smith', 'B', '01033333333', 40, 2000);
INSERT INTO member values ('Amy', 'B', '01044444444', 10, 1500);
INSERT INTO member values ('John', 'B', '01055555555', 20, 1000);
INSERT INTO member values ('Hance', null, '0105555544', 25, 1200);

[ select 문 ]

SELECT는 각각의 예제를 살펴보면서 자연스럽게 익히는게 좋다.

 

예제 1. Member 테이블의 모든 Member 조회

SELECT * from Member;

 

예제 2. 데이터 프로젝션 하기, member_id와 member_age만 출력(민감 정보인 데이터 제거)

SELECT member_id, member_age from Member;

[ where 절 추가 ]

예제 3. Member 테이블에서 나이가 40인 사람 조회

SELECT * from Member where member_age = 40;

 

예제 4. Member 테이블에서 나이가 30이상인 사람 조회

SELECT * from Member where member_age >= 30;

 

예제 5. Member 테이블에서 나이가 10살, 30살, 40살인 사람 조회

SELECT * from Member where member_age in (10, 30, 40);

 

예제 6. Member 테이블에서 이름이 J로 시작하는 사람 조회

SELECT * from Member where member_id like 'J%';

 

예제 7. 010으로 시작하고 뒷 번호가 8자리인 문자

SELECT * from Member where member_phone regexp '^010[0-9]{8}';

 

예제 9. 전체 회원 나이 오름차순 조회

select * from member order by member_age;

 

예제 10. 전체 회원 나이 내림차순 조회

select * from member order by member_age desc;

[ select 절 추가 ]

예제 11. 전체 회원 숫자 조회

SELECT count(*) from member;

 

 

예제 12. 평균 나이 조회

select avg(member_age) "평균 나이" from member;

 

예제 13. 그룹 별 평균 나이 조회

select group_id, avg(member_age) "평균 나이" from member group by group_id;

 

예제 14. A그룹의 평균 나이 조회

select group_id, avg(member_age) "평균 나이" from member where group_id = 'A';

 

예제 15. 멤버별 age * salary 금액(누적소득액) 조회

select group_id, (member_salary*member_age) "누적소득액" from member;

 

예제 16. 그룹 내 인원 누적소득액의 합이 50000이상인 그룹 조회

select group_id, sum(member_salary*member_age) "누적소득액" from member group by group_id having sum(member_salary*member_age) >= 50000;

 

예제 17. 멤버 테이블에서 팀이 있는 사람 수 조회

select count(group_id) from member;

[ 참고 자료 ]

https://audgnssweet.tistory.com/65

혼자 공부하는 SQL - 우재남