공부/전산|프로그래밍

[컴퓨터활용능력/액세스] SQL 구문 알아보기

matsuda 2017. 12. 25. 20:53
반응형

■ SELECT 

- 구문 : SELECT 필드명 FROM 테이블명 [WHERE 조건식][ORDER BY 정렬기준]; 

- 설명 : 검색하려는 필드명이 여러 개일 경우 필드명 사이를 콤마(,)로 구분한다. 

WHERE 다음에 조건을 지정한다. 정렬기준은 정렬의 기준이 되는 필드명을 쓰고, 오름차순은 ASC(또는 생략), 내림차순 DESC을 쓴다. 

- 예문 : 

(1) SELECT 이름, 전공 FROM 학생 ; / 학생 테이블에서 이름,전공 필드 검색 

(2) SELECT * FROM 학생 ; / 학생 테이블에서 모든 필드를 검색 

(3) SELECT 이름 FROM 학생 WHERE 전공 = '사무자동화'; / 학생 테이블에서 전공이 사무자동화인 레코드의 이름 필드 검색 

(4) SELECT * FROM 학생 WHERE 평점>=4 ORDER BY 이름 ASC; / 학생 테이블에서 평점이 4이상인 레코드를 이름 필드 기준으로 오름차순 검색 



■ INSERT

(1) 단일 레코드 추가 쿼리 

- 구문 : INSERT INTO 테이블명(필드명1, 필드명2, ...) VALUES(필드값1, 필드값2, ...) 

- 설명 : 소량의 레코드를 추가 

- 예문 : INSERT INTO 학생(이름, 전공, 수강코드) VALUES('이진수', '국문과', 'OA0001'); / 이름인 이진수, 전공은 국문과, 수강코드는 OA0001인 레코드를 학생테이블에 추가 


(2) 다중 레코드 추가 쿼리 

- 구문 : INSERT INTO 테이블명(필드명1, 필드명2, ...) SELECT문;

- 설명 : 한 테이블의 쿼리 실행 결과를 다른 테이블에 추가. 필드명을 지정하지 않으면 테이블의 모든 필드가 명시된것으로 간주한다.

- 예문 : INSERT INTO 장학생(이름, 전공, 평점) SELECT 이름, 전공, 평점 FROM 학생 WHERE 평점>=4.0; /학생 테이블에서 평점 4.0이상인 레코드의 이름, 전공, 평점 필드를 검색하여 장학생 테이블에 추가



■ UPDATE 

- 구문 : UPDATE 테이블명 SET 필드명 = 식1, 필드명2 = 식2, ... WHERE 조건; 

- 설명 : 하나 이상의 테이블에서 레코드 그룹을 전체적으로 변경 

- 예문 : UPDATE 장학생 SET 장학금 = 500000 WHERE 내역 = '우등'; / 장학생 테이블의 내역 필드의 내용이 '우등'인 레코드의 장학금을 500000으로 변경



■ DELETE 

- 구문 : DELETE 필드명 FROM 테이블명 WHERE 조건; 

- 설명 : 조건에 해당되는 레코드를 삭제 

- 예문 : DELETE FROM 학생 WHERE 전공= '전산과'; / 학생 테이블에서 전공이 전산과인 테이블을 삭제 



■ IN 연산자 

- 구문 : IN (값1, 값2, ...) 

- 설명 : 리스트상의 값에 포함된 레코드를 검색할 때 사용 

- 예문 : SELECT * FROM 학생 WHERE 학점 IN ('A', 'B', 'C'); / 학생 테이블에서 학점이 A, B, C인 레코드를 검색한다 



■ BETWEEN 연산자 

- 구문 : BETWEEN 값1 AND 값2 

- 설명 : 값1과 값2의 범위 내의 레코드를 검색할 때 사용. 

- 예문 : SELECT * FROM 학생 WHERE 평점 BETWEEN 3.0 ADN 4.5; /학생 테이블에서 평점이 3.0에서 4.5사이의 레코드를 검색


■ LIKE 연산자 

- 구문 : LIKE '질의문자' 

- 설명 : 지정한 문자열이 포함된 레코드를 검색핛 때 사용. 와일드 카드와 함께 사용한다. 

                 ★ 와일드 카드 : ?(한자리의 숫자와 문자) *(자릿수에 상관없는 숫자나 문자) #(한자리의 숫자) 

- 예문 :

(1) SELECT * FROM 학생 WHERE 이름 = '김*'; / 학생 테이블에서 이름이 '김'으로 시작되는 레코드를 검색 

(2) SELECT * FROM 학생 WHERE 수강코드= 'OA????'; / 학생 테이블에서 수강코드가 OA로 시작되는 6자인 레코드를 검색 


■ NOT 연산자 

- 구문 : NOT 다른 연산자 

- 설명 : 조건의 반대 논리 값을 포함하는레코드를 검색핛 때 사용 

- 예문 : SELECT 이름 FROM 학생 WHERE 학점 NOT IN('D', 'F'); / 학생 테이블에서 학점이 D나 F가 아닌 레코드의 이름 필드 검색


■ GROUP BY 

- 구문 : SELECT 필드명 FROM 테이블명 GROUP BY 필드이름; 

- 설명 : 지정한 필드에 동일한 값을 가는 레코드를 하나의 레코드로 결합한다. SQL 계산 함수를 사용하면 각 레코드에 대한 요약값이 계산된다. 

* 계산함수 : SUM, AVG, MAX, MIN, COUNT(사용법 예 : SUM(필드명)) 

- 예문 : SELECT 지점, SUM(판매량) FROM 판매현황 GROUP BY 지점; / 판매현황 테이블에서 지점 필드를 기준으로 그룹화하여 지점별 판매량 합계를 구함 


■ HAVING 

- 구문 : SELECT 필드명 FROM 테이블명 GROUP BY 필드명 HAVING 조건 

- 설명 : GROUP BY로 레코드를 그룹화한 레코드 중 조건에 맞는 레코드를 검색한다 

- 예문 

(1) SELECT 지점, SUM(판매량) FROM 판매현황 GROUP BY 지점 HAVING SUM(판매량)>=500; / 판매현황 테이블에서 지점 필드를 기준으로 그룹화하여 지점 합계 판매량이 500이상인 지점과 지점 판매량 합계를 구한다 

(2) SELECT 지점, AVG(판매량), COUNT(판매량) FROM 판매현황 GROUP BY 지점 HAVING [지점]='영등포점' / 판매현황 테이블에서 지점 필드를 기준으로 그룹화하여 지점이 영등포점인 그룹의 지점, 평균 판매량, 판매량의 개수를 구한다.

반응형