데이터베이스 담당교수 신정식 Chapter 4 SQL(1).

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
SQLite 소개 및 안드로이드에서의 사용법
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL 언어 SQL.
Allow reverse scans allow reverse scnas. allow reverse scans allow reverse scnas.
소리가 작으면 이어폰 사용 권장!.
12 프로젝트 실습.
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
Database & Internet Computing Laboratory 한 양 대 학 교
C#에서 데이터베이스 연동 방법.
제 5 장 인덱스 생성 및 관리.
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
APM 실습 (MySQL).
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
Chapter 05 SQL 인젝션 공격.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
Toad for Oracle 설치 방법.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
11장. 데이터베이스 서버 구축과 운영.
오라클 데이터베이스 성능 튜닝.
kHS 데이터베이스 테이블 및 인덱스 kHS.
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
기초 T-SQL.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
Chapter 05 데이터베이스 프로그래밍.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
14 뷰(View) 뷰의 개념 뷰 관리.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
제 2 장 변수와 상수.
SQL.
시스템 보안 정보 보안 개론 9장.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
고급 T-SQL.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
Chapter11 웹 스토리지 & 웹 데이터베이스
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
                              데이터베이스 설계 및 실습 #4 - loadcompany 만들기 한국외국어대학교 DaPS 연구실                              
12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성
15 사용자 권한 제어 데이터베이스 보안 권한 롤 동의어.
06. SQL 명지대학교 ICT 융합대학 김정호.
제 8장 데이터베이스.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Mysql.
제 5 장 MariaDB인덱스 생성 및 관리.
3장. 데이터베이스 시스템 데이터베이스 시스템의 정의 데이터베이스의 구조 데이터베이스 사용자 데이터 언어
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

데이터베이스 담당교수 신정식 Chapter 4 SQL(1)

학습내용 1. SQL 소개 SQL(structured query language) 의 머리글자를 딴 말이며, SQL(에쓰큐엘 )로 읽는다. SQL은 1970년대에 처음 구현되기 시작하여 그 뒤 많이 바뀌었다. 현재 SQL은 국제 표준화 기구(ISO; International Organization for Standardization) 에서 만들었다. SQL에 들어 있는 주요 기능 - 스키마릉 정의하는 자료 정의어(DDL) -질의어 또는 자료 조작어(DML) 상호 작용적(interactive) 자료 조작어 : 화면에서 명령을 넣고, 결과 가 바로 화면으로 나오는 방식인데, 이 방식은 거의 늘 지원된다. 보기를 들어, Oracle 경우에는 이를 SQL*Plus라고 부른다. 내포된(embedded) 자료 조작어 : 일반 고급 프로그래밍 언어(보기: C/C++, JAVA)로 짠 프로그램 안에 SQL명령을 사이사이에 끼워 넣 은 방식, 작은 데이터베이스 관리 시스템에서는 이를 지원하지 않 는다. 은행업무등과 같이 늘 되풀이 되는 실제의 업무 전산화에서는 이런 방식을 아주 많이 쓴다.

학습내용 1. SQL 소개 -트랜잭션 제어(transaction control) -그 밖에 : 뷰 정의, 무결성 제어, 권한주기 등

학습내용 1. SQL 소개 데이터 정의어 ( DDL: Data Definition Language)는 물리적 구조의 데이터베이스를 가지고 여러 사용자들이 요구하는 다양한 형태의 데이터를 지원할 수 있는 데이터베이스 구조를 정의하는데 사용하는 언어이다. 예 : CREATE : 데이터베이스 객체 생성 ALTER : 변경 DROP : 삭제 데이터 조작어( DML : Data Manipulation Language) 는 사용자가 데이터를 처리하는데 사용하는 언어이다. 여기서 데이터 처리는 데이터의 삽입, 갱신, 삭제, 검색 등을 의미한다. 예 : INSERT 데이터 입력 UPDATE 수정 DELETE 삭제 SELECT 검색

학습내용 1. SQL 소개 데이터 제어어 ( DCL: Data Control Language)는 데이터를 올바르게 공유 하도록 하는 규정이나 기법을 정의하는데 사용하는 언어이다. 데이터를 보호하는 명령어들로 구성되어 있다. 예 : GRANT : 데이터베이스 객체에 대한 접근 권한 부여 REVOKE : 취소

