묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
Alter 질문이 있습니다
만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
Between 질문
WHERE CutormerName BETWEEN 'C' AND 'M' 이라고 했을 때 M으로 시작하는 이름은 포함되지 않는데 왜 그런거죠?
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
Syntax error
SELECT * FROM CustomersLIMIT 10이라고 입력하고 실행했는데 Error in SQL:Syntax error in FROM clause.이라고 뜨네요. 왜 그럴까요? Limit 10입력하기 전에는 데이터가 잘 나왔어요.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
set 1 - 2번 문제풀이
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.having total_score !=0 이라고 group by 결과값을 필터링해주셨는데실행 순서상 서브쿼리 ->메인쿼리(from/join -> (where) -> groupby -> having ->select -> orderby -> limit)이지 않나요?그런데 select 에 있는 total_score를 having에서 쓸 수 있는 이유가 궁금합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
해커랭크문제풀이
selectFROM city(여기에서 왜 city가 들어가나요?테이블명이면 station이 들어가야하지 않는건가요?
-
미해결생애 첫 SQL With 제코베
섹션1 - 6회차 실습 에러
안녕하세요. 섹션1의 6회차 실습 중에 에러가 발생하여 문의드립니다. 에러 메시지는 아래 첨부된 이미지로 확인해 주세요.노션에 제공된 코드를 그대로 복사하여 붙여넣었고,root 패스워드를 제가 설정한 패스워드로 수정한 것말곤 없습니다. (*사용 중인 환경: MAC) 어떻게 해결할 수 있을까요? 도와주세요! ㅠ_ㅠ
-
미해결MySQL 성능 최적화
해당 강의 제공 코드를 보니 DB 커넥션 정보를 넘길때 포트가 빠졌네요
수업 자료에서도 포트가 빠져있어서 왜 계속 인증 오류가 뜨나 했네요 시간 되시면 수정 부탁드립니다.
-
미해결데이터 분석 SQL Fundamentals
질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님.질문이 좀 있습니다.a,b,c,d table 과 id 컬럼이 있다고 가정1) 여기서 [1.1] 쿼리는 실행 계획으로 치면 a,b,c를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 결과 도출.이렇게 이해하고 있습니다.그런데, 여기서 궁금한것이 LEFT OUTER JOIN은 서술 왼쪽 테이블이 드라이빙 고정으로 알고 있습니다.그래서, [1.2] 쿼리는 실행 계획으로 치면 a,b를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 데이터 셋을 새로만듬.그리고 , c와 이너조인 진행 이렇게 이해하면 될까요?2) 1.1과 1.2처럼 아우터조인의 서술 위치에 따라서 결과값에 대한 데이터가 달라질수 있나요?결국 a.id와 조인하기 때문에 해당 기준으로 데이터를 뽑아서어디에 서술하던지 데이터는 달라질수 없는거같은데 제가 이해한게 맞는지 질문드립니다.3) 2번을 질문드린 이유중 하나인데요.아우터 조인을 쓰면 테이블의 드라이빙 순서가 고정되버리니까 서술한 위치에 따라서 실행계획이 바뀔테고 그러면 데이터가 변경될수도 있는 사례가 있을까요?실행계획은 아무리 바뀌어도 데이터의 영향을 주는건 없는걸로 알지만 , 자꾸 뭔가 헷갈려서 질문드립니다.4) a.id = b.id on b.id =c.id on c.id =d.id 이런식으로 조건을 주면이너 조인은 상관 없겠지만 아우터 조인을 진행할 때는 데이터가 달라질거 같은데 보통은 아우터 조인 쿼리를 작성할 때 조인 조건을 어떻게 줘야하나요?제가 적은 예시처럼 쿼리를 짜나요??질문이 두서 없고 너무 많아서 죄송합니다..강사님 강의를 통해 확실하게 잡고 가지 않으면 추후에 또 다시 공부를 해야할 거 같아 질문드립니다.[1.1]select * from a INNER JOIN b ON a.id = b.idINNER JOIN c ON a.id = c.idLEFT OUTER JOIN d ON a.id = d.id;[1.2]select * from a INNER JOIN b ON a.id = b.idLEFT OUTER JOIN d ON a.id = d.idINNER JOIN c ON a.id = c.id;
-
미해결MySQL 성능 최적화
Task2는 직접해보는 부분인가요?
Task1만 하시고 끝나서 그런데 Task2는 직접 하는건지 강의가 추후에 올라오는 건지 궁금합니다
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
백엔드 개발자가 이 강의를 들어도 괜찮을까요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 제목 그대로 백엔드 개발자가 들어도 괜찮은 강의인지 궁금합니다. (이미 강의를 결제했지만요 ㅎㅎ..) 강의에서 전체적으로 다루는줄 알았는데 select에 집중한다길래.. 내가 생각한 강의가 아닌가.. 싶어서 이렇게 글 남깁니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
pandas 연계시 오류.....
(아나콘다를 깔고나서 새 파일에서 뭘 수정하려고하면 바로 연결이 끊기는 문제가 생겨 주피터 노트북으로 설치하였습니다. 필요한 라이브러리들은 모두 따로 설치하였습니다.)버전은 아래와 같습니다.오류가 발생하는 부분은 이 부분인데query문이 있는 셀의 전체 오류문은 아래와 같습니다--------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[12], line 4 1 query = """ 2 select * from nw.customers 3 """ ----> 4 df = pd.read_sql_query(sql=query, con=postgres_engine) 5 df.head(10) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:485, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 482 dtype_backend = "numpy" # type: ignore[assignment] 483 assert dtype_backend is not lib.no_default --> 485 with pandasSQL_builder(con) as pandas_sql: 486 return pandas_sql.read_query( 487 sql, 488 index_col=index_col, (...) 494 dtype_backend=dtype_backend, 495 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:851, in pandasSQL_builder(con, schema, need_transaction) 848 raise ImportError("Using URI string without sqlalchemy installed.") 850 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 851 return SQLDatabase(con, schema, need_transaction) 853 warnings.warn( 854 "pandas only supports SQLAlchemy connectable (engine/connection) or " 855 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 858 stacklevel=find_stack_level(), 859 ) 860 return SQLiteDatabase(con) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:1576, in SQLDatabase.__init__(self, con, schema, need_transaction) 1574 self.exit_stack.callback(con.dispose) 1575 if isinstance(con, Engine): -> 1576 con = self.exit_stack.enter_context(con.connect()) 1577 if need_transaction and not con.in_transaction(): 1578 self.exit_stack.enter_context(con.begin()) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3268, in Engine.connect(self) 3245 def connect(self) -> Connection: 3246 """Return a new :class:`_engine.Connection` object. 3247 3248 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3265 3266 """ -> 3268 return self._connection_cls(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:145, in Connection.__init__(self, engine, connection, _has_events, _allow_revalidate, _allow_autobegin) 143 if connection is None: 144 try: --> 145 self._dbapi_connection = engine.raw_connection() 146 except dialect.loaded_dbapi.Error as err: 147 Connection._handle_dbapi_exception_noconnection( 148 err, dialect, engine 149 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3292, in Engine.raw_connection(self) 3270 def raw_connection(self) -> PoolProxiedConnection: 3271 """Return a "raw" DBAPI connection from the connection pool. 3272 3273 The returned object is a proxied version of the DBAPI (...) 3290 3291 """ -> 3292 return self.pool.connect() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:452, in Pool.connect(self) 444 def connect(self) -> PoolProxiedConnection: 445 """Return a DBAPI connection from the pool. 446 447 The connection is instrumented such that when its (...) 450 451 """ --> 452 return _ConnectionFairy._checkout(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:1269, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1261 @classmethod 1262 def _checkout( 1263 cls, (...) 1266 fairy: Optional[_ConnectionFairy] = None, 1267 ) -> _ConnectionFairy: 1268 if not fairy: -> 1269 fairy = _ConnectionRecord.checkout(pool) 1271 if threadconns is not None: 1272 threadconns.current = weakref.ref(fairy) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:716, in _ConnectionRecord.checkout(cls, pool) 714 rec = cast(_ConnectionRecord, pool._do_get()) 715 else: --> 716 rec = pool._do_get() 718 try: 719 dbapi_connection = rec.get_connection() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:169, in QueuePool._do_get(self) 167 return self._create_connection() 168 except: --> 169 with util.safe_reraise(): 170 self._dec_overflow() 171 raise File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:167, in QueuePool._do_get(self) 165 if self._inc_overflow(): 166 try: --> 167 return self._create_connection() 168 except: 169 with util.safe_reraise(): File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:393, in Pool._create_connection(self) 390 def _create_connection(self) -> ConnectionPoolEntry: 391 """Called by subclasses to create a new ConnectionRecord.""" --> 393 return _ConnectionRecord(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:678, in _ConnectionRecord.__init__(self, pool, connect) 676 self.__pool = pool 677 if connect: --> 678 self.__connect() 679 self.finalize_callback = deque() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:902, in _ConnectionRecord.__connect(self) 900 self.fresh = True 901 except BaseException as e: --> 902 with util.safe_reraise(): 903 pool.logger.debug("Error on connect(): %s", e) 904 else: 905 # in SQLAlchemy 1.4 the first_connect event is not used by 906 # the engine, so this will usually not be set File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:898, in _ConnectionRecord.__connect(self) 896 try: 897 self.starttime = time.time() --> 898 self.dbapi_connection = connection = pool._invoke_creator(self) 899 pool.logger.debug("Created new connection %r", connection) 900 self.fresh = True File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\create.py:637, in create_engine.<locals>.connect(connection_record) 634 if connection is not None: 635 return connection --> 637 return dialect.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\default.py:616, in DefaultDialect.connect(self, *cargs, **cparams) 614 def connect(self, *cargs, **cparams): 615 # inherits the docstring from interfaces.Dialect.connect --> 616 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\psycopg2\__init__.py:122, in connect(dsn, connection_factory, cursor_factory, **kwargs) 119 kwasync['async_'] = kwargs.pop('async_') 121 dsn = _ext.make_dsn(dsn, **kwargs) --> 122 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 123 if cursor_factory is not None: 124 conn.cursor_factory = cursor_factory UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 63: invalid start byte
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
강의 연장 가능할까요
안녕하세요, 성능좋은 쿼리작성법 수강중인 수강생입니다.제가 다른 업무로 인해 좋은 강의를 아직 모두 수강하지 못했는데 혹시 연장 가능할까요?감사합니다.
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
수업 강의 자료라는 것은 어느 메뉴로 들어가야하나요
수업 강의 자료라는 것은 어느 메뉴로 들어가야하나요???? 메뉴를 찾을 수가 없어요..
-
미해결데이터 분석 SQL Fundamentals
질문있씁니다!!
제가 현장에서 Oracle 과 Tibero 를 돌아가면서 쓰고있는데 본강의에 듣기에 적합할까요?
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
강의자료를 통해서 요약한 내용을 블로그로의 사용여부
강의자님 강의자료를 통해서 노트에 학습 내용을 개인적으로 요약해서 개인 블로그에 공부 기록을 목적으로 사용하고 싶은데 가능할까요?
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
데이터 삭제 후 다시 데이터 추가 시 질문
id(id는 auto increment 설정)와 name 등의 데이터를 5개를 추가한 후, delete from 을 통해 삭제하고 다시 데이터를 넣으니, id가 1부터 다시 지정되는 것이아닌 6부터 지정이 되더라구요..삭제 후, 다시 id를 1부터 하게 할 순 없을까요..?
-
미해결데이터 분석 SQL Fundamentals
스칼라 서브쿼리 실습 - 01: 7분 56초 질문
해당 쿼리에서 왜 같은 행이 3배로 늘어나게 되는 것인지 궁금합니다. 셀프조인을 하면 원래 3배로 늘어나는 걸까요?감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
세트2번 Binary Tree Nodes 질문입니다!
강사님과 동일한 코드로 작성했는데 왜 저는 error가 날까여 ㅜㅜㅜ
-
해결됨필요할 때 찾아 쓰는 SQL 쿼리북, Part I
fromdate, todate 구하는게 잘 이해가안되네요.
fromdate, todate 구하는게 잘 이해가안되네요.. 알고리즘을 자세히 설명해주실 순 없으신가요?
-
미해결윤재성의 Oracle SQL Database 11g PL/SQL Developer
join 에 in을 사용할때.
직무가 clerk인 사원과 동일한 부서에 근무하고 있는 사원들의 사원번호, 이름 , 입사일을 가져온다.clerk인 사원이 몇번의 부서에서 일 하는지 모른다.```sqlselect empno, ename, hiredate from emp where deptno in (select deptno from emp where job = "clerk")```부서번호를 가져와야 한다.```sqlselect deptno from emp where job = "clerk"에서 결과가 하나이 상인 서브쿼리에 in을 사용하면 서브쿼리의 결과 중 하나라도 일치하면 조건이 참이 된다라고 했는데 부서 번호를 가져와서 여러개의 결과가 있는데 그중 하나라도 있으니까 in을 쓴다는 말인가요? 일반 서브쿼리를 사용 했을때랑 서브쿼리에 in을 사용했을때 그 에러가 정확히 무슨뜻인지 이해가 안갑니다. 일반서브쿼리를 쓰면 값이 1개가 나오고 in은 결과 값이 여러개가 나오는 경우에 in을 쓴다는 건가요?