본문 바로가기
개발일기/DB

[MySql/CRUD/query] 최근 자주 사용하는 SELECT, 개수 SELECT, UPDATE, JOIN UPDATE 구문

by 프로그래머콩 2021. 12. 23.

SELECT

기본 범위 select

- 초과, 미만

SELECT * FROM price WHERE LOW_PRICE > 10000 and  LOW_PRICE < 100000000

 

select 페이징 개념

- 첫번째 페이지, 10개씩 보여주고싶다

SELECT * FROM paging limit 0, 10

 

 

중첩 조건 select

- or, and, order by 및 limit 

- or : 둘 중 하나 조건 만족하면 참

- and : 둘 다 만족하면 참

- order by : 해당 컬럼 기준으로 정렬

- limit : 1페이지 5개씩 보여주고싶다

SELECT * FROM g_basic_info WHERE 
((ADDR1 LIKE '부산%' AND ADDR2 LIKE '사상구%' AND ADDR3 LIKE '엄궁동%' ) or
(ADDR1 LIKE '부산%' AND ADDR2 LIKE '사상구%' AND ADDR3 LIKE '주례동%' )) AND 
(GAMJUNG_PRICE between 35000000 and 100000000)  
order by ADDR2 DESC 
limit 1, 5

 

count(개수) with 조건

SELECT count(*) FROM info WHERE `ID` LIKE '21%';

 

 

join select

- 다른 테이블에서 값을 참조, 비교 후 원하는 값만 보여주고자 할 때

select base_table.CODE, base_table.ID, base_table.STATUS
from base_table_name base_table
inner join join_table target on base_table.STATUS = target.STATUS_NAME
where base_table.STATUS = target.STATUS_NAME

 

select2

- B 테이블에 있는 특정 값이 몇 개인지 계산 후

- A 테이블 id와 맵핑 지어서 결과 보고 싶은 경우

SELECT COUNT( * ) AS numreg, info.ID
FROM info, list ggl
WHERE info.ID = ggl.ID
AND ggl.RESULT = '조건' group by ggl.ID

 

UPDATE

업데이트 기본

- 조건에 따라 값을 바꾸고자 할 때

update table_name base_table
set base_table.STATUS = '바꿀이름'
where  base_table.STATUS = '조건'

 

join update

- 다른 테이블에서 값을 참조하여 조건 비교 후 값을 넣고자 할 때

update base_table_name base_table
inner join join_table target on base_table.STATUS = target.STATUS_NAME
set base_table.STATUS_CD = target.STATUS_CODE
where  base_table.STATUS LIKE target.STATUS_NAME

 

join update2

- B 테이블에 있는 특정 값이 몇 개인지 계산 후

- A 테이블 특정 컬럼에 UPDATE 하고 싶은 경우

UPDATE INFO_TABLE A
INNER JOIN(SELECT ID, COUNT( * ) numreg FROM list ggl where ggl.WHERE_COLS = '조건' GROUP BY ID) as B
ON B.ID = A.ID
SET A.TARGET = B.numreg