ddodoi 님의 블로그
8주차-파트02: SAFE MODE 해제, count(), AS, 서브쿼리, EXISTS 본문
CHAPTER 1. SAFE MODE 해제
테이블에 primary 키가 없을 경우 테이블에서 직접적으로 값을 입력하지 못하고 읽기모드로만 보는것이 가능하다(safe mode). safe mode를 해제해 쓰기모드도 되도록 해보자(필자는 안돼서 그냥 mysql에서 일일히 INSERT문을 입력해줬다).
https://velog.io/@suran-kim/MySQL-safe-mode%ED%95%B4%EC%A0%9C
CHAPTER 2. count(), AS, 서브쿼리(subquery)
✔️ count() : 행 개수를 세준다
테이블의 행의 개수를 세고 싶다면 count()를 이용해보자.
SELECT count(*) FROM 테이블명
이번에는 특정한 조건을 만족한 행들의 개수만 세어보자.
SELECT count(*) FROM 테이블명 WHERE 조건문;
✔️서브쿼리(sub query) : 쿼리 안 쿼리
<서브쿼리가 사용 가능한 곳>
- SELECT
- FROM
- WHERE
- HAVING
- ORDER BY
- INSERT문의 VALUES
- UPDATE문의 SET
SELECT에서의 서브쿼리
//도서테이블 전체 조회 + 컬럼 1개 추가하기
SELECT *,
값 AS 새로 추가할 칼럼명(별칭)
FROM 테이블명;
SELECT *,
(각 행마다 likes 테이블에 liked_book_id로 가지고 있는 행 수) AS likes
FROM books;
SELECT *,
(SELECT count(*) FROM likes WHERE books.id = liked_book_id) AS likes
FROM books;
✔️AS: 컬럼 별칭
CHAPTER 3. EXISTS
✔️EXISTS: 값이 존재하는지 확인 후 존재하면 TRUE, 존재하지 않으면 FALSE를 반환한다.
다음은 해당 유저가 특정 제품에 좋아요를 눌렀는지 확인하기 위한 것이다. 만약 유저가 특정 제품에 좋아요를 눌렀다면 likes테이블안에 조건을 만족시키는 행이 있을 것이므로 1을 반환하고 그렇지 않으면 0 이 반환된다.
SELECT EXISTS(SELECT * FROM likes WHERE user_id = 2 AND liked_book_id = 3);
'웹풀스택 일일정리' 카테고리의 다른 글
8주차-파트05: MySQL error: error code 1366, LAST_INSERT_ID(), MAX(), insertId (1) | 2024.10.14 |
---|---|
8주차-파트04: MySQL 에러: errno: 121, Foreign Key 제약조건, IN, SQL로 배열 값 받기 (0) | 2024.10.13 |
8주차-파트01: LEFT JOIN, MYSQL에서 시간 구하기, 페이징(Paging) (0) | 2024.10.10 |
7주차-파트05: Lorem Picsum, URL이 같을 경우 (0) | 2024.10.05 |
7주차-파트03:http-status-codes 모듈, 컨트롤러, 해싱,비밀번호 암호화(crypto) (0) | 2024.10.04 |