본문 바로가기
Back-End/MySQL

MySQL - bikinisity 데이터베이스 만들기

by 코젼 2022. 7. 15.
728x90
반응형

2022-07-15(20일차)

💾 쿼리문 텍스트 파일

bikinisity.txt
0.00MB


📃 비키니시티의 주민들의 정보를 테이블로 만들어보자

◾ database : bikinisity
◾ table : info
◾ record : name varchar(10),
                sex varchar(5),
                age int,
                driveScore int,
                loveBugger int,
                hateBugger int,
                birthday date
◾ data : '스펀지밥', '남자', 20, 5, 100, 0, '1975-01-01'
             '뚱이', '남자', 20, 0, 90, 10, '1975-10-01'
             '징징이', '남자', 25, 80, 60, 40, '1970-02-03'
             '다람이', '여자', 22, 50, 50, 50, '1973-11-11'
             '집게사장', '남자', 50, 90, 100, 0, '1935-04-04'
             '퐁퐁부인', '여자', 45, 100, 50, 50, '1940-05-26'
             '플랭크톤', '남자', 50, 0, 100, 0, '1935-12-13'
             '생선남자', '남자', 28, 90, 80, 20, '1968-01-01'
             '생선어린아이', '여자', 11, 0, 95, 5, '1989-03-19'
◾ bikinistiy 데이터베이스를 생성한다.
create database bikinisity;
◾ bikinisity 데이터베이스로 이동한다.
use bikinisity;
◾ info 테이블을 생성한다.
◾ 컬럼은 name(이름), sex(성별), age(나이), driveScore(운전을 잘하는 정도), loveBugger(햄버거를 좋아하는 정도), hateBugger(햄버거를 싫어하는 정도), birthday(생일) 이다.
create table info(
    name varchar(10),
    sex varchar(5),
    age int,
    driveScore int,
    loveBugger int,
    hateBugger int,
    birthday date
);
◾ info 테이블에  ( '스펀지밥', '남자', 20, 5, 100, 0, '1975-01-01'
             '뚱이', '남자', 20, 0, 90, 10, '1975-10-01'
             '징징이', '남자', 25, 80, 60, 40, '1970-02-03'
             '다람이', '여자', 22, 50, 50, 50, '1973-11-11'
             '집게사장', '남자', 50, 90, 100, 0, '1935-04-04'
             '퐁퐁부인', '여자', 45, 100, 50, 50, '1940-05-26'
             '플랭크톤', '남자', 50, 0, 100, 0, '1935-12-13'
             '생선남자', '남자', 28, 90, 80, 20, '1968-01-01'
             '생선어린아이', '여자', 11, 0, 95, 5, '1989-03-19' ) 데이터를 삽입한다.
insert into info values (
	'스펀지밥', 
	'남자', 
	20, 
	5, 
	100, 0, 
	'1975-01-01'
);

insert into info values (
	'뚱이', 
	'남자', 
	20, 
	0, 
	90, 10, 
	'1975-10-01'
);

insert into info values (
	'징징이', 
	'남자', 
	25, 
	80, 
	60, 40, 
	'1970-02-03'
);

insert into info values (
	'다람이', 
	'여자', 
	22, 
	50, 
	50, 50, 
	'1973-11-11'
);

insert into info values (
	'집게사장', 
	'남자', 
	50, 
	90, 
	100, 0, 
	'1935-04-04'
);

insert into info values (
	'퐁퐁부인', 
	'여자', 
	45, 
	100, 
	50, 50, 
	'1940-05-26'
);

insert into info values (
	'플랭크톤', 
	'남자', 
	50, 
	0, 
	100, 0, 
	'1935-12-13'
);

insert into info values (
	'생선남자', 
	'남자', 
	28, 
	90, 
	80, 20, 
	'1968-01-01'
);

insert into info values (
	'생선어린아이', 
	'여자', 
	11, 
	0, 
	95, 5, 
	'1989-03-19'
);

◾ info 테이블로부터 age(나이), driveScore(운전을 잘하는 정도), loveBugger(햄버거를 좋아하는 정도), hateBugger(햄버거를 싫어하는 정도)의 평균을 각각 조회한다.

 

select avg(age), avg(driveScore), avg(loveBugger), avg(hateBugger)
	from info;

◾ info 테이블로부터 성별 별로 몇 명인지 개수를 센다.
◾ '남자' 는 6명, '여자'는 3명이다.
select count(*)
	from info
	group by sex;

◾ info 테이블로부터 name 컬럼이 '다람이'인  모든 컬럼을 조회한다.
select *
	from info
	where name='다람이';

◾ info 테이블로부터 name 컬럼이 '이'로 끝나는 이름을 조회한다.
select name
	from info
	where name like '%이';

◾ info 테이블로부터 loveBugger 컬럼의 값이 50보다 큰 경우인 name 을 조회한다.
select name
	from info
	where loveBugger > 50;

◾ info 테이블로부터 driveScore가 0~50 사이의 값이고 loveBugger가 50~100 사이의 값인 경우의 컬럼을 모두 조회한다.
select *
	from info
	where driveScore between 0 and 50 and
		loveBugger between 50 and 100;

◾ info 테이블로부터 hateBugger의 값이 0인 name을 조회한다.
select name
	from info
	where hateBugger = 0;

◾ info 테이블로부터 성별별로 driveScore의 값이 50보다 큰 경우의 개수를 조회한다.
◾ '남자'는 3명이고, '여자'는 1명이다.
select count(*)
	from info
	where driveScore > 50
	group by sex;

◾ info 테이블에서 name이 '생선어린아이'인 경우 성별을 '남자'로 변경한다.
update info
	set sex = '남자'
	where name = '생선어린아이';
◾ info 테이블의 데이터를 모두 조회하여 '생선어린아이'의 성별이 '남자'로 바뀌었는지 확인할 수 있다.
select * from info;

◾ info 테이블에서 age기준으로 내림차순으로 정렬하고, 동일한 값이 있다면 driveScore를 내림차순으로 정렬하고 모든 데이터의 값을 조회한다.
select *
	from info
	order by age desc, driveScore desc;

◾ info 테이블로부터 age가 20인 경우의 데이터들을 삭제한다.
delete
	from info
	where age = 20;

◾ info 테이블로부터 loveBugger의 값이 50보다 큰 경우의 age의 합을 조회한다.
select sum(age)
	from info
	where loveBugger > 50;

◾ info 테이블에서 3번째 컬럼부터 2개를 제한하여 가져온 것의 모든 컬럼을 조회한다.
select *
	from info
	limit 3, 2;

◾ info 테이블에서 driveScore 컬럼의 최댓값과 최솟값을 조회한다.
select max(driveScore), min(driveScore)
	from info;

◾ bikinisity 데이터베이스를 삭제한다.
drop database bikinisity;
◾ show databases; 를 사용하여 bikinisity 데이터베이스가 삭제된 것을 확인한다.
show databases;

728x90
반응형

'Back-End > MySQL' 카테고리의 다른 글

MySQL - JAVA, DB 연결하기  (0) 2022.07.15
MySQL - food 데이터베이스 만들기  (0) 2022.07.15
MySQL - DML  (0) 2022.07.14
MySQL - DML 실습  (0) 2022.07.14
MySQL - DDL, where문  (0) 2022.07.14

댓글