Database Relational DML SQL.

Slides:



Advertisements
Similar presentations
널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
Advertisements

Chapter06 폼 HTML5 Programming.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
Nested Queries CSED421: Database Systems Labs.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
Prepared Statements CSED421: Database Systems Labs.
16 분석함수 분석 함수의 개념 분석 함수의 종류 계층적 질의문.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
8장 서브 쿼리.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
11장. 데이터베이스 서버 구축과 운영.
요약 정보 만들기.
기본적인 SELECT문 작성.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
09 서브쿼리(Subquery) 서브쿼리의 개념 서브쿼리의 종류 데이터베이스 실무에서 서브쿼리 사용시 주의 사항.
14 뷰(View) 뷰의 개념 뷰 관리.
Heesang kim PL/SQL 3 Heesang kim.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
21장. 데이터베이스 설계지침 테이블과 열에 대한 지침 중복 데이터의 포함 열에 대한 자료형의 선택
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
SQL.
OpenGeo Suite 의 한국사용자를 위한 설정 및 활용
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
KIM HEESANG PL/SQL 2 KIM HEESANG
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
데이터 수정 데이터 수정 명령문을 이해한다. 데이터 삽입, 갱신 및 삭제 명령문을 이해한다.
Sql & DB
어서와 C언어는 처음이지 제14장.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
JDBC Lecture 004 By MINIO.
Visual Basic .NET MDI 만들기.
View(뷰) 1 가상 테이블(Virtual Relation)
Database 중고차 매매 DB 비즈니스IT 윤동섭.
9장. SELECT명령문 : WHERE 절 개요, 2. 관계연산자를 사용하는 조건
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
10장. SELECT명령문 : 통계함수 모든 열 선택(*) 2. SELECT 절의 수식
8장. spss statistics 20의 데이터 변환
06. SQL 명지대학교 ICT 융합대학 김정호.
20장. SQL명령문의 최적화 1. OR연산자의 사용을 피하라. 2. 불필요한 UNION연산자의 사용을 피하라.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Flow Diagram IV While.
14 뷰(View) 뷰의 개념 뷰 관리.
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
maria db JDBC PROGRAMMING 5
07. DB 설계 명지대학교 ICT 융합대학 김정호.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
7 생성자 함수.
6 객체.
2장. 데이터베이스 시스템 개념과 아키텍처 2.1 데이터 모델, 스키마, 인스턴스
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

Database Relational DML SQL

SID Student_name Major Grade_level Age 100 Jones History SID Student_name Major Grade_level Age STUDENT GR 21 150 Park Accounting SO 19 200 250 300 350 400 450 Baker Glass Russel Rye Math SN JR FR 50 41 20 18 24 100 BD445 1 Student_ number ENROLLMENT Class_ name Position_ 150 BA200 200 2 CS250 300 CS150 400 BF410 450 CLASS BA200 M-F9 SC110 Class_name Time Room BD445 MWF3 SC213 BF410 MWF8 CS150 EA304 CS250 MWF12 EB210

STUDENT 테이블에서 SID, Name, Major 출력

STUDENT 테이블에서 Major 만 출력 중복된 값이 모두 출력됨 중복된 값 제거

특정 Row(행)만 선택하기 위한 조건 WHERE절 열을 모두 선택할 경우에는 열 이름 대신 *을 사용

WHERE 절에는 여러 개의 조건이 AND, OR, NOT 을 이용하여 복합적으로 주어질 수 있다.

하나의 속성 값에 대하여 여러 개의 조건이 OR관계일 때 IN을 사용할 수 있다. IN 앞에 NOT을 사용하면 리스트의 값을 제외한 나머지 행을 추출한다.

IN 뒤에 오는 ( )안에는 비교할 값을 나열하는 대신 SELECT문으로 선택할 수 있다. BD445 과목을 수강하는 학생의 이름만 출력 IN 뒤에 오는 SELECT문에 다시 IN이 올 수 있고 이 과정은 얼마든지 반복될 수 있다.

대부분의 DBMS는 COUNT, SUM, AVG, MAX, MIN 등의 Builtin함수를 제공한다.

GROUP BY를 사용하여 같은 속성 값들을 하나의 그룹으로 묶어서 각 그룹에 대하여 Query를 적용할 수 있다. 각 그룹에 대하여 하나씩의 전공명과 각 그룹내의 카운트가 출력됨 GROUP을 선택하는 조건 절은 HAVING을 사용한다. 조건 식은 WHERE절과 같다. 두 개 이상의 행을 가지고 있는 그룹만 선택

여러 개의 Relation(테이블)로부터 데이터를 추출할 수 있다(Joining).

Join된 서로 다른 테이블에 같은 열 이름이 있을 경우에는 열 이름 앞에 테이블 명을 붙여준다(Qualified Name).

Join은 IN절 뒤에 SELECT가 반복되는 Subquery를 대체할 수 있다. 앞에서 IN절을 사용하여 ‘DB445’과목을 수강하는 학생의 이름을 출력했던 Query는 다음의 Joining을 사용하여 똑 같은 결과를 얻을 수 있다. 강의 시간이 ‘MWF3’인 과목을 수강하는 학생의 경우에도 Join을 사용하여 다음과 같이 표현할 수 있다.

EXISTS, NOT EXISTS 절 EXISTS 뒤에 오는 행이 존재하면 True로서 앞의 Select문을 수행 NOT EXISTS 뒤에 오는 행이 존재하지 않으면 앞의 Select문을 수행 다음 Query는 두 과목 이상을 수강하는 학생의 학번을 출력한다. 한 과목만 수강하는 학생의 학번 두 과목 이상 수강하는 학생의 학번

다음 Query는 모든 과목을 수강하는 학생의 이름을 출력한다. 결과: 해당하는 학생이 없음. 다음 Query는 다른 대학원생 하고만 수업을 듣는 대학원생의 이름을 출력한다.

행 추가(Insert) 모든 속성값이 주어진 경우(순서 중요) INSERT INTO ENROLLMENT VLAUES(400, ‘BD445’, 44) 속성의 일부만 값이 주어졌거나 데이터의 순서가 다를 때 INSERT INTO ENROLLMENT(Class_name, Position_number, Student_number) VLAUES(‘BD445’, 44, 400) 속성의 값이 다른 테이블에서 읽은 값으로 주어지는 경우(ㅅㄴ서중요) INSERT INTO JUNIOR SELECT SID, Student_name, Major FROM STUDENT WHERE Grade_level=‘JR’

행 삭제(DELETE) 모든 행을 삭제(빈 테이블) DELETE STUDENT ENROLLMENT테이블에 있으면 이후로 Integrity가 깨지게 됨). DELETE STUDENT WHERE SID=‘100’ IN을 사용하여 삭제 대상의 그룹을 지정할 수 있다. DELETE ENROLLMENT WHERE Student_number IN ( SELECT SID FROM STUDENT WHERE Major=‘Accounting’) DELETE STUDENT WHERE Major=‘Accounting’

수정 (UPDATE) UPDATE ENROLLMENT SET Position_number=44 WHERE Student_number=‘400’ UPDATE ENROLLMENT SET Position_number=MAX(Poistion_number) + 1 WHERE Student_number=‘400’ UPDATE ENROLLMENT SET Position_number=MAX(Poistion_number) + 1, Class_name=‘CS520’ WHERE Student_number=‘400’ AND Class_name=‘CS250’