학습내용 2. 자료의 형(domain, type) Select,insert,delete, update 등은 데이터베이스의 자료를 다루는 DML (data manipulation language) 명령이다. 그런데 이러한 자료를 테이블에 담으로면 테이블의 속성에 대한 자료의 형(도메인=범위) 을 포함하여 스키마를 정의하는 DDL을 알아야 한다.다음은 많이 사용하는 자료 형이다. -char(n) : fixed-lenth character string으로 저정하며, 이 때 N은 기억 장소의 크기를 나타내는데, 보기를 들어, char(3)에 ‘ab’를 저장하고자 하면 ‘ab ‘가 저장된다. -varchar2(n) : variable-lenth character string으로 저장하며, 이 때 n은 최대길이지만, 그보다 짧은 문자열이 들어 오면 마지막에 빈칸으로 덧붙이지 않고, 짧은 문자열 그대로 저장한다. -numeric(p,d), number(p,d), decimal(p,d), dec(p,d) : 십진수를 정확하게 저장할 수 있는 자료형이다. P는 전체 자리수, d는 그 가운데 소수점 아래의 자리수이다. 보기를 들어 numeric(3,2)라고 하면 정수 부분 한자리, 소수점 아래 2자리를 저장할 수 있으며, 이는 평균평점 (보기: 3.45)을 저장 하기에 좋다. -real, double, float(p) : 실수 형이다. Real은 보통의 실수이고, double 은 real 보다 바이트 수가 많은 실수 형이다.

학습내용 3. Create table 명령을 써서 스키마 정의 하기 스키마를 정의하는 명령은 create table이고, 스키마를 지우는 명령은 drop table 명령인데, 이 명령의 일반 형식이 알아 보자. create table 테이블_이름 ( 속성_이름1 자료_형1, 속성_이름2 자료_형2, …., primary key (속성11, 속성12, …), unique key (속성21, 속성 22,…), foreing key (속성31,…) references 테이블_이름2 ); drop table 테이블_이름; 어떤 테이블에 primary key절이 나오면 그 키 값이 같은 투플이 그 테이블 안에 두 개 이상 있을 수 없다. 키는 하나 또는 여러 개의 속성으로 이루어져 있다.

학습내용 3. Create table 명령을 써서 스키마 정의 하기 Primary key와 unique key 절이 있는 보기를 알아 보자. create table 학생 (학번 char(7) not null, 이름 char(20) not null, 주민등록번호 char(14) not null, primary key (학번), unique key (주민등록번호)); 위의 학생 테이블에서 학번에 대한 not null은 명시 하지 않더라도, primary key(학번)에 의하여 not null이 묵시적으로 선언된다.주민등록번호는 일차키가 되지 못한 후보키이다.

학습내용 3. Create table 명령을 써서 스키마 정의 하기 Primary key와 unique key 절이 있는 보기를 알아 보자. create table 수강 (학번 char(7) not null, 이름 char(20) not null, 과목번호 char(7) not null, primary key (학번, 과목번호), foreign key (학번) references 학생, foreign key (과목번호) references 과목); ); 위의 수강 테이블에서 학번과 과목번호는 각각 학생과 과목 테이블에서 일차키이고, 따라서 수강 테이블에서 외래키로 선언 하였다.

학습내용 3. Create table 명령을 써서 스키마 정의 하기 테이블에 투플을 넣을 때는 insert into 명령을 쓰는데, 일반 형식은 다음과 같다. insert into 테이블_이름 values (속성값1, 속성값2 …. 속성값n); create table 학생 (학번 char(7) not null, 이름 char(20) not null, ); insert into 학생 values (‘2007001’ , ‘홍길동’ ); Insert 명령의 values 절에 속성값을 넣게 된다.

학습내용 3. Create table 명령을 써서 스키마 정의 하기 이미 있는 테이블과 스키마도 꼭 같고, 투플의 내용도 꼭 같은 새 테이블을 만들고자 하면 다음과 같이 하면 된다. create tmp as select * from 학생 ; 만일 이미 있는 테이블에서 복사하되, 조건에 맞는 일부 투플만 복사하려면 다음과 같이 where 절에 조건만 더 넣으면 된다. create table tmp as select 학번 from 수강 where 과목번호 = ‘CS001’ ;

학습내용 4. select-from-where 명령 실행 원리 엄밀한 뜻에서의 질의어, 다시 말하여 이미 있는 자료를 가져오는 SQL명령은 select 명령이다. Select 명령에는 여러 가지 절이 들어갈 수 있지만, 가장 많이 쓰는 중요한 절은 from절과 where절이며, select 명령 형식은 다음과 같다. select 속성1, 속성2,….. from 테이블1, 테이블2,…. where 조건1 and/or 조건2…… Select 명령에서 from절은 반드시 있어야 한다. where절은 보통 있지만 반드시 있어야 하는 것은 아니다.

학습내용 4. select-from-where 명령 실행 원리 [학생] 학번 이름 2007001 강충희 2007002 강현욱 2007003 고지영 select 학번 from 학생;

학습내용 4. select-from-where 명령 실행 원리

학습내용 4. select-from-where 명령 실행 원리 수강 테이블이 다음과 같이 있을 때, 여기서 과목번호 CS001 또는 CS002과목을 듣는 학생의 학번을 찍어내는 select명령이 아래와 같다. [수강] 학번 과목번호 2007001 CS001 2007001 CS002 2007002 CS002 2007002 CS003 2007003 CS004 select 학번 from 수강 where 과목번호 = ‘CS001’ or 과목번호 =‘CS002’;

