묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결다양한 사례로 익히는 SQL 데이터 분석
백업파일 테이블 생성 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.주신 백업 파일로 같은 버전으로 받아서 데이터베이스에 업로드 했는데 테이블이 생성되지 않습니다. 스키마도요. 아무리 이리저리 해봐도 바뀌지 않아서 방법을 여쭤봅니다
-
해결됨Real MySQL 시즌 1 - Part 2
에피소드 21에 궁금한 점이 있어 질문드립니다.
강의 마지막 주의사항 중 아래의 설명이 있었는데요."참조하는 테이블들의 데이터에는 읽기 잠금(Shared Lock) 이 발생하므로, 잠금경합이 발생할 수 있음" 이 부분에 대한 추가적인 궁금증이 있습니다.만약 Product 테이블이 100만건이 있고 Order 테이블을 업데이트 하기 위해 Product 테이블과 JOIN 을 거는 상황이라고 했을 때 업데이트 대상이 되는 Order 테이블에 X 락이 걸리는 것 뿐만 아니라, Product 테이블에도 S락이 걸리므로 다른 트랜잭션에서 Product 테이블에 UPDATE 를 하려고 했을때 lock wait timeout 같은 문제가 발생할수있다는 것일까요?
-
미해결데이터 분석 SQL Fundamentals
with as로 정의되는 테이블 질문입니다.
---1번 쿼리(오류) with temp_01 as( select b.order_date from order_items a join orders b on a.order_id = b.order_id group by b.order_date order by b.order_date ) select order_date as ord_date , sum(amount) over (order by order_date) as daily_sum from temp_01 ------------------------------------------------------------------------- ---2번 쿼리(작동) with temp_01 as( select b.order_date , sum(amount) as sum_amount from order_items a join orders b on a.order_id = b.order_id group by b.order_date order by b.order_date ) select order_date as ord_date , sum(sum_amount) over (order by order_date) as daily_sum from temp_01안녕하세요 선생님. 제가 쿼리를 혼자 작성해보다가 막히는 점이 있어서 질문 드립니다. 쿼리를 다음과 같이 작성했는데 첫 번째 쿼리는 오류가 나고 두 번째 쿼리는 작동했습니다. 두 쿼리의 다른 점은 두 번째 쿼리에서 with 절에 sum(amount) as sum_amount로 amount를 정의한 것입니다. 이전에도 with 절로 temp_01을 종종 정의해서 쿼리를 작성했는데 아직 헷갈립니다.with 절로 temp_01을 만들 때, order_items나 orders에 포함되는 컬럼이라면 굳이 모두 with절의 select에 입력하지 않아도, 그 다음 select 절에 입력해 출력할 수 있다고 생각했습니다. 그래서 1번 쿼리처럼 작성했는데 오류가 나서 헷갈립니다. 읽어주셔서 감사합니다.
-
해결됨Real MySQL 시즌 1 - Part 1
페이징 쿼리 관련해서 질문드립니다.
현재 spring data jpa query + paging 을 사용하고 있습니다. fun findAllFollowing(followerId: Long, pageable: Pageable): List<SnapProfile> = from(snapProfileFollow) .join(snapProfile).on(snapProfile.id.eq(snapProfileFollow.following.id)) .where(snapProfileFollow.follower.id.eq(followerId)) .orderBy(*snapProfile.orderSpecifiers()) .offset(pageable.offset) .limit(pageable.pageSize.toLong()) .fetch() .map { it.following.toModel() }이것을 데이터 개수 기반으로 변경하고 싶은데 혹시 이럴 때 변경해보신 경험이 있으실까요?
-
해결됨Real MySQL 시즌 1 - Part 1
(1,2강) char, varchar, text 관련 질문
utf8mb4 char에서도 varchar와 마찬가지로 변경되는 문자열이 할당된 길이를 넘어버리면 레코드를 다른 공간으로 옮겨야하는 것이겠죠?그렇다면 varchar와 마찬가지로 길이가 자주 변경되는 경우 사용하면 안되겠네요. 맞나요?varchar가 char과 달리 공간을 미리 예약하지 않는다면, varchar(50)에서 50은 무슨 의미인가요?2강에 나오는 메모리 버퍼 크기에만 영향을 주는 것인가요?varchar 타입의 메모리 버퍼 공간은 어떤식으로 사용되는 것인가요?예를들어, 메모리 버퍼 공간을 테이블 1개당 1개 만들어서 재활용한다고 하면 varchar(30)는 겨우 (latin기준) 30바이트, varchar(255)는 겨우 255바이트를 사용하니까 메모리 공간 차이가 별로 없을 것 같습니다.그래서 테이블 1개당 1개만 사용하는 것은 아닐 것 같은데, 가져오는(예상되는?) row갯수만큼 할당해두는 것이려나요?(text 디폴트 관련) 표현식이라는 용어를 처음 들어봤는데요, 표현식이 무엇인가요? 구글에 나이브하게 검색하면 정규표현식만 나오네요.https://dev.mysql.com/doc/refman/8.4/en/expressions.html 이 문서의 expression을 의미하는 것일까요?'abc'와 ('abc') 사이에 어떤 차이가 있는지 궁금합니다.text는 어떻게 저장되기 때문에 row사이즈 제한에 포함이 안되나요?혹시 언제나 오프페이지로 저장되는건가요?
-
미해결데이터 분석 SQL Fundamentals
제가 작성한 코드에 왜 오류가 생기는지 잘 모르겠습니다.
with temp_01 as ( select b.product_id, b.category_id , sum(amount) as sum_by_prod from order_items a join products b on a.product_id = b.product_id group by b.product_id, b.category_id ) , temp_02 as ( select product_id, category_id, sum_by_prod , sum(sum_by_prod) over (partition by category_id) as sum_by_cate , row_number() over(partition by category_id order by sum_by_prod) top_prod_ranking from temp_01 ) select * from temp_02 where sum_by_prod >= sum_by_cate*0.05 and top_prod_ranking <= 3 ;안녕하세요. 위의 코드로 실행시킨 결과, 다음과 같이 출력되었습니다.12 4 12257.66 234507.26 322 5 7122.36 95744.59 355 6 17426.40 163022.37 314 7 7991.48 99984.57 27 7 22044.30 99984.57 3위의 코드에서 선생님께서 작성하신 코드와 다른 점은 temp_01 생성할 때 group by를 product._id와 category_id, 총 2개로 놓은 것인데요. 선생님이 작성하신 temp_01과 제가 작성한 temp_01를 전체 쿼리에서 떼어와서 각각 실행했을 때 결과는 같았는데, 전체 쿼리에서는 왜 결과가 달라졌는지 궁금합니다. 감사합니다.
-
해결됨Real MySQL 시즌 1 - Part 1
커버링 인덱스 질문 드립니다
안녕하세요! 페이징 쿼리 관련해서 질문 좀 드립니다방명록(사진) 목록을 조회하는 페이징 쿼리에서 테이블에 soft delete(deleted_at), 공개 여부(is_private) column이 있어서 post.deleted_at is null and post.is_private is false 조건이 자주 들어가는데 커버링 인덱스를 위해 해당 column을 인덱스에 추가하는 것은 어떻게 생각하시나요?
-
해결됨비전공자의 전공자 따라잡기 - 데이터베이스,SQL
설치 오류 질문드립니다.
남겨주신 링크로 다운해봤고 직접 들어가서도 다운해봤는데 저 상태에서 그냥 꺼지고 인스톨러가 실행이 안되는데 뭐가 문제일까요? 도움주시면 감사하겠습니다.
-
해결됨[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
MySQL에서는 숫자 타입 컬럼에서 '', ""를 함께 사용해도 되나요?
안녕하세요,실전 SQL 데이터분석 연습: 집계 함수 익히고 실제 DB로 연습하기 (업데이트) 13:00~ 부분의 연습문제8 관련하여 궁금한 사항이 있어서 문의 드립니다. 문제는 영화 렌탈 테이블(rental)에서 inventory_id가 367이고, staff_id가 1인 로우(Row) 전체 출력하기 입니다. Rental 테이블의 inventory_id 컬럼은 타입이 mediumint, staff_id는 tinyint 인 것 같습니다.그런데 정수 타입의 컬럼인데 Where 조건 절에서 ''를 써도 동일하게 결과값이 조회가 되는 것 같더라구요.제가 잘못 알고 있을 수도 있지만 정수와 같은 숫자 타입의 경우 값을 '' 혹은 "" 없이 입력하고,Str 같은 문자의 경우 '', "" 를 값에 함께 입력해야 문자타입으로 인식하는 것 같은데혹시 MySQL에서는 컬럼타입에 있어서 이러한 구분 없이 사용이 되는 것일까요? 따옴표 ('') 없이 조건 값을 입력해서 조회했을 경우따옴표를 함께 조건에 입력해서 조회했을 경우감사합니다.
-
미해결오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
19c ee rpm 파일 설치 문의
안녕하세요 선생님. 모르는 부분이 있어 질문 드립니다.제가 설치방법 에서 winscp를 통해 19c ee rpm파일을 개인 디렉토리까지 올렸습니다. 강의에서는 개인디렉토리에 파일이 올라가 root 계정에서 설치가 안되니 temp로 옮겨서 하면 된다고 하셨는데 제가 그 방법을 잘 모르겠습니다... 자세히 방법을 알려주실수 있으실까요?
-
미해결데이터 분석 SQL Fundamentals
to_char 대신 year, month, day 절
select year(order_date), month(order_date), day(order_date) from order_items a join orders b on a.order_id = b.order_id group by year(order_date), month(order_date), day(order_date);to_char 대신에 위처럼 year, month, day로 하면 명시적 형변환자를 추가해야 한다고 뜨면서 오류가 나더라고요. 왜 안 되는지 잘 모르겠습니다.
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
04. DB 파트 기출 해설(실기 4번)
해당 강의는 무료 제공 강의이기에 별도의 강의 내용 코칭은 제공해드리고 있지 않고 있습니다.(단, 내용 오류 신고는 지속적으로 받고 있으며, 기존에 신고 받았던 내용은 영상 상세 설명란에 참조 내용으로 적혀있습니다)수익을 내지 않는 무료 제공 강의다보니 내용 오류나 오탈자가 있을 수 있습니다. 내용 오류는 dbswjdgkssla@naver.com 으로 신고해주시면 주기적으로 검토해서 반영하고 있습니다.(단순 오탈자는 건당 100원, 단순 오탈자가 아닌 내용 오류 신고는 건당 1000원의 신고 포상금을 드리고 있습니다)강의에 오류가 있는 부분은 강의 내용에 사전 안내가 되어 있습니다, 해당 오류는 유튜브에서 이미 인지한 오류이며, 올인원 교재 업데이트(24년) 전까지 한 강씩 차례로 수정 반영될 예정입니다.04번 해설에서SELECT COUNT(COL2) ....이니깐 개수를 셀 때는 COL2에서 NULLL 값을 제외하고 계산하니깐 4개인거 아닌가요?강의에서는 COL1에서 NULL 값을 제외하고 4개를 세시는데 헷갈리네요.제가 잘못 이해한 부분이 있는거라면 그 부분에 대해서 설명 부탁드립니다.
-
해결됨Real MySQL 시즌 1 - Part 1
prepardStatement 관련 질문 드립니다
안녕하세요.강의 내용 중에"커넥션 풀을 사용하기 때문에 Parse-tree 를 캐시하고 재활용하는 부분이 매우 비효율적으로 바뀔 가능성이 높다"라고 언급하신 부분이 있는데 이 부분이 잘 이해가 안되서 질문드리고 싶습니다. 히카리같은 커넥션 풀을 사용하면 커넥션이 닫히지 않고 계속 재활용하게 되서 이미 캐시된 Parse-tree를 재활용 할 수 있기 때문에 오히려 이점이 있는 것이 아닌가 단순하게 생각이 되는데요, 예를 들어 1번 커넥션에서 A쿼리 패턴으로 PreparedStatement 객체를 생성하여 mysql 서버에 캐시가 되었다면, 다시 동일한 1번 커넥션을 사용하여 A쿼리 패턴을 쓰게 된다면 이미 캐시된 Parse-tree를 재활용하는 것이 아닐까? 이렇게 생각했거든요.어떤 점에서 비효율적으로 동작할 가능성이 있다는 것인지 궁금합니다. 바쁘신데 읽어주셔서 감사합니다.
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
DCL 강의 파트 CLI 입력 창에서 잘못 입력 시 취소하는 방법
안녕하세요,수업을 들으면서 간혹 타자를 잘못 치게 되는 경우가 있는데이럴때 입력 창에서 어떻게 뒤로 가기를 하거나 빠져나갈 수 있는 방법이 있을까요? 예를들어 제가 exit을 입력해야 하는데 잘못하여 'by'로 잘못 입력 후 엔터를 치니화살표가 뜨면서 계속 해당 칸에서만 입력이 가능합니다.이런 경우 어떻게 원래 입력위치로 돌아가서 'exit'으로 입력을 할 수 있을까요?현재로서는 방법을 알지 못하여 창을 아예 껐다가 모든 명령어를 다시 입력 후 재진행하고 있으나혹시 이와 같은 상황에서 명령어로 수정이 가능할 지 궁금하여 문의드립니다. 감사합니다.
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL Server 운영 이야기(기본편)
MSSM 접속 오류입니다.
안녕하세요 선생님 수강 중에 질문이 있습니다저는SSMS20 버전을 다운 받았는데요, 접속할 때 선생님화면과 똑같이 떠서 접속을 눌렀는데 오류가 뜹니다.오류 내용은 'DESKTOP-에 연결할 수 없습니다. 로그인하지 못했습니다. Microsoft SQL Server, 오류 :18456'이라고 뜨는 데 방화벽에서 새로운 규칙을 추가해서 포트를 정해주었는데도 같은 오류가 뜹니다. 어떻게 해결할 수 있는지 알고 싶습니다. 참고 이미지 첨부해드립니다.
-
해결됨Real MySQL 시즌 1 - Part 1
VARCHAR 타입 길이 변경과 INNODB 관련 질문
안녕하세요 좋은 강의 감사합니다.다름이 아니오라 VARCHAR 타입의 경우 자리수가 변경되면 이를 저장하기 위한 여유 데이터 블록(페이지)을 찾고 거기로 이동한다고 하셨는데요Innodb 같은 경우 클러스터드 인덱스다 보니 물리적 블록도 인덱스 기준으로 차곡차곡 쌓이는 것으로 이해하고 있습니다. 그런데 VARCHAR 자리수 변경으로 물리적 블록의 이동이 생긴다면 클러스터드 인덱스 구조를 유지하기 어려워 보이는데 어떻게 유지를 할 수 있는 것인지 혹은 위에 서술한 부분에 잘못 이해한 부분이 있는건지 문의드립니다.
-
해결됨Real MySQL 시즌 1 - Part 1
TEXT 타입 데이터가 저장되는 위치에 대해 질문드립니다.
안녕하세요, TEXT 타입 데이터가 저장되는 위치에 대해 궁금한 점이 있습니다.The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows. BLOB and TEXT columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row.https://dev.mysql.com/doc/refman/8.4/en/column-count-limit.html#row-size-limitsTEXT 컬럼은 레코드가 저장될 때 외부에 저장된 뒤, 해당 위치를 가리키는 포인터 (?) 가 저장되는 것으로 이해가 되는데요. Q. 여기서 말하는 다른 row의 컬럼과 별도로 저장된다는 것이 Off-Page와는 별개의 개념인가요? 연속적으로 저장되는 것이 아닐 뿐 같은 페이지에 저장을 하게 되나요?항상 감사합니다.
-
해결됨Real MySQL 시즌 1 - Part 1
ep 3 5분 16초 경 설명 질문 있습니다.
ix_fd1, ix_fd2 가 인덱스가 있는 경우인데 아래 쿼리가 어떻게 커버링 인덱스로 사용될 수 있나요?select count(ix_col2) where ix_fd1=?; 오타일까요? (ix_col2 -> ix_fd1 이려나요?)근데 오타라고 가정하고, ix_fd1 이 nullable 이면 해당 칼럼들의 null 여부 확인으로 not null 일때보다 시간이 오래걸릴거 같은데 맞을까요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
"사용자별 특정 상품 주문시 함께 가장 많이 주문된 다른 상품 추출하기"에서 조건관련..
주문별 고객별 연관 상품 추출 SQL로 구하기 -02 강의를 듣던중 궁금한점이 있어 글을 남기게 되었습니다.임시테이블 temp_01 에서 인데요..고객별 주문별 연관상품 추출하려면 user_id도 같아야하겠지만, order_id(주문번호)도 같다는 조건 하에 self join해야하지 않을까 싶어서요.select a.user_id, a.product_id as prod_01, b.product_id as prod_02from temp_00 ajoin temp_00 b on a.user_id = b.user_idand a.order_id = b.order_id -- 이 부분 추가되어야하지 않을지 궁금합니다.where a.product_id != b.product_id감사합니다.
-
해결됨Real MySQL 시즌 1 - Part 1
각 에피소드가 책의 어떤 장과 연결되는지 알 수 있을까요?
강의 자료가 별도로 제공되지 않아서, 책과 함께 복습하려고 하는데 정확히 어디인지 알 수 있으면 좋을거같습니다.