SQL

Similar documents
5장 SQL 언어 Part II

DBMS & SQL Server Installation Database Laboratory

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

PowerPoint 프레젠테이션

Microsoft PowerPoint - 10Àå.ppt

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

금오공대 컴퓨터공학전공 강의자료

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

TITLE

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

PowerPoint Presentation

Microsoft PowerPoint Python-DB

빅데이터분산컴퓨팅-5-수정

강의 개요

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770>

PowerPoint Presentation

untitled

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

MySQL-.. 1

10.ppt

슬라이드 제목 없음

문서 템플릿

Microsoft PowerPoint - 27.pptx

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

쉽게 풀어쓴 C 프로그래밊

PowerPoint 프레젠테이션

< D53514C2CBAE42CBDC3BDBAC5DBC4ABC5BBB7CEB1D72D3130B3E2B0A3B1E2C3E2BAD0B7F9C1FD28C5EBC7D5292E687770>

1 데이터베이스 2 MySQL 설치 3 기초 SQL 4 고급 SQL 유용한함수들 JOIN inseog Kim Dep. of Applied Statistics, Dongguk통계데이터베이스 University jinseog.kim gma

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

Database Applications - 멀티미디어 데이터베이스 – 제6장 텍스트 색인과 검색

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

PowerPoint 프레젠테이션

03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델

6장. SQL

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

The Relational Model

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

Spring Boot/JDBC JdbcTemplate/CRUD 예제

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Ç¥Áö

슬라이드 1

빅데이터 분산 컴퓨팅 -6

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

PowerPoint Presentation

lecture01

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

Microsoft PowerPoint - QVIZMVUMWURI.pptx

PowerPoint Presentation

Spring Data JPA Many To Many 양방향 관계 예제

윈도우시스템프로그래밍

PHP & ASP

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 사본 - OAS09-사무자동화 기술(DB).ppt

歯sql_tuning2

강의 개요

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

JVM 메모리구조

MySQL-Ch10

제목 레이아웃

untitled

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Lec. 2: MySQL and RMySQL

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

1

RDB개요.ppt

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Tablespace On-Offline 테이블스페이스 온라인/오프라인

슬라이드 제목 없음

13주-14주proc.PDF

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Relational Model

-->> 바로위의예제와같은내용이지맊이런식으로해도된다 -->> 삽입한데이터확인 위에대한모든 INSERT 구문에는 'customerid' 에대한값이없다, 'customerid' 는 <customer> 테이블에기본키였으므로이상하게이상하게생각될지도모르겠지맊앞선에서테이블을설정할

ETL_project_best_practice1.ppt

한국 컴퓨터그래픽스(디지털컨텐츠)의 현황과 미래 위기인가? 기회인가?

Microsoft PowerPoint - Database.ppt

Discrete Mathematics

£01¦4Àå-2

PART

Part Part

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

Microsoft PowerPoint - 6.pptx

슬라이드 1

NoSQL

Microsoft PowerPoint MySQL 연동.ppt

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint 프레젠테이션

Transcription:

데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36

Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36

데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인 (domain): 한속성이취할수있는모든값개체인스턴스 (instance) 과개체집합개체타입 : 속성의이름만으로기술된개체의정의 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 3 / 36

관계 (relationship) relation(table): 데이터를저장하는 2 차원테이블 relationship: 어떤개체나속성들의관련성또는관계 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 4 / 36

관계의종류 속성관계 개체관계 ( 예 ) 질의 (query) 학번이 2000020182 인학생의지도교수는 누구인가? 를지도라는관계를통해서답 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 5 / 36

관계형데이터베이스구조 테이블의구조 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 6 / 36

관계형데이터베이스구조 테이블의특징각필드 (field) 는유일한이름을갖고순서는중요하지않음한테이블에있는모든레코드 (record) 는유일하고그순서는중요하지않음각속성은단일한값을갖고배열등과같은여러값을갖지못함속성과도메인 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 7 / 36

관계형데이터제약 키 (key) 키또는수퍼키 (super key): 레코드를유일하게식별할수있는속성의집합. 테이블에서유일한레코드를찾아내는주소역할 학생테이블 : ( 학번 ), ( 학번, 이름 ) 등 후보키 (candidate key): 유일성과최소성을가짐 학생테이블에서 ( 학번 ) 후보키가둘이상인경우하나를기본키 (primary key) 로사용하고 나머지는대체키 (alternative key) 로사용 ( 예 ) ( 학번, 주민등록번호, 이름 ) 의테이블 : ( 학번 ) 과 ( 주민등록번호 ) 외래키 (foreign key) 기본키 : 교수테이블 ( 교수번호 ), 학생테이블 : ( 학번 ) 학생테이블의 지도교수번호 는외래키로교수테이블과의연결 고리로사용 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 8 / 36

