happyso
study with happyso
happyso
전체 방문자
오늘
어제
  • 분류 전체보기 (302)
    • GIT (3)
    • 컴퓨터 기본 개념 (29)
    • 알고리즘 (125)
      • 알고리즘 문제 (115)
      • 알고리즘 개념 (10)
    • Go (2)
    • 클라우드 (54)
      • DevOps (4)
      • Kubernetes(쿠버네티스) (33)
      • AWS (6)
      • CKA (8)
    • 리눅스(Linux) (18)
      • 컨테이너(Container) (8)
    • Front (22)
      • JavaScript (2)
      • React (20)
    • Python (21)
      • Python 웹 크롤링 (11)
      • Django (7)
      • MachineLearning (3)
    • 데이터베이스 (6)
      • MariaDB (2)
      • MongoDB (4)
    • C언어 (5)
    • Trouble Shooting (2)
    • 네트워크 (8)
      • CCNA (5)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 18
  • edit
  • Patch
  • replace
  • 15
  • apply
  • kubernetes

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
happyso

study with happyso

파이썬 MariaDB_07월 27일
데이터베이스/MariaDB

파이썬 MariaDB_07월 27일

2020. 7. 27. 17:32

- 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' 카테고리의 다른 글
    • Sub Query 연습 & MariaDB연동 & 팟빵 크롤링
    happyso
    happyso

    티스토리툴바