일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- aiapi
- 클라우드
- Github
- 웹소켓연결끊김
- class
- 웹소켓연결
- javascript
- 클래스
- git
- 버킷생성
- iam사용자
- Express
- 패키지설치에러
- Database
- openaiapi
- db
- java
- ChatGPT
- chatGPTAPI
- gitlab
- nodejs
- 노드버전
- 자바
- 웹소켓재시작
- GPT3.5
- nvmrc
- gpt3.5turbo
- 호스팅영역
- aws
- gptapi
- Today
- Total
목록Mysql (7)
IT's Jenna
게시글 혹은 댓글을 작성하는 app을 개발할 때 Mysql 데이터 베이스에 다음과 같은 이모티콘이 들어가야 하는 경우가 있습니다. ❤️🤭😆🙂 이때 Mysql DB에 이모티콘을 insert 하게 되면 제대로 입력되지 않고 물음표(????)로 표시가 됩니다. Why? 이모티콘은 utf8로 인코딩될때 4byte 글자로 변환되는데 mysql은 utf8 문자셋을 3byte까지만 지원하기에 생기는 문제입니다. Solution ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 위와 같이 쿼리문을 실행시켜 table의 caracter set과 collate를 utf8mb4로 변경시켜 줍니다. 하지만 제가 시도했을때 해당 쿼리문이 제..
Mysql에서 주기적으로 DB에 어떤 작업을 해주어야 할 때가 있다. 예를 들어 지속적으로 쌓이는 temporary 데이터가 있는데 해당 테이블을 자주 비워줌으로써 용량 차지가 되지 않게끔 하고자 한다. 이때 개발자가 매번 직접 테이블을 비울 필요 없이 DB 자체에 어떤 이벤트를 걸어주고 해당 이벤트가 주기적으로 반복되게끔 할 수 있다. 그것이 이벤트 스케쥴러다. 1. 기본 설정 우선 mysql 자체적으로 이벤트 스케쥴러 사용이 가능하게끔 설정되어 있는지 확인한다. SHOW VARIABLES LIKE 'event%'; 혹시 Value가 OFF가 되어 있으면 아래 명령어를 통해 설정을 ON으로 바꿔주어야 이벤트 스케쥴러가 동작한다. SET GLOBAL event_scheduler = ON; 2. 이벤트 스..
데이터의 개수를 특정해서 확인하고 싶을 때 LIMIT을 사용할 수 있다. 1. 숫자 하나로 LIMIT 하는 경우 SELECT * FROM table_name LIMIT 5 테이블에서 데이터를 5개만 출력하겠다는 의미이다. 실제 출력 화면은 다음과 같다. 2. 숫자 두 개로 LIMIT 하는 경우 SELECT * FROM table_name 5, 3 숫자를 두개 사용하면 첫 번째는 데이터 출력을 시작하는 위치, 두 번째는 표시할 데이터 개수이다. 여기서 주의할점은 LIMIT이 데이터를 카운트할 때 0부터 시작한다는 점이다. 따라서 위의 예제처럼 5, 3인 경우 6번째 데이터부터 3개 데이터를 출력한다. 해당 쿼리문은 웹앱에서 리스트를 나타낼 때 사용할 수 있다. 페이지를 나누어서 한 페이지에 n개의 데이터만..
이전 포스팅에서 GROUP BY 절을 어떻게 활용하는지에 대해 설명했었다. 이번 포스팅에선 GROUP BY와 함께 사용하기 좋은 group_concat에 대해 설명해보겠다. 데이터 처리를 할 때 특정 데이터들을 한 줄로 처리해서 확인해야 하는 순간이 있다. 이때 적용할 수 있는 구문이 바로 group_concat이다. 바로 예시를 들어보자. 아래는 채팅 기능을 구현하기위해 만들어둔 채팅방 별 유저를 정리해둔 chat_room_user 테이블이다. SELECT chat_room_idx, group_concat(user_idx) FROM umclass.chat_room_user GROUP BY chat_room_idx; 위 쿼리문을 돌리면 다음과 같이 결과가 나타난다. group_concat을 사용하면 GR..
Select문을 사용해서 테이블의 데이터들을 가져올 때 일반적으로는 테이블에 입력된 순서(인덱스 순서)대로 데이터를 가져온다. 하지만 db를 활용하다 보면 특정한 순서대로 데이터를 가져와야 하는 경우들이 생긴다. 이럴 때 사용하는 것이 ORDER BY이다. 기본구조 SELECT * FROM table_name ORDER BY column_name (ASC or DESC) ORDER BY 뒤에 정렬하고자 하는 컬럼명을 작성하고 해당 컬럼을 어떤 식으로 정렬하고 싶은지 추가한다. 오름차순 ASC(Ascending)이 기본 default 값이기 때문에 오름차순으로 정렬하고자 하는 경우 생략해도 된다. 내림차순 DESC(Descending)으로 정렬하고자 하는 경우 뒤에 DESC를 입력해준다. ALIAS SEL..
GROUP BY sql에서 그룹별로 개수를 알고 싶을 때 count함수와 함께 사용하는 것이 GROUP BY 이다. 설명보다 예시를 보면 명확이 이해가 될 것이기 때문에 바로 예시로 넘어가도록 하겠다. 다음과 같이 Type 별로 정리가 되어있는 group1 테이블을 하나 만들었다. 위의 그래프에서 Type 별 개수를 확인하고 싶은 경우 아래와 같이 COUNT함수와 함께 GROUP BY를 사용해서 type별로 묶어준다. 결과는 아래 그림과 같다. SELECT group1.type, COUNT(group1.name) AS cnt FROM group1 GROUP BY type; GROUP BY와 함께 사용할 수 있는 조건식이 2개가 있다. 하나는 이전에 포스팅에서 언급했던 WHERE이고, 다른 하나는 HAVI..