관계형데이터추출의기본적방법 선택 (select) 연산 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 9 / 36

추출 (project) 연산 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 10 / 36

조인 (join) 연산 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 11 / 36

데이터베이스객체 (database object) 뷰 (view): 하나이상의테이블로부터유도되어만들어진가상 테이블 (virtual table) 로데이터가실제저장되지않음 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 12 / 36

저장프로시저 (stored procedure): 미리컴파일해서저장해놓은 SQL 문장들로 macro 와비슷한역할 질의처리속도향상 업무처리루틴공유 네트워크트래픽감소 ( 예 ) 제품의판매현황파악등에요구되는통계량산출을위한 저장프로시저 트리거 (trigger): 테이블의데이터에변화가발생했을때 자동적으로수행되도록해놓은저장프로시저 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 13 / 36

Part II SQL 소개 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 14 / 36

SQL(Structured Query Language) 소개 IBM San Jose 연구소에서개발되어 1986년관계형 DBMS의표준언어로채택일반적으로 DBMS로부터데이터를질의 (query) 또는조회하기위한언어 ( 예 ) 학생테이블에서학과이름이 통계학과 인학생을모두검색특징대화식 / 내장언어레코드의집합단위로연산데이터의정의, 조작, 제어를지원자료접근을위한방식과경로등을지정할필요가없는비절차적언어 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 15 / 36

데이터정의문과제어문 데이터정의 SQL 문 CREATE: 새로운데이터베이스또는객체생성 DROP: 데이터베이스또는객체삭제 ALTER: 데이터베이스또는객체변경데이터제어 SQL 문 GRANT: 데이터베이스객체사용권부여 DENY: 데이터베이스객체사용권철회 REVOKE: GRANT 또는 DENY 권한설정취소 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 16 / 36

데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 17 / 36

Part III SELECT 문 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 18 / 36

기본형 여러테이블을조합해서사용자가원하는필드와레코드를추출일반적인형식 SELECT [DISTINCT] 필드리스트 FROM 테이블이름 [WHERE 조건 ] [GROUP BY 필드리스트 ] [HAVING 조건 ] [ORDER BY 필드리스트 [ASC DESC]] 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 19 / 36

기능 테이블의일부필드검색 ( 예제1) Customer Info 에서고객번호, 이름, 직업필드의데이터를검색 SELECT CID, Name, Job FROM Customer Info 전체필드를검색 ( 예제2) Customer OnlineInfo 에서전체필드의데이터를검색 SELECT * FROM Customer OnlineInfo 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 20 / 36

DISTINCT ( 예제 ) 제품구입을한번이라도한적이있는고객들을 (Sales 테이블의고객번호들을중복없이 ) 모두검색 SELECT DISTINCT CID FROM Sales 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 21 / 36

WHERE 레코드조건검색 ( 예제 1) Customer Info에서직업이 회사원 인고객의고객번호 (CID), 이름 (Name), 직업 (job), 결혼여부 (married) 를검색 SELECT CID, Name, Job, Married FROM Customer Info WHERE Job = 회사원 ( 예제 2) Customer OnlineInfo에서전자우편주소가 null 값이아닌레코드를검색 SELECT * FROM Customer OnlineInfo WHERE Email is not NULL 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 22 / 36

비교및논리연산자 ( 예제 4) Customer Score 테이블에서고객점수가 100 이상이고 200 이하인레코드를검색 SELECT * FROM Customer Score WHERE Score >= 100 AND Score <= 200 ( 예제 5) Customer OnlineInfo테이블에서 Login ID 와 Password 를동일하게이용하는고객을검색 SELECT * FROM Customer OnlineInfo WHERE LID=LPW 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 23 / 36

LIKE 연산자 ( 예제 1) Customer Info 테이블에서 김 씨성을가진고객의고객번호, 이름, 주소를검색 SELECT CID, Name, Address FROM Customer Info WHERE Name LIKE 김 % ( 예제 2) Customer OnlineInfo 테이블에서 Email 로 hotmail 을이용하는고객검색 SELECT * FROM Customer OnlineInfo WHERE Email LIKE %hotmail% 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 24 / 36

IN 키워드 ( 예제 ) Customer Info 테이블에서직업이 회사원, 공무원 인고객검색 SELECT * FROM Customer Info WHERE Job IN ( 회사원, 공무원 ) 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 25 / 36

