본문 바로가기

SQL, Database25

DBeaver 설치(feat. 공공데이터 열기) 공공데이터 파일 을 열려다 보니까 MYSQL에서는 한글 인코딩을 지원을 안 해서 어떻게 해도 열 수가 없었다. 그래서 버티다가 결국 디비버 설치함! mysql같은건줄 알았는데 mysql같은 곳에 연결할수 있는 프로그램이었다. (신기해) 설치하고 파일 열기 시작-⭐ 1.설치하기- 디비버 웹사이트: https://dbeaver.io/download/- 다운받아서 설치해주면 된다.- 설치하면 파란색 엑스 표시가 표시된 곳은 제외하고 다른 부분은 다 열린다. 파란색 엑스 표시가 있는 곳은 빈칸으로 되어 있다. 2. 파일 열기- 상단에 데이터베이스 메뉴 > 새 데이터베이스 연결 하면 이런 창이 뜬다. 여기서 나는 MYSQL 연결함. 각자 쓰는 DBMS를 연결하면 된다. - 그걸 하고나면여기가 연결되었다고 뜬다... 2025. 8. 14.
SQL: 윈도우 함수 테이블의 특정 부분을 대상으로 계산해주는 함수가 윈도우 함수단점: 윈도우 함수는 MySQL은 8.0 버전 이상에서만 사용 가능select group_name, count(*) over(partition by group_name) as member_cnt --group by 쓰지않고 그루핑 하기. 다만 결과가 groupby처럼 나오지는 않음. 그래도 group별로 값이 붙어져서 나오기는 함from idol_member;-- 대륙별로 총인구 구하기use world;select code, name, continent, population , sum(population) over(partition by continent) as tpfrom country; --순위매기기row_number 1234.. 2025. 8. 13.
SQL: WITH ROLLUP SELECT animal,type,count(*) from animal_info group by animal, type order by animal;-- 하면 동물 종류에 따라서 정렬이 되면서 다른 정보들이 나오게 된다. 여기서 rollup 을 쓰려면order by animal 지우고 with rollup을 작성하면 동물 종류별로 소계와 전체 총계가 나오게됨-- 그렇게 하면 소개와 총계가 나올 때는 다른 칸들은 좀 비어있게 되는데, 비어있는 칸 채우는 방법select case when animal is null then 'total' else animal end as animal, case when type is null then 'total' else type end as type, .. 2025. 8. 13.
SQL: 서브쿼리 (+WITH) 1. 스칼라 서브쿼리 : 스칼라 서브쿼리 쓸때는 하나의 값만 나오도록 select 절을 작성해줘야한다는 점! 명심하기-- 이렇게 서브쿼리를 통해서 조인한 결과를 한번에 보여주기select a.id, a.name, (select b.name from grade_info b where b.code = a.grade_code) as grade from customers a; -- 여러 다른 테이블에서 데이터 가져오기select (select count(*) from country) as tco ,(select count(*) from city) as tci , (select count(distinct language) from countrylanguage) as tlfrom dual.. 2025. 8. 13.
SQL: 가상의 테이블(view, with) - 서브쿼리 가독성 높이기 -- 원래 코드SELECT co.code, co.name, ci.name, ci.populationFROM country coJOIN ( SELECT * FROM city WHERE population >= 800 * 10000 ) ciON co.code = ci.countrycode; VIEW# 직접 데이터 저장 X : 주소값만 저장 # > READ만 가능 : CREATE, UPDATE, DELETE 불가 # CREATE VIEW AS ( )-- view 생성CREATE VIEW city_800 AS SELECT * FROM city WHERE population >= 800 * 10000;--VIEW 활용SELECT co.code, co.name, ci.name, ci.p.. 2025. 8. 13.
SQL: JOIN 종류 6개: INNER JOIN, LEFT, RIGHT, OUTER, SELF, CROSSSELECT u.ui, u.un, a.anFROM user uJOIN addr aON u.ui = a.ui;-- 줄이기(inner join 에서만 됨)SELECT u.ui, u.un, a.anFROM user u, addr aWHERE u.ui = a.ui;-- 여기다가 조건 추가하기, 그런경우 where 에다가 붙임WHERE u.ui = a.ui and u.un 'A'; -- and 후에 조건을 붙임으로서 추가함. ( 는 !=와 같으며 표준sql은 를 권장)--여러개 INNER JOIN 줄이기SELECT co.code, co.name, ci.name, ci.population, lang.countrycode, .. 2025. 8. 13.