SQL

Upsert query?- 중복되는 값이 있다면 UPDATE, 없다면 INSERT- 수정 로직 짤때 바뀐 값만 UPDATE하고, 수정하면서 새로운 값을 넣어줘야할 때는 INSERT를 해준다.- 리프레시 토큰을 예시로 들어보면 사용자의 정보가 이미 있고 refresh_token 값만 바꿔주고 싶을때 Upsert를 사용하면 된다.INSERT INTO refresh_token (user_id, refresh_token)VALUES (#{userId}, #{refreshToken}) ON DUPLICATE KEYUPDATE refresh_token = #{refreshToken}
Mysql 비밀번호 관련 정책 에러 초기 비밀번호를 찾고, 새로 설정해주는 과정에서 발생된 에러다. 이유는 내가 바꾸려는 비밀번호가 정책에 맞지 않았기 때문(길이, 대문자, 소문자 포함 등) 정책 기준을 낮춰 진행하려 했으나 초기 비밀번호 설정 후에 진행하라고 해서 초기 비밀번호를 새로운 비밀번호로 설정해준 후 정책 기준을 내려 내가 원하는 비밀번호로 바꾸는 과정을 거쳤다. # 초기 비번 설정 ALTER USER 'root'@'localhost' IDENTIFIED BY '초기에 설정된 비밀번호'; # 정책 확인 SHOW VARIABLES LIKE 'validate_password%'; # 정책 변경 SET GLOBAL validate_password.policy=LOW; # 비번 다시 변경 ALTER ..
초기 비밀번호 찾기 mysql 설치 후 초기 비밀번호는 랜덤으로 지정된다. sudo grep 'temporary password' /var/log/mysqld.log 나는 두번째꺼로 했을때 접속이 됐다. 비밀번호 변경 Mysql 접속 후 ALTER문 활용해서 변경해주면 된다. alter user 'root'@'localhost' identified by '새로운 비밀번호'
SQL - JOIN 정리 예시 테이블 Table: employees +--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+--..
🛟 Subquery - 쿼리 안의 쿼리 - 서브쿼리를 사용하지 않아도 원하는 데이터를 추출할 순 있지만, 더 편하고 간단하게 원하는 데이터를 추출해준다. 1. 비교하기 inner join VS subquery - 카카오페이 결제 유저들의 정보 보기 1) inner join select u.user_id, u.name, u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method = 'kakaopay'; 2) Subquery ① 카카오페이로 결제한 user_id 모두 구하기 select user_id from orders where payment_method = 'kakaopay' ② user_id가 상단에 ..
🪢 Join - 여러 정보를 한 눈에 보고 싶을 때 사용한다. - 두 테이블의 공통된 정보(key값) 기준으로 테이블을 연결해서 한 테이블처럼 보는 것 - point_user 테이블과 users 테이블을 연결해줘. -> 공통된 키값은 'user_id' select * from point_users left join users on point_users.user_id = users.user_id 1) Left Join - 왼쪽 테이블을 중심으로 오른쪽의 테이블을 연결한다. - 어떤 데이터는 모든 필드가 채워져있지만, 어떤 데이터는 비어있는 필드가 있다. - ex) 회원이지만 수강 등록 또는 시작하지 않아 포인트가 null 값일때 https://www.w3schools.com/sql/sql_join_left..
🕸️ Group by - 원하는 유형별로 데이터를 그룹화 해주고 싶을 때 사용한다. - 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것. - ~별 🙋‍♀️ Group by가 실행되는 순서 from -> group by -> select 1) from orders: orders 테이블의 데이터 전체를 가져온다. 2) group by payment_method: 테이블 데이터에서 같은 payment_method를 갖는 데이터 합쳐준다. 3) select payment_method: payment_method 별로 그룹화 된 그룹들을 출력해준다. - 결제수단별로 그룹화 해서 보여줘. select payment_method from orders group by payment_method; ..
데이터베이스? - 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통 - 원하는 대로 데이터를 저장하고 사용하기 위해 다양한 기능들이 제공 된다. 더보기 1) Create - 데이터의 생성 2) Read - 저장된 데이터를 읽어오는 것 3) Update - 데이터를 변경 4) Delete - 삭제 SQL? - Structured Query Language - 데이터베이스에 요청(Query)을 보내 원하는 데이터를 가져오는 것을 도와주는 언어 데이터를 가져오는 명령어를 작성하는 것 = 'SQL 쿼리를 작성한다.' 1. Select 쿼리문 - 데이터를 선택해서 가져오겠다는 명령을 데이터베이스에게 내리는 것 - 1️⃣ 어떤 테이블에서 2️⃣ 어떤 필드의 데이터를 가져올지로 구성된다. 🙋‍♀️ 테이블? 필드?..
🗄️ 데이터베이스 - 데이터를 저장하고 여러 사람들이 관리하는 데이터의 모음 - 잘 보관하는 것도 맞지만, 잘 찾으려고 존재하는 것 - 정보를 쉽게 찾고 업데이트 할 수 있고, 많은 양의 정보를 효율적으로 관리할 수 있다. 1) 관계형 데이터베이스 - SQL - 정리된 정보를 다룰 때 사용 - ex) Oracle 2) 비관계형 데이터베이스 - NoSQL - 복잡하거나 유연한 정보를 다룰 때 사용 - ex) Firestore Database 🔥 Firestore Database (firebase) - 구글의 클라우드 기반 NoSQL 데이터베이스 - 데이터베이스 서비스로 데이터를 저장, 관리할 수 있는 기능을 제공한다. 1) Collection - 서랍장의 그룹, 여러 개의 문서들이 특정한 주제 또는 유형으..
sooyoung.c.dev
'SQL' 태그의 글 목록