GROUP BY 데이터그룹화 ( 예제 1) Customer Info 테이블에서직업별고객빈도파악 SELECT Job, count(*) as freq FROM Customer Info GROUP BY Job ( 예제 2) Sales 테이블에서 2001년 4월의고객별구매회수를검색 SELECT CID, count(*) as freq FROM Sales WHERE year(sday)=2001 and month(sday) = 4 GROUP BY CID 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 26 / 36

HAVING 그룹화조건검색 ( 예제 1) Sales 테이블에서 2001년 4월의고객별구매회수 20회이상인고객검색 SELECT CID, count(*) as freq FROM Sales WHERE year(sday)=2001 and month(sday) = 4 GROUP BY CID HAVING count(*) >= 20 ( 예제 2) Score 테이블에서학생의평균점수가 90 이상인학생검색 SELECT ID, avg(score) as mean FROM Score GROUP BY ID HAVING avg(score) >= 90 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 27 / 36

ORDER BY 출력순서명시 ( 예제 1) Customer Info 테이블에서고객들을생년월일순으로검색 SELECT CID, Name, BDay FROM Customer Info ORDER BY BDay ( 예제 2) Score 테이블에서학생의평균점수를오름차순으로검색 SELECT ID, avg(score) as mean FROM Score GROUP BY ID ORDER BY avg(score) 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 28 / 36

레코드수제한 : SELECT TOP ( 예제 1) Score 테이블에서성적이상위 50% 인학생을내림차순으로검색 ( 단, 동점자포함 ) SELECT TOP 50 PERCENT WITH TIES * FROM Score ORDER BY Score DESC ( 예제 2) Customer Info 테이블에서 2000 년이후에가입한고객중가장빨리가입한고객 5명검색 SELECT TOP 5 * FROM Customer Info WHERE year(jday) >= 2000 ORDER BY JDay ASC 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 29 / 36

JOIN INNER JOIN ( 예제 1) 테이블 Customer Info, Customer OnlineInfo 에서고객번호, 이름, Login ID, 전자우편주소를고객순으로검색 SELECT Customer Info.CID, Name, LID, EMail FROM Customer Info INNER JOIN Customer OnlineInfo ON Customer Info.CID= Customer OnlineInfo.CID ORDER BY Customer Info.CID 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 30 / 36

테이블이름의별명 : AS SELECT C.CID, Name, LID, EMail FROM Customer Info AS C INNER JOIN Customer OnlineInfo AS CO ON C.CID=CO.CID ORDER BY C.CID 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 31 / 36

INNER JOIN과 WHERE ( 예제 ) Customer Info, Customer OnlineInfo에서 1980년이후출생자의고객번호, 이름, Login ID, 전자우편주소를고객 ID 순으로검색 ( 전자우편주소가 null값이면제외 ) SELECT C.CID, Name, LID, EMail FROM Customer Info AS C INNER JOIN Customer OnlineInfo AS CO ON C.CID=CO.CID WHERE year(bday) >= 1980 and Email is not NULL ORDER BY C.CID 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 32 / 36

OUTER JOIN ( 예제 1) 고객정보에온라인정보를합해서볼때 SELECT C.CID, Name, LID, EMail FROM Customer Info AS C LEFT JOIN Customer OnlineInfo AS CO ON C.CID=CO.CID ( 예제 2) 온라인정보에고객정보를합해서볼때 SELECT C.CID, Name, LID, EMail FROM Customer OnlineInfo AS CO RIGHT JOIN Customer Info AS C ON CO.CID=C.CID 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 33 / 36

CROSS JOIN 조인가능한모든조합 ( 예제 ) SELECT C.CID, Name, LID, EMail FROM Customer Info AS C CROSS JOIN Customer OnlineInfo AS CO WHERE C.CID= 100001 or C.CID= 100002 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 34 / 36

UNION 테이블연결검색 ( 예제 ) 테이블 Score 와 Grad Score 에서학번, 교과목번호, 성적을검색 SELECT ID, SubjectID, Score FROM Score UNION SELECT ID, SubjectID, Score FROM Grad Score 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 35 / 36

중첩질의 어떤질의의 WHERE 문안에완전한 SELECT 질의가포함되어있는형태 ( 예제 ) Customer Info 테이블에서 Email 주소를가지고있는고객명단검색 SELECT CID, Name FROM Customer Info WHERE CID IN ( SELECT CID FROM Customer onlineinfo WHERE Email is not null ) 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 36 / 36