본문 바로가기

공부30

3.24 SQL 추가 공부 1. Max를 조건값으로 쓸 땐 where에 서브쿼리를 이용하자 - GROUP BY에서 묶은 그룹에서 최댓값을 가진 row를 구할 때 HAVING column = MAX(column)은 안됨 -대신 WHERE name = (SELECT name FROM table GROUP BY column1 HAVING column = MAX(column))은 작동 - 이때 서브쿼리 자체로만 쿼리를 돌릴 경우 오류가 뜨지만 서브쿼리로 적용했을땐 잘 search한다 . 이유는 모름 2. 대여기간의 경우 DATEDIFF 함수에 +1을 하자 - startdate 당일도 기간으로 치는 경우에는 DATEDIFF 함수에 1을 추가하도록 하자. 3. LIKE의 경우엔 WHERE 절에만 쓰는게 아닌 IF 절도 가능하다 - IF( C.. 2023. 3. 24.
3-21. SQL 추가 지식 공부 1. Group은 직접 만든 column도 묶기가 가능하다. -EX: SELECT (price DIV / 10000) * 10000 as price_list , COUNT(*) as 'COUNT' FROM product group by price_list order by count 2. CONCAT 절 -목적 : string 여러개를 한데 잇는다. -EX: CONCAT ( LEFT(price, 1) , '0000') as price_list 3.Where 절의 10000 < a < 20000는 불가하다. And로 나눠주거나 Column BETWEEN A and B를 사용하자. 4.Group by는 두 컬럼 묶기도 가능하다 (두 컬럼의 값이 같은 것들을 묶는다.) 5. 산술 연산자 - 목적 : 왼쪽의 피연.. 2023. 3. 21.
4. DATE 관련 구문 & round Date 정의: year-month-day hour-minute-second 형식으로 되어있는 데이터 구조. 관련 함수 : 1. Date_format: -정의: date 데이터를 자신이 원하는 형식으로 바꿀 수 있다. -형식: DATE_FORMAT( ‘date’ ‘%y-%m-%d’ ) => 2023-03-20 -%y는 23 , %Y는 2023으로 나오니 맞추어 사용 가능 -LEFT(DATE , 10) 이런 형식으로 데이터를 잘라서 사용하는식으로 대용가능 - EX: SELECT book_id,DATE_FORMAT(published_date ,'20%y(%Y)-%m-%d') FROM BOOK WHERE published_date REGEXP '^2021' AND category = '인문' ORDER BY .. 2023. 3. 20.
3. JOIN과 REGEXP(정규 표현식) JOIN 정의 : 서로 다른 Table에서 같은 데이터를 보여주려 할때 쓰인다. - 그렇기 때문에 서로 Foreign Key 관계일때 자주 쓰인다. 종류: inner join ,outer join,cross join INNER JOIN 정의 : 서로 다른 두 테이블 중 조건이 같은 (교집합) row의 값만 불러 Select한다. EX: SELECT table1.column, table2.column FROM table1 JOIN table2 On table1.id = table2.id; ( table간 column이름이 같으니 USING(id)도 가능하다. ) OUTER JOIN 정의 : 서로 다른 두 테이블 중 조건이 같은 집합의 값(INNER JOIN)뿐만 아니라 조건이 같지 않은 테이블의 값도 NU.. 2023. 3. 17.