1 / 28

3. 데이터 조작 기능

3. 데이터 조작 기능. SQL 질의어에서 지원하는 대표적인 데이터 조작 기능은 크게 기존의 데이터에 데이터를 삽입 (insert) 하고 , 테이블에서 원하는 데이터를 검색 (select) 하며 , 필요한 데이터를 삭제 (delete) 하거나 변경된 데이터 값을 갱신 (update) 하는 기능이다 . 3.1 데이터 검색 [select] - 명령어 : select - 구문형식.

Download Presentation

3. 데이터 조작 기능

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3. 데이터 조작 기능 SQL 질의어에서 지원하는 대표적인 데이터 조작 기능은 크게 기존의 데이터에 데이터를 삽입(insert)하고, 테이블에서 원하는 데이터를 검색(select)하며, 필요한 데이터를 삭제(delete)하거나 변경된 데이터 값을 갱신(update)하는 기능이다. • 3.1 데이터 검색[select] - 명령어 : select - 구문형식 select [distinct] 속성_리스트 [as 제목_리스트 ] from 릴레이션_리스트 [where 조건] [group by 속성_리스트 [having 조건] ] [order by 속성_리스트 [ asc | desc ] ] ;

  2. select 명령에서 이용가능한 명령어 요약 명 령 어 의 미 all 중복을 포함한 속성 결과 검색 (아무런 표시를 하지 않을 경우 기본 값으로 all을 지니게 된다. distinct 중복을 제거한 속성 결과 검색 as 검색결과의 제목을 지정하는 명령 where 조건을 지정할 수 있는 명령 group by 그룹별 검색 기능을 수행하는 명령 having 그룹별 검색 기능에 조건을 추가한 명령 order by 정렬 기능을 수행하는 명령 asc Order by 명령 사용 시에 오름차순 명령을 지정하는 것으로, ascending 의 약자이다. 만약 아무런 표시를 하지 않을 경우 기본 값으로 asc 값을 가지게 된다. desc Order by 명령 사용 시에 내림차순 명령을 지정하는 것으로, descending의 약자이다.

  3. 3.1.1 하나의 릴레이션에서의 검색 • 예제] 특정 필드 데이터 모두 검색 • 예제 데이터베이스의 “사원” 릴레이션에 “사원번호”, “이름”을 검색하라. • 답) select사원번호, 이름 • from사원 • 결 과 :

  4. 3.1.1 하나의 릴레이션에서의 검색 예제] 테이블의 모든 속성 데이터 검색 사원의 모든 정보를 검색하라.

  5. 3.1.1 하나의 릴레이션에서의 검색 • 예) 사원들의 주소를 중복 없이 검색하라 • Select Distinct 주소 • From 사원

  6. 3.1.2 조건을 지정한 검색 • 예제] 조건( where )절을 이용한 검색 • Where 명령문 다음에 조건절을 기술하여 검색한다. • 예) 부서 테이블에서 부서명이 총무부인 정보를 검색하라. • Select * • From 부서 • Where 부서명 = “총무부”

  7. 3.1.2 조건을 지정한 검색 • 예) 조건을 지정한 검색 • 사원 테이블에서 부서코드가 C01이고 호봉이 20 이상 사원의 사원번호와 • 이름을 검색하라. • Select 사원번호, 이름 • From 사원 • Where 부서코드 = “C01” AND 호봉 >= 20

  8. 3.1.3 집단 함수를 이용한 검색 • SQL 질의어를 이용하여 데이터 검색시에 자주 사용하는 계산 기능들 (예 : 개수, 계산, 합산, 평균, 최대 최소값 계산 등) 집단함수 또는 열 함수로 제공한다. 집단함수 요약 집단 함수 의 미 COUNT 값의 개수 SUM 값의 총합 AVG 평균값 MAX 최대값 MIN 최소값 # 집단함수는 select 문장에만 쓸 수 있다.

  9. 3.1.3 집단 함수를 이용한 검색 예) 주소가 서울인 사원들의 수는 몇 명인가 검색하라 Select Count(*) From 사원 Where 주소 = “서울” 예) 중복을 제거한 개수 세기 사원들은 몇 개의 도시에 사는지 검색하라 Select Count(distinct 주소) From 사원

  10. 3.1.6 문자열 연산식을 이용한 검색 (like) • SQL 질의어 작성 시에 문자열(string)을 포함한 조건식을 이용할 경우, like 명령어를 사용한다. SQL 문자열 연산자 구 분 연 산 자 %(percent) 0 개 이상의 문자(문자열)를 매칭시키는 연산자( 예, DOS 명령어의 * 와 동일한 의미 ). - (underscore) 한 개의 문자를 매칭시키는 연산자에 (예, DOS 명령의 ? 와 동일한 의미 ). \ (backslash) 특수 문자 (문자열 연산자) 를 일반 문자로 사용할 수 있도록 지정하는 연산자 예를 들어, 문자열 연산자인 %, _ , \ 를 일반문자로 사용하고자 할 때, \ 를 문자의 앞부분에 기압한다.

  11. 3.1.6 문자열 연산식을 이용한 검색 (like) 문자열 연산식 사용 예 구 분 연 산 자 “ 서울 % “ ‘서울’ 로 시작하는 문자열 (‘서울역’, ‘서울시민’, … ‘서울’ 도 포함 ) “% 시% ” ‘시’ 를 포함하는 문자열 (‘시’, ‘시간’, ‘서울시’, ‘서울시민’… ) “%0301” ‘0301’ 로 끝나는 문자열 (‘022340301’, … ‘0301’ 도 포함 ). “_ _ _ ” 3 개의 문자로 구성된 문자열 ( ‘Art’, ‘cat’, ‘man’, … ) “c _ _” 3개의 문자로 구성된 문자열인데 시작이 c 인것 ( ‘cat’, ‘can’, ‘chr’ … ) “96 \% %” ’96%’ 로 시작하는 문자열 “100\\%” ‘100\’로 시작하는 문자열

  12. 3.1.7 정렬 기능을 이용한 검색 (order by) • order by 명령을 이용하여 사용자가 지정한 기준으로 검색결과를 출력할 수 있다. - 오름차순 : order by 명령만 추가. - 내림차순 : desc 를 추가.

  13. 3.1.8 그룹별 검색 기능을 이용한 검색(group by) • SQL 명령중 group by 는 지정된 속성(열)의 값이 일치하는 값들을 모아서 그룹을 만드는 역할을 수행한다. • 예) 사원 테이블에서 사원들은 각 도시별로 몇 명 사는지 검색하라. • Select 주소, Count(*) AS [사원 수] • From 사원 • Group by 주소

  14. 3. 1. 9 그룹별 검색 기능에 조건을 추가한 검색(having) • SQL 질의어에서 그룹별 검색 기능을 이용하기 위하여 group by 명령을 이용할 때, 검색 조건을 추가하기 위해서는 having 절을 이용한다. 예) 사원 테이블에서 사원들은 각 도시별로 몇 명 사는지 검색하라. 단 2명 이상 사는 곳의 정보를 검색하라. Select 주소, Count(*) AS [사원 수] From 사원 Group by 주소 Having Count(*) >= 2

  15. 3. 1. 10 Null 값을 이용한 검색 • 아직 결정되지 않은 값(unknown value)을 의미하는 Null 값을 이용하여 SQL 질의어를 작성할 수 있으며, 이 때 사용하는 명령이 is [not] null 이다. 예) 사원 테이블에서 주소 정보가 등록되지 않은 사원의 모든 정보를 검색하라. Select * From 사원 Where 주소 is NULL

  16. 3. 1. 11 조인 연산을 이용한 검색 • 하나의 릴레이션 만으로는 정보를 검색할 수 없으나 두개의 릴레이션으로 원하는 정보를 찾을 수 있는 경우 두개의 릴레이션을 조인(JOIN)하는 과정을 거쳐 정보를 검색하게 된다.

  17. 3. 1. 12 한정된 열이름을 사용한 검색 • 두 개 이상의 릴레이션을 조인한 경우 공교롭게도 동일한 이름의 속성들이 서로 다른 릴레이션에 존재할 수 있다. 이러한 경우 동일한 이름의 속성이 어느 릴레이션에 속하는 것인지를 나타내기 위하여 한정자 표기법을 사용한다. ( 릴레이션명.속성명 ) • 예) 사원과 부서 테이블을 죠인하여 유승우 사원의 소속 부서명과 전화번호 • 정보를 검색하라. • Select 부서명, 전화 • From 사원,부서 • Where 사원.부서코드 = 부서.부서코드 And 이름 = “유승우”

  18. 3. 1. 13 릴레이션 별칭(correlation name)을 사용한 검색 • 동일한 이름의 속성들이 서로 다른 릴레이션에 존재하여 한정자 표기법을 사용할 경우, 릴레이션의 전체이름을 사용하지 않고 별칭(correlation name)을 정의하여 사용할 수 있다. 릴레이션의 별칭을 사용할 경우 from 절에서 목표 릴레이션 이름 뒤에 별칭을 정의한다.

  19. 3. 1. 14 부속질의(subquery)를 이용한 검색 • 부속질의(subquery)란 다른 SQL 명령(예, select, insert, delete, update등)의 where절에 내포된(nested) 질의를 일컫는 것으로, 부속 질의에는 select절과 from절이 꼭 포함되어야 한다. 이와 같은 부속 질의는 상위 질의보다 먼저 실행되어야 하기 때문에 괄호(())로 묶여야 한다. 부속질의 작성 시 이용되는 키워드

  20. 3. 1. 14 부속질의(subquery)를 이용한 검색 예) 박웅신 사원의 소속 부서명을 검색하라.

  21. 3. 2 데이터 삽입 • SQL 질의어에서 테이블에 데이터를 삽입하기 위해서 사용하는 명령어는 insert 이다. • insert • into테이블[(열_이름_리스트)] • values (열값_리스트); • 예) “부서” 테이블에 부서코드 C03, 부서명 생산부, 사무실 A603, 전화 1191 정보를 삽입하라. • Insert • Into 부서 • Values (“C04”, “생산부”, “A603”, “1191”)

  22. 3. 3 데이터 삭제(delete) • SQL 질의어에서 테이블의 데이터를 삭제하기 위해서 사용하는 명령어는 delete 이다. 구문형식은 다음과 같다. • delete • from테이블 • [where 조건];

  23. 3. 3 .1 전체 투플 삭제 • 예제] • 예제 데이터베이스의 “사원” 릴레이션에 포함된 모든 투플을 삭제하라. • delete • from “사원” 3. 3 .2 조건을 지정한 투플 삭제 • 예제] • 예제 데이터베이스의 “사원” 릴레이션에서 “사번”이 C0104인 투플을 삭제하라. • delete • From사원 • where사원번호 = “C0104”

  24. 3. 4 데이터 갱신 [update] • SQL 질의어에서 에 저장된 데이터의 내용을 갱신하기 위해서 사용하는 명령어는 update이며 구문형식은 아래와 같다. • update테이블 • set열_이름=산술식+ • [where조건];

  25. 3. 4 .1 전체 투플 변경 예) 사원 테이블의 모든 사원의 호봉을 1 올리게 수정하라. Update 사원 Set 호봉 = 호봉 + 1 3. 4 .2 조건을 지정한 투플 변경 예) 부서 테이블에서 부서코드 C01의 사무실을 B101, 전화를 2171로 변경하여라. Update 부서 Set 사무실 = “B601”, 전화 = “2171” Where 부서코드 = “C01”

  26. 4. 뷰 (View) • 뷰(view)란 create table명령으로 생성한 릴레이션(기본 테이블 : base table)으로부터 특정 조건에 맞는 내용들을 추출하여 생성한 가상의(virtual) 릴레이션(테이블)이다. 4.1 뷰의 생성 • SQL 질의어에서 뷰를 생성하기 위해서 사용하는 명령어는 create view이며 구문형식은 다음과 같다. • createview뷰_이름[(열_이름_리스트)] • as select문

  27. 4.1 뷰의 생성 • 인사부 예) 사원 테이블을 기본으로 부서코드가 C01인 사원의 사원번호, 이름 속성을 추출하여 인사부라는 이름의 뷰 테이블을 생성하는 SQL 명령어를 작성하라. Create View 인사부 as Select 사원번호, 이름 From 사원 Where 부서코드 = “C01” 인사부

  28. 4.2 뷰의 제거 • SQL 질의어에서 뷰를 제거하기 위해서 사용하는 명령어는 drop view 이며 구문 형식은 다음과 같다. • dropview뷰_이름

More Related