본문 바로가기

데이터베이스/MariaDB

파이썬 MariaDB_07월 27일

- MariaDB설치시 HeidiSQL 툴이 배경화면에 깔림, 구리지만 실행해봄

 

 

- 쿼리문 실행 결과

 

 

 

- 구린 HeidiSQL 툴 대신에 하나의 툴로 MariaDB, MongoDB등 여러가지 DB를 실행할 수 있는 DataGrip을 무료체험판으로 다운로드해보았다.

https://www.jetbrains.com/ko-kr/datagrip/download/download-thanks.html

 

DataGrip을 다운로드해 주셔서 감사합니다

 

www.jetbrains.com

 

- 설치시 다음과 같이 체크

 

- MariaDB쓸 것이기 때문에 MariaDB선택

 

- 아이디, 비번 입력하고 디비명 입력하고 TestConnection 눌러 Driver file다운로드 받고 다시 TestConnection눌러 ping 확인한 후 OK 클릭

 

- console에서 쿼리문 작성한 모습

 

- 쿼리문 연습

select * from songs where singer = '이하이'
# 1. release_date descending 순서대로 정렬 title, singer, album, release_date, genre
select title, singer, album, release_date, genre
from songs
order by release_date desc;

# 2. release_date가 2020-07-01 이후에 발매 title, singer, album, release_date, genre
select title, singer, album, release_date, genre
from songs
where release_date > '2020-07-01'
order by release_date desc;

# 3. release_date가 2020-07-01 이후에 발매되고 genre가 댄스인 title, singer, album, release_date, genre
select title, singer, album, release_date, genre
from songs
where release_date > '2020-07-01' and genre = '댄스'
order by release_date desc;

# 4.1 중복되지 않은 name값 가져오기
select distinct singer
from songs;
# 4.1.1 singer별 row count
select singer, count(*) as cnt
from songs
group by singer
order by cnt desc;
# 4.1.3 cnt가 3곡 이상인 경우만 출력
select singer, count(*) as cnt
from songs
group by singer
having cnt >= 3
order by cnt desc;

# 4.2 중복되지 않은 genre값 가져오기
select distinct genre
from songs;
# 4.2.1 genre별 row count
select genre, count(*) as cnt
from songs
group by genre
order by cnt desc;
# 4.2.3 cnt가 3곡 이상인 경우만 출력
select genre, count(*) as cnt
from songs
group by genre
having cnt >= 3
order by cnt desc;

# id 컬럼을 modify - not null, auto+increment, primary key
alter table songs modify Id int not null  auto_increment primary key;
# insert
insert into songs(title,singer,album,release_date,genre,lyric) values('아침이슬','최수녕','명작2021','2020-07-16','댄스','룰루랄라댄스댄스신난다~~')
select * from songs;

# update
update songs set release_date='2006-07-01', lyric='살짝설렛어난빰빰빠라아빠라빰' where singer = '최수녕'
select * from songs;

# delete
delete from songs where id=101;
select * from songs;

# like
select distinct album from songs;
select * from songs where album like '%ost %';
select * from songs where album not like '%ost %';

 

- 쿼리문 연습

# 1. 나이순으로 desc/ id,이름, 나이, 정당
select id, 이름, 나이, 정당 from members order by 나이 desc;
# 2. 나이가 60 - 80 / id, 이름, 나이, 정당, 취미특기
select id, 이름, 나이, 정당, 취미특기 from members where 나이 >= 60 and 나이 <= 80 order by 나이 desc;
# 2.1 나이가 20 ~ 40 / id, 이름, 나이, 정당, 취미특기
select id, 이름, 나이, 정당, 취미특기 from members where 나이 >= 20 and 나이 <= 40 order by 나이 desc;
# 3. 취미특기가 없는 member 가져오기
select * from members where 취미특기="";
# 3.1 취미특기가 없는 member의 취미특기 값을 '없음'으로 update
update members
set 취미특기 = '없음'
where 취미특기 = "";
# 4. 이름 홍길동 --> 홍 substring
select substr(이름 from 1 for 1)
from members;
# 4.1 이름의 성씨별로 count 예를 들어 김10
select substr(이름 from 1 for 1), count(substr(이름 from 1 for 1))
from members
group by substr(이름 from 1 for 1);
# 5. 소속위원회 문자열 중 '보건복지'인 member 가져오기
select *
from members
where 소속위원회 like '%보건복지%';
# 5.1 소속위원회 문자열 중 '보건복지' 이거나 '법제사법' sort 소속위원회 asc
select *
from members
where 소속위원회 like '%보건복지%' or 소속위원회 like '%법제사법%'
order by 소속위원회 asc;
# 6. 비서가 4명인 member
select mem.이름, mem.비서, mem.cnt
from (select 이름, 비서,(length(비서)-length(replace(비서,',',''))+1) as cnt from members) as mem
where cnt = 4;
# length()함수 사용
# subquery사용 - 2개의 query를 사용

# 7. 더블어민주당, 초선, 경기 member 가져오기
select *
from members
where 정당='더불어민주당'
and 당선횟수='초선'
and 선거구='경기';
# 7.1 미래통합당, 초선, 경기 member 가져오기
select *
from members
where 정당='미래통합당'
and 당선횟수='초선'
and 선거구='경기';
# 7.2 정당별로 초선, 경기인 member 가져오기 - 한번에 가져옴
select *
from members
where 당선횟수 = '초선' and 선거구='경기'
group by 정당;
select 비서 from members;

'데이터베이스 > MariaDB' 카테고리의 다른 글

Sub Query 연습 & MariaDB연동 & 팟빵 크롤링  (0) 2020.07.28
파이썬 MariaDB_07월 27일  (0) 2020.07.27