초기환경 설치에 관한 자료는 어디에 있나요
하트카운트와 함께 쉽게 시작하는 SQL
24년 9월 10일에 강의를 듣기 시작했습니다... 그런데 초기환경 설치 방법에 관한 자료를 못찾아서 글 남깁니다.. 어디에 있는지.. 알려 주시거나,,, 게시판에 올려 주시면 좋겠습니다.
- sql
- mysql
- sql-query
173만명의 커뮤니티!! 함께 토론해봐요.
하트카운트와 함께 쉽게 시작하는 SQL
24년 9월 10일에 강의를 듣기 시작했습니다... 그런데 초기환경 설치 방법에 관한 자료를 못찾아서 글 남깁니다.. 어디에 있는지.. 알려 주시거나,,, 게시판에 올려 주시면 좋겠습니다.
데이터 분석 SQL Fundamentals
혹시 쿼리를 빨리 읽는 방법이 있을까요? 제가 실무에서 프로시저와 함수들을 주로 사용하고 있습니다. 그런데 제가 SQL 에 익숙하지 않아서 인것도 있지만 주석이 없는 프로시저와 함수들을 보고 의도를 파악하고 분석하는데 시간이 너무 오래 걸리고 있어요. 혹시 서브쿼리 join , union 등이 무분별하게 쓰여진 복잡한 쿼리에서 쿼리의 의도만을 빠르게 파악할 수 있는 방법이 있을까요? 제 나름대로 생각을 해서 SELECT 절은 일단 보지 않고 FROM 절을 먼저 보고 어떤 테이블에서 값을 가지고 오는지 판단한후 WHERE 절을 보고 마지막으로 SELECT 절을 보고 있어요 그런데 SELECT 절에서도 CASE WHEN 문이나 단일행 서브쿼리들이 있어서 실행을 시켜보아도 이게 무슨의미인지 파악하지 못할때가 많아요,, 방법이 있을까요?
초보자를 위한 BigQuery(SQL) 입문
안녕하세요. 특정 컬럼명을 한글로 지정하여 노출하고 싶을 때에는 어떻게 해야 하나요? 별칭 지정할 때에는 따옴표 없이 사용하는거라 하셔서 아래처럼 시도해봤는데, 에러가 뜹니다. select id as 포켓몬아이디, kor_name, eng_name, type1 from basic.pokemon where type1 = 'Fire' 다른 부서원들에게 전달해야 할 때에는 컬럼명을 한글로 노출하여 전달해야 할 일이 많을 것 같아서요.컬럼명을 한글로 노출하려면 어떻게 해야 할까요? 혹시 몰라 ', " 도 함께 사용해봤는데 여전히 오류가 뜹니다. (에러문구는 다르게 뜨긴 하네요) ' 로 시도 " 로 시도
초보자를 위한 BigQuery(SQL) 입문
안녕하세요. 초보자를 위한 BigQuery(SQL) 입문 잘 들었습니다. 생각보다 재미가 있어서 계속 해보려 하는데 무엇을 해야할지 잘 몰라서 고민입니다. 강의 후반부에 "앞으로 배우면 좋을 내용" 에 있는 순서대로 해보려 했습니다. 공식 문서와 블로그 글을 통해 ARRAY, STRUCT의 기본 공부를 했습니다. 다음으로 넘어가 복잡한 데이터 가공하기 부분을 하고 있습니다. 우선 bigquery의 공개 데이터를 사용해 보자는 생각을 했고 Google Trends datasets과 COVID-19 Public Datasets을 살펴봤습니다. 세부사항과 데이터를 보며 어떤 것을 의미하는지까지는 알 수 있었습니다. 다만 이후부터 어떻게 해야할지 감이 안 왔습니다. 강의를 수강할 때는 예제 문제들이 있으니 배운 것을 적용할 수 있었는데, 처음 보는 데이터고 어떤 목적을 갖고 분석을 해야할지 모르겠습니다. bigquery 프로젝트 예제를 찾아봤지만 마땅한게 없었습니다. 혹시 이 강의를 수강하고 연습해 보기 좋은 dataset과 어떤 방식으로 프로젝트를 진행해야 할지 알고 싶습니다.
데이터 분석 SQL Fundamentals
안녕하세요 '실습용 스키마 설치 이슈 시 적용하세요'라는 강의편에 맥북에서 create schema nw; 이렇게 DBeaver에서 실행을 하면 아래와 같은 에라가 뜨네요 ㅠ SQL Error [42501]: ERROR: permission denied for database postgres
다양한 사례로 익히는 SQL 데이터 분석
query = """ select * from nw.customers """ df = pd.read_sql_query(sql=query, con=postgres_engine) df.head(10) --------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[25], 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 ~\anaconda3\Lib\site-packages\pandas\io\sql.py:468, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 465 if dtype_backend is lib.no_default: 466 dtype_backend = "numpy" # type: ignore[assignment] --> 468 with pandasSQL_builder(con) as pandas_sql: 469 return pandas_sql.read_query( 470 sql, 471 index_col=index_col, (...) 477 dtype_backend=dtype_backend, 478 ) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:832, in pandasSQL_builder(con, schema, need_transaction) 829 raise ImportError("Using URI string without sqlalchemy installed.") 831 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 832 return SQLDatabase(con, schema, need_transaction) 834 warnings.warn( 835 "pandas only supports SQLAlchemy connectable (engine/connection) or " 836 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 839 stacklevel=find_stack_level(), 840 ) 841 return SQLiteDatabase(con) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:1539, in SQLDatabase.__init__(self, con, schema, need_transaction) 1537 self.exit_stack.callback(con.dispose) 1538 if isinstance(con, Engine): -> 1539 con = self.exit_stack.enter_context(con.connect()) 1540 if need_transaction and not con.in_transaction(): 1541 self.exit_stack.enter_context(con.begin()) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3245, in Engine.connect(self) 3222 def connect(self) -> Connection: 3223 """Return a new :class:`_engine.Connection` object. 3224 3225 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3242 3243 """ -> 3245 return self._connection_cls(self) File ~\anaconda3\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 ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3269, in Engine.raw_connection(self) 3247 def raw_connection(self) -> PoolProxiedConnection: 3248 """Return a "raw" DBAPI connection from the connection pool. 3249 3250 The returned object is a proxied version of the DBAPI (...) 3267 3268 """ -> 3269 return self.pool.connect() File ~\anaconda3\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 ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:1255, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1247 @classmethod 1248 def _checkout( 1249 cls, (...) 1252 fairy: Optional[_ConnectionFairy] = None, 1253 ) -> _ConnectionFairy: 1254 if not fairy: -> 1255 fairy = _ConnectionRecord.checkout(pool) 1257 if threadconns is not None: 1258 threadconns.current = weakref.ref(fairy) File ~\anaconda3\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 ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:168, in QueuePool._do_get(self) 166 return self._create_connection() 167 except: --> 168 with util.safe_reraise(): 169 self._dec_overflow() 170 raise File ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:166, in QueuePool._do_get(self) 164 if self._inc_overflow(): 165 try: --> 166 return self._create_connection() 167 except: 168 with util.safe_reraise(): File ~\anaconda3\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 ~\anaconda3\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 ~\anaconda3\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 ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\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 ~\anaconda3\Lib\site-packages\sqlalchemy\engine\create.py:640, in create_engine.<locals>.connect(connection_record) 638 if connection is not None: 639 return connection --> 640 return dialect.connect(*cargs, **cparams) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\default.py:580, in DefaultDialect.connect(self, *cargs, **cparams) 578 def connect(self, *cargs, **cparams): 579 # inherits the docstring from interfaces.Dialect.connect --> 580 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\anaconda3\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 판다스 버전과 sqlalchemy 버전은 다음과 같이 맞추었습니다 2.0.3 2.0.0
Oracle PL/SQL 딱 이만큼.. [개념+실전]
안녕하세요! 수업 정말 잘듣고 있습니다!! 공부한거를 블로그에 작성 하려하는데 예제 같은 것을 출처를 밝혀 포스팅 해도될까요??
[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
SAS만 다뤘었고 SQL + Python이 대세인 가 싶었는데 어느 순간 대시보드 구축능력도 요구하네요 ㅋㅋㅋㅋ tableau 강의가 있으실지요.. 뭐부터 손을 대야 할지 .. 고민입니다.
데이터 분석 SQL Fundamentals
이왕이면 강사님께서 올리신 강좌를 구매해 이어서 학습을 해보려 합니다. 로드맵이 있다면, 보고 구매를 하려고 했는데 올려져 있는 강의 수는 많은데 머신러닝 관련 로드맵이 없더라고요 파이썬 머신러닝 완벽 가이드, 딥러닝 컴퓨터 비전 완벽 가이드 딥러닝 CNN 완벽 가이드 캐글 advanced 머신러닝 실전 박치기 이 강의들을 기본부터 학습하려 하는데요 오래된 강좌가 개정되어 다른 이름으로 만들어져 있어서 내용이 겹치는게 있는지 아니면 모두 수강하는게 맞는지 어떤 순서로 학습하면 되는지 알고 싶습니다.
[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
안녕하세요. 강의를 보면서 열심히 공부하고있습니다. 다름이 아니라 이번에 SQLD 자격증 시험을 신청했습니다. 해당 강의 로드맵을 다 듣고 노랭이 책을 풀려고하는데, 해당 강의 로드맵을 전체적으로 들으면 될까요?
데이터 분석 SQL Fundamentals
강사님 안녕하세요, 조인실습2에서 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여 예시가 조금 헷갈립니다. With 문이 서브쿼리 역할을 하는걸로 이해하고 있는데 해당 예시에서 왜 with문이 왜 필요한지, with문 또는 서브쿼리 사용하지 않고 쿼리를 진행시키는 방법이 있는지 궁금합니다ㅠ
다양한 사례로 익히는 SQL 데이터 분석
선생님.. 나래비는 일본어 입니다. 어감이 예뻐서 옛 우리말인줄 알고 찾아봤는데 '줄을 세우다'라는 일본어 '나라비'가 어원이라고 하네요
오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
안녕하세요 선생님. 문의드리고 싶은 내용이 있는데 글을 올릴 곳이 마땅치 않아 여기에 문의드립니다. 저는 현재 DBA 로 근무 중인데 SQL 작성 능력을 키우고 싶은데 혹시 선생님의 '데이터 분석 SQL Fundamentals' 강의가 DBA 업무 쿼리 작성에 도움이 될 수 있는 강의일까요? 일을 해보니 join, grouping 이 쉬운것 같으면서도 다양한 쿼리 작성 시에 자유자재로 안써지는 편이라 아직 공부가 덜 된것 같아서요. 일/주/월 사이즈 구하는 쿼리나 기타 여러 조건이 결합된 오브젝트 조회 쿼리를 주로 작성할 필요가 있고, 앞으로 튜닝 업무를 위한 튜닝 공부를 할 때도 기본 이상의 SQL 작성 능력이 필요하다고 판단되서 문의드립니다. 그리고 선생님의 ORACLE 아키텍쳐 강의는 출퇴근 간에 잘 듣고 있는데 혹시 SQL 튜닝 강의는 하실 예정이 있으실까요? 감사합니다.
자바 ORM 표준 JPA 프로그래밍 - 기본편
https://xively.tistory.com/43
데이터 분석 SQL Fundamentals
datagrip에서 복구 하려고 하면 postgre 관련 cli 가 필요합니다. 아래와 같이 우선 실행 $ brew install libpq $ echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc $ source ~/.zshrc $ psql --version psql (PostgreSQL) 15.2 Path to pg_restore 에서 CMD+SHIFT+G 눌러서 brew로 설치한 디렉토리로 이동 이후 복구 하면 됩니다
갖고노는 MySQL 데이터베이스 by 얄코
sakila db 조회할 때마다 위처럼 튕겨서 찾아보니 MySQL workbench를 8.0.31버전으로 받아야한다고 하네요( 참고 ) 다운로드 링크: https://downloads.mysql.com/archives/workbench/
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요. 다름 아니라 Spring Boot가 3.XX 버전으로 업데이트가 되면서, 해당 버전을 사용하시는 분들은 1.3.176버전으로 H2 이용 시 404에러가 발생합니다. 해당 에러를 해결하려면 최신 버전으로 H2를 사용하여야 하는데요. 최신 버전으로 H2를 사용하면 1.3.176 이하 버전처럼 db가 자동 생성 되지 않습니다. 그래서 해결 방법을 찾았는데요. 이 방법은 제가 어떻게 어떻게 하다 보니 발견한 방법이라서 옳다고 할 수는 없겠지만, H2를 테스트용으로만 사용하기 때문에 띄우기만 하면 되므로 문제 없을 것 같아 공유드립니다. 우선 pom.xml에서 h2 dependency를 추가하였다면, 아래 이미지처럼 왼쪽 프로젝트 창의 External Libraries 리스트에서 h2를 찾을 수 있습니다. 해당 h2 jar파일을 우클릭하면 탭이 뜨는데 Open Library Settings(F4)를 선택하면 h2 jar 파일의 위치를 확인할 수 있습니다. 그럼 해당 위치로 가셔서 jar파일을 더블 클릭하여 실행시키면 브라우저에서 H2 콘솔이 실행됩니다. (h2 jar 파일 우클릭 시 탭에서 Open in > Directory Path(Ctrl + Alt + F12)를 선택하면 Show Explorer탭이 뜨고, jar 파일 선택하면 폴더로 바로 이동 됩니다) 이 때 우측 하단의 트레이를 확인해보시면 H2 Database Engine이 실행된 것도 확인할 수 있습니다. 이제 브라우저의 H2 콘솔에서 Generic H2 (Embedded) 를 선택하시고 강의 내용대로 아래 이미지처럼 작성해주세요. 연결 시험(Test Connection)을 눌러보면 아래 이미지처럼 db가 없다고 나올 것입니다. 그렇지만 걱정 마시고 이 상태에서 연결을 눌러보세요. db가 생성된 화면을 만날 수 있습니다. 이제 db가 생성이 된 것입니다. 그렇기 때문에 뒤로 가기를 눌러 다시 로그인 화면이 뜬 후에 연결 시험(Test Connection)을 눌러보면 아까와는 다르게 Test Successful이라는 성공 메세지를 만날 수 있습니다. (그러나 이것은 브라우저의 H2 콘솔 URL의 포트를 보시면 아시겠지만, 저희 프로젝트에서 db가 만들어진 것이 아닙니다. 이에 대해서는 아래를 읽어주세요) 제가 H2 경험이 별로 없어서 해당 방식이 Embedded, In memory, Server 모드 3가지 중 어떤 방식인지 잘 모르지만 서버 방식으로 추측됩니다. 서버 방식은 H2를 따로 외부에서 띄워 놓고 접근해서 사용하는 것을 말하는 것 같은데요. 그렇기 때문에 저희가 만들어 놓은 프로젝트 URL인 localhost :{랜덤포트}/h2-console 에서 H2 사용 시 Embedded로 선택하여 Embedded 모드로 실행하면 연결 오류가 그대로 발생합니다. 그래서 강의와는 다르게 아래 이미지처럼 Server를 선택하여 외부(여기서는 프로젝트 외부에서 H2를 따로 동작시켜 db를 만들어준 것을 말함)의 H2에 접근하도록 연결해야 합니다. 연결 방법은 아래와 같이 URL을 적어주면 됩니다. Saved Settings와 JDBC URL 입력 항목을 유의해주세요. 이렇게 설정해준 후, Test Connection 버튼을 눌러보면 연결 테스트가 성공한 것을 확인할 수 있습니다. 마찬가지로 연결 버튼을 클릭해보면 연결도 잘 됩니다. 이제 이 상태에서 강의를 이어서 진행하면 문제 없을 것입니다. ※ 추가적으로, 외부에서 서버를 켜놓고 접속하는 것이기 때문에 오른쪽 트레이의 H2 Database Engine을 우클릭하여 종료하면 프로젝트의 H2 콘솔에서 연결이 불가합니다. 그러니 프로젝트 작업 시에는 트레이를 종료하지 않도록 유의해주세요. ※ 그리고, H2 Engine을 따로 받아서 서버 모드로 사용하면 DB 상태가 유지되지만, 이 방법은 프로젝트의 h2 jar 파일을 통해 진행하다보니 DB 상태가 유지되는지 알 수 없습니다. 오른쪽 트레이에서 H2를 재실행시키면 다시 DB를 만들어야 하는 것 같더라고요. 참고 부탁드려요~ [추가] Users Microservice - JPA①, ② 강의에서 H2 DB에 연결해 DB를 연결해주는데요. 위의 과정은 Embedded가 아닌 Server 로 처리하기 때문에 설정이 다릅니다. application.yml 파일에서 아래와 같이 설정해주세요. 유의하실 부분은 spring.datasource.url 부분과 spring.jpa.generate-ddl 부분입니다. url 만으로는 처리가 안되길래 jpa에서 db 생성하도록 generate-ddl을 true로 설정하였습니다. spring: application: name: user-service h2: console: enabled: true settings: web-allow-others: true path: /h2-console datasource: driver-class-name: org.h2.Driver url: jdbc:h2:tcp://localhost/mem:testdb username: sa jpa: generate-ddl: true
호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
H2 데이터베이스 2버전부터 User가 예약어가 된 것 같습니다. User로 바로 테이블 생성이 안 되시는 분들은 클래스 이름을 User가 아닌 다른 것으로 하시거나 @Table(name = "Users") 이런 식으로 테이블명을 바꾸시면 잘 됩니다.
SELECT ALL FROM SQL
강의로 사용된 사이트 에서 추가 학습해보면 좋을 문제로 풀어보세요! 답은 댓글로 적어두도록 하겠습니다.
실전! Querydsl
안녕하세요 jpa 첫 강의부터 궁금했던건데, h2를 테스트용 db(로컬)에서 주로 진행하는데, 만약 mysql을 로컬에서 테스트용 db로 사용했을 때와 비교해서 장단점이 궁금합니다!