2019. 1. 17. 12:10ㆍSQL
#1 데이터 갱신 : UPDATE
<table's sample41>
*데이터 갱신하기 - UPDATE (셀 단위로 수정!)
UPDATE 테이블명 SET 열명 = 값 WHERE 조건식;
* UPDATE로 갱신 시 주의사항
UPDATE sample41 SET no = no + 1;
->현재의 no 값에 1을 더한 값으로 no 열을 갱신한다
-> no(갱신값) = no(기존값)+1;
① 2행 B열 날짜 갱신하기 -> 여기서 b ='~'는 대입 연산자로 사용된다.
② 복수열 갱신
UPDATE 테이블명 SET 열명1=값1, 열명2=값2, ... WHERE 조건식
③ SET구의 실행 방법
->no(갱신값) = no(기존값)+1;
cf ) MySQL - SET 구로 나열된 수식의 순서에 영향을 받는다. ex) UPDATE sample41 SET no=no+1, a=no;
Oracle - SET 구로 나열된 수식의 순서에 영향을 받지 않음
ex) UPDATE sample41 SET a=no, no=no+1;
④ 물리삭제와 논리삭제
- 물리삭제 : DELETE로 행 삭제
- 논리삭제 : 삭제플래그 열로 UPDATE해서 삭제한 것으로 가장
ex) 삭제하면 1로 갱신
UPDATE SET 삭제플래그=1 WHERE no=2;
SELECT FROM xxxx WHERE 삭제플래그 <> 1; 로 검색
>> 보통의 경우 논리삭제를 선호한다.
#2 집계 함수
>>집합(행단위 집합)을 계산하는 함수
COUNT([ALL|DISTINCT] 집합) - 행 개수 구하기. 모든 자료형 가능 SUM([ALL|DISTINCT] 집합) - 합계 구하기. 수치형만 가능. AVG([ALL|DISTINCT] 집합) - 평균 구하기. 수치형만 가능. MIN([ALL|DISTINCT] 집합) - 최소값 구하기. 모든 자료형 가능 MAX([ALL|DISTINCT] 집합) - 최대값 구하기. 모든 자료형 가능
<table's sample51>
① COUNT-> 행의 개수 >> COUNT(열의 이름)
② 집계함수는 집함 안에 NULL 값이 있을 경우 무시한다
③ DISTINCT 로 중복 제거하기
>>응용: 중복 제거 후 COUNT ( 형식에 유의 할것)
******이 형식으로는 사용 불가 : SELECT DISTINCT COUNT(name) FROM sample51; (X)
④ SUM(합계) , AVG(평균), MIN·MAX(최대,최소)
#3 그룹화 : GROUP BY
- 그룹화 - GROUP BY
SELECT * FROM 테이블명 GROUP BY 열1, 열2,
- GROUP BY 구와 집계함수를 조합
(GROUP BY 구를 지정하는 경우에는 집계함수와 함께 사용하지 않으면 별 의미가 없음)
- 내부처리 순서
WHERE 구 → GROUP BY 구 → HAVING 구 → SELECT 구 → ORDER BY 구
- GROUP BY 에서 지정할 열 이외의 열은
집계함수를 사용하지 않은 채 SELECT 구에서 지정할 수 없다!
- SELECT no, name, quantity FROM sample51 GROUP BY name; (X)
> name열은 GROUP BY에서 지정하므로 OK
> no, quantity는 지정할 수 없다.
★ HAVING 구로 조건 지정
SELECT name, COUNT(name) FROM sample51
WHERE COUNT(name)=1 GROUP BY name;
- WHERE 구에서는 집계함수를 사용할 수 없다!
>> sample51에서 name열을 그룹화 , 행의 개수가 1개인 행
집계함수를 사용하지 않은 채 SELECT 구에서 지정할 수 없다!
SELECT no, name, quantity FROM sample51 GROUP BY name; (X)
- name열은 GROUP BY에서 지정하므로 OK
- no, quantity는 지정할 수 없다. >>
* 집계한 결과 정렬하기
* 복수열의 그룹화
'SQL' 카테고리의 다른 글
2019.02.26 SQL구문 예제-SELECT(1) (0) | 2019.02.26 |
---|---|
2019.01.21 CREATE,DROP,ALTER (0) | 2019.01.21 |
2019.01.17 서브쿼리,IN (0) | 2019.01.17 |
2019.01.16 SQL 연습문제#1 (0) | 2019.01.16 |
2019.01.15 SQL의 기본설정, SELECT,ORDER (0) | 2019.01.15 |