시간이 너무너무 빠르다. 벌써 일주일의 마지막이다. 이 시간들을 의미없이 흘려 보내지 않기 위해 더 열심히 해야겠다고 생각하게 되는 금요일이다.
문자열 두개를 합치는 함수.
CONCAT('안','녕');
=> 안녕
DATE_FORNAT(NOW(),'%Y년 %m월 %d일 %H:%i:%s');
년도와 시간만 대문자.
시간은 24시간으로 표현된다.
집계함수를 쓰면 결과가 함축되어 출력된다.
해결방법 : 서브쿼리로 작성!
단, 서브쿼리를 굉장히 처리 시간이 길어질 수 있다. 따라서 꼭 필요할 때만 작성 권장
종류 : sum, avg, count...
count는 null값을 제외하고 카운트한다.
GROUP BY도 결과값을 함축한다.
그룹을 새로 만들어지고, 그룹으로 묶어진 것만 출력해야한다.
SELECT job FROM emp GROUP BY job;
집계함수를 같이 쓰이는 것이 보편적.
중복 x
순서 : FROM, WHERE, GROUP BY, HAVING 순서대로 코드가 동작된다.
여러개 테이블을 연결해서 하나의 테이블처럼 사용하기 위해 쓰임.
select *
from 테이블1
join 테이블2
on 테이블1.no = 테이블2.no
where 테이블1.no = 22;
join 테이블 이름 on 연결 맞출 코드..
SELECT *
FROM 사과 a
left JOIN 바나나 b
ON a.no = b.no;
-> 이렇게 있을때,
사과 테이블에 null 값이 있어도 사과 테이블은 무조건 모두 출력된다.
쿼리를 업데이트!
형태
UPDATE 테이블명 SET 제품명 = '허니버터칩' WHERE 제품명 = '스윙칩';
우리가 흔히 쓰는 제어 명령문은
rollback
commit
이다.
commit을 해야 바꾼 내용이 저장이 되고, rollback을 하면 바꾸기 전의 내용으로 돌아간다.
HeidiSQL은 자동 commit이 되므로 보통은 commit은 거의 사용하지 않는다.
cf) 자동 커밋 해제 : set @@autocommit = 0;
sql을 급히 사용해야 하는데 어떤 것을 해야할지 모르겠다면?
조회 : select from where
입력 : insert into values (순서 차례대로)
수정 : update set
삭제 : delete from
select *-----------------------5
from 테이블1 ------------------1
join 테이블2 -----------------2
on 테이블1.no = 테이블2.no ---3
where 테이블1.no = 22;------4
where는 가장 마지막! 조건.
select 연산 순위는 마지막.
단, order by와 limit는 연산 순위는 최종 마지막이다.
가장 중요한 건 연습문제로 많이 풀어보는 것 같다. 단시간에 그래도 빨리 할 수 있는 언어인 것 같다.