728x90
반응형

select 5

[MySQL] 여러 테이블 합쳐서 SELECT하기 - JOIN ~ ON ~

데이터베이스에서 게시글 정보를 꺼낼 때 '게시글'이라는 한 테이블이 게시글에 대한 모든 정보를 갖고있지 않는다. 예를 들면 우리가 한 게시글을 보면 게시글의 제목, 내용 뿐만 아니라 게시글을 쓴 사람, 게시글의 첨부파일, 게시글에 대한 좋아요수 등 완전 직접적이진 않은(?) 정보 또한 보여주고 있다. 이 게시글의 모든 정보를 데이터베이스에서 꺼낼 때 [게시글] 테이블엔 게시글의 '제목', '내용' 을 갖고있고 [유저] 테이블에 게시글을 쓴 '사람 정보' [게시글 좋아요] 테이블에 게시글과 좋아요 한 사람의 매칭되는 정보가 들어있다. 그리고 클라이언트가 게시글 정보 조회를 요청하면 서버는 이 세 테이블의 내용을 합쳐서 응답 데이터로 보내줘야 한다. 여기서 두가지 방법이 있다 1) 데이터베이스에서 세 테이블..

IT/SQLD 2023.11.01

[ANSI SQL] 7. WHERE 절의 조합(AND / OR / NOT / IN)

WHERE 절의 조합 예제 데이터 : User_Table SELECT * FROM User_Table ; --------------------------------------------------------------------------------------------------------------------------- AND 연산자의 사용 입력 - SELECT user_id , user_mobile , user_gender , user_amount , user_addr FROM User_Table WHERE user_gender = 'male' AND user_amount >= 5500 ; 풀이 : User_Table 에서 성별(user_gender)이 남자이고 보유금액(user_amount)가 ..

IT/SQLD 2023.10.22

[SQL] where절: 부정연산자( 같지 않다 !=, ^=, <>, NOT)

같지 않음을 표현하는 연산자 != ^= NOT 컬럼명 = ~보다 크지 않다. NOT 컬럼명 > A와 B 값 사이에 있지 않다. NOT BETWEEN A AND B list 값과 일치하지 않는다. NOT IN (list) NULL값을 갖지 않는다. IS NOT NULL 예시 -- 소속이 K02 인 선수 중에서 포지션이 MF가 아니고, 175 이상 185 이하가 아닌 선수를 찾아라 -- 이렇게 해도 되고 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키 FROM PLAYER WHERE TEAM_ID = 'K02' AND NOT POSITION = 'MF' AND NOT HEIGHT BETWEEN 175 AND 185 ; -- 이렇게 해도 된다. SE..

IT/SQLD 2023.10.22

[MySQL] SELECT문 WHERE절 정규식 검색 (REGEXP)

(1) OR를 쓴 검색문을 정규식 검색문으로 바꾸기 SELECT * FROM test_table WHERE name LIKE '돼지' OR name LIKE '꿀꿀이'; SELECT * FROM test_table WHERE name REGEXP '^(돼지|꿀꿀이)$'; SELECT * FROM test_table WHERE name LIKE '%돼지%' OR name LIKE '%꿀꿀이%'; SELECT * FROM test_table WHERE name REGEXP '돼지|꿀꿀이'; OR로 이어 붙인 조건문 2개(또는 여러 개)를 REGEXP로 정규 표현식을 쓴 조건문 1개로 바꾸어 나타낼 수 있다. (2) 영문 로마자 1자 또는 2자로 시작하는 값 찾기 SELECT * FROM test_table ..

IT/SQLD 2022.12.30
728x90
반응형