학습내용 4. select-from-where 명령 실행 원리 where 조건1 and/or 조건2…… ∏ 속성1, 속성2, …(б 조건1 and/or 조건2 …(테이블1 X 테이블2,…)) SQL select 명령에서는 입력테이블이 한 개, 또는 여러 개 될 수 있으며, 결과 테이블은 하나이다. 1단계 2단계 1단계

학습내용 5. select 명령에서 속성을 추출하기 개념적으로 테이블은 투플의 집합이므로, 꼭 같은 투플이 한테이블 안에 있어서는 않된다. 그러나 그건 어디까지나 개념이고, 실제 데이터베이스 관리 시스템에서는 테이블 안에 허용되기도 한다. Insert /update 명령의 결과로 표 안에 겹치는 투풀이 생기는 것을 허용한다. select 속성1, 속성2,….. : 겹치는 투플 허용 select all 속성1, 속성2,….. : 겹치는 투플 허용 select distinct 속성1, 속성2,….. : 겹치는 투플 허용 하지 않음

학습내용 5. select 명령에서 속성을 추출하기 겹치는 투플을 허용하는지 않는지를 보기 위하여, 아래 수강 테이블을 보기로 풀이 하겠다. [수강] 학번 과목번호 2007001 CS001 2007001 CS002 2007002 CS002 2007002 CS003 2007003 CS004 select all 학번 from 수강; select 학번 from 수강;

학습내용 5. select 명령에서 속성을 추출하기 겹치는 투플을 허용하는데 ,그 결과가 아래에 나와 있다. 학번 2007001 2007001 2007002 2007002 2007003

학습내용 5. select 명령에서 속성을 추출하기 아래 select distinct 명령을 겹치는 투플을 허용하지 않으며, 그 결과가 아래에 나와 있다. [수강] 학번 2007001 2007002 2007003 select distinct 학번 from 수강;

학습내용 6. where 절에서 조건을 나타내기 Where절에서 조건을 나타내는 보기가 아래에 나와 있다. where 과목번호 = ‘CS001’

학습내용 6. where 절에서 조건을 나타내기 관계대수에서 자연 조인을 배웠는데, 이제 SQL에서 자연조인을 어떻게 나타내는지 배워보자. 구체적으로 학생과 수강테이블 사이의 자연조인을 아래에서 살펴보자. 학생 = (학번, 이름) 수강 = (학번, 과목번호) 관계대수에서 자연 조인은 세 단계를 거친다고 하였는데, 각 단계를 SQL에서 어떻게 나타날 수 있는지 생각해보자. 학생과 수강 테이블의 카디전 곱 : from 학생, 수강 학생.학번과 수강.학번이 같은 투플을 선택하기 : where 학생.학번 = 수강.학번 두 테이블의 공통 속성 추출하기 : select 학생.학번, 학생.이름, 수강.과목번호

학습내용 6. where 절에서 조건을 나타내기 따라서 from, where, select 명령을 하나로 묶으면 다음과 같다.

학습내용 7. 속성의 이름을 정하거나 바꾸기 꼭 같은 속성이름이 테이블 두 개에 각각 있을 때 : select 학생.학번, 수강.학번 from 학생, 수강 where 학생.학번 = 수강.학번; 속성이름을 바꿀 수 있다. select 학생.학번 as 학생_학번, 수강.학번 as 수강_학번 from 학생, 수강 where 학생.학번 = 수강.학번;

학습내용 7. 속성의 이름을 정하거나 바꾸기 Select 다음에 속성 대신 수식이 올 때 : 보기를 들어 과목 스키마에서, 학점 수에 1.5를 곱한 값을 찍으려면 아래와 같이 하면 된다. 과목 = (과목번호, 과목이름, 학점수, 교과구분) select 과목번호, 학점수 * 1.5 from 과목 ; 그런데, 수식* “학점수 * 1.5 “의 값을 계산하여 찍기는 하지만, 그 수식에 대한 속성이름이 없다. 따라서 그 수식의 결과에 대하여 “조정된_학점수”라는 속성이름을 주려면 다음과 같이 하면 된다. select 과목번호, 학점수 * 1.5 as 조정된_학점수 from 과목 ;

학습내용 7. 속성의 이름을 정하거나 바꾸기 이미 있는 속성이름과 다른 속성이름을 주고자 할 때: 성적등급이라는 속성이 있는데, 이 속성을 찍으려면 아래와 같이 하면 된다. select 성적 등급 from 수강 ; 그런데, 만일 이 속성이름을 성적 등급 대신 성적으로 찍고자 하면 다음과 같이 하면 된다. select 성적 등급 as 성적 from 수강 ;

학습내용 참고문헌 이종만, 사례로 배우는 데이터베이스 설계와 구축,이한출판사, 2006 김경석,윤흥원,이중화, 데이터베이스론, 이한출판사,2004