5장 SQL 언어 Part II

Similar documents
SQL

PowerPoint 프레젠테이션

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

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

강의 개요

Microsoft PowerPoint - 10Àå.ppt

DBMS & SQL Server Installation Database Laboratory

TITLE

10.ppt

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

Microsoft PowerPoint Python-DB

MySQL-.. 1

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

문서 템플릿

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

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

쉽게 풀어쓴 C 프로그래밊

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

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

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

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

Ç¥Áö

PowerPoint 프레젠테이션

90

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

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

빅데이터 분산 컴퓨팅 -6

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

PowerPoint 프레젠테이션

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

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

Lec. 2: MySQL and RMySQL

1

강의 개요

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

PowerPoint Presentation

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

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

PART

Part Part

£01¦4Àå-2

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

MySQL-Ch10

< D53514C2CBAE42CBDC3BDBAC5DBC4ABC5BBB7CEB1D72D3130B3E2B0A3B1E2C3E2BAD0B7F9C1FD28C5EBC7D5292E687770>

Spring Boot/JDBC JdbcTemplate/CRUD 예제

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

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

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

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

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

윈도우시스템프로그래밍

13주-14주proc.PDF

PowerPoint Presentation

歯sql_tuning2

PHP & ASP

Relational Model

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Discrete Mathematics

슬라이드 제목 없음

PowerPoint Presentation

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

Microsoft PowerPoint MySQL 연동.ppt

untitled

sms_SQL.hwp

제목 레이아웃

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

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

ETL_project_best_practice1.ppt

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

슬라이드 1

chap 5: Trees

Microsoft PowerPoint - 27.pptx

객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;

윈도우시스템프로그래밍

SQL Tuning Business Development DB

PowerPoint Presentation

NoSQL

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

PowerPoint 프레젠테이션

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

untitled

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

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

RDB개요.ppt

Jerry Held


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

MySQL-Ch05

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

슬라이드 1

2015 경제ㆍ재정수첩

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

untitled

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

06/09-101È£ä263»Áö

04/07-08(È£ä263»Áö


Transcription:

5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26

데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26

SELECT 문 여러테이블을조합해서사용자가원하는필드와레코드를추출일반적인형식 SELECT [DISTINCT] 필드리스트 FROM 테이블이름 [WHERE 조건 ] [GROUP BY 필드리스트 ] [HAVING 조건 ] [ORDER BY 필드리스트 [ASC DESC]] 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 3 / 26

SELECT 문 : 기능 테이블의일부필드검색 ( 예제1) Customer Info 에서고객번호, 이름, 직업필드의데이터를검색 SELECT CID, Name, Job FROM Customer Info 전체필드를검색 ( 예제2) Customer OnlineInfo 에서전체필드의데이터를검색 SELECT all * FROM Customer OnlineInfo 또는 SELECT * FROM Customer OnlineInfo 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 4 / 26

SELECT 문 : DISTINCT ( 예제 ) 제품구입을한번이라도한적이있는고객들을 (Sales 테이블의고객번호들을중복없이 ) 모두검색 SELECT DISTINCT CID FROM Sales 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 5 / 26

SELECT 문 : 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 6 / 26

비교및논리연산자 ( 예제 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 7 / 26

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% 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 8 / 26

IN 키워드 ( 예제 1) Student 테이블에서지도교수번호가 1031, 2042, 5233 인학생을검색 SELECT * FROM Student WHERE PID IN (1031, 2042, 5233) ( 예제 2) Customer Info 테이블에서직업이 회사원, 공무원 인고객검색 SELECT * FROM Customer Info WHERE Job IN ( 회사원, 공무원 ) 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 9 / 26

SELECT 문 : 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 10 / 26

SELECT 문 : 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 11 / 26

SELECT 문 : 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) 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 12 / 26

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

SELECT 문 : 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 14 / 26

테이블이름의별명 : 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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 15 / 26

INNER JOIN과 WHERE ( 예제 2) 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 ( 예제 3) Student, Score, Curriculum 에서학생들의과목별성적을검색 SELECT S.ID, Name, SubjectName, Score FROM Student as S INNER JOIN Score as SC ON S.ID= SC.ID INNER JOIN Curriculum as C ON SC.SubjectID=C.SubjectID ORDER BY S.ID 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 16 / 26

OUTER JOIN LEFT 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 또는 SELECT C.CID, Name, LID, EMail FROM Customer Info AS C, Customer OnlineInfo AS CO WHERE C.CID *= CO.CID 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 17 / 26

RIGHT OUTER JOIN ( 예제 2) 고객정보에온라인정보를합해서볼때 SELECT C.CID, Name, LID, EMail FROM Customer OnlineInfo AS CO RIGHT JOIN Customer Info AS C ON CO.CID=C.CID 또는 SELECT C.CID, Name, LID, EMail FROM Customer OnlineInfo AS CO, Customer Info AS C WHERE CO.CID =* C.CID 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 18 / 26

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 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 19 / 26

SELECT 문 : UNION 테이블연결검색 ( 예제 ) 테이블 Score 와 Grad Score 에서학번, 교과목번호, 성적을검색 SELECT ID, SubjectID, Score FROM Score UNION SELECT ID, SubjectID, Score FROM Grad Score 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 20 / 26

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

( 예제 2) Student 테이블엔있지만 Score 테이블에존재하지않는학생명단 SELECT ID, Name FROM Student as S WHERE NOT EXISTS ( SELECT * FROM Score as Sc WHERE S.ID = Sc.ID ) ( 예제 3) 온라인고객이면서구매실적이있는고객명단검색 SELECT CID, Name FROM Customer Info as C WHERE EXISTS ( SELECT * FROM Customer OnlineInfo as CO WHERE C.CID = CO.CID ) AND EXISTS ( SELECT * FROM Customer Score as SC WHERE C.CID = SC.CID ) 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 22 / 26

INSERT 문 Create Table 명령문에의하여생성된테이블에새로운레코드를삽입 ( 예제 1) INSERT INTO Customer Info (CID, Name, Bday, SID, Sex) VALUES ( 999999, 송연지, 82-10-18, 821018-2853419, 1) ( 예제 2) 모든필드의데이터가준비되어있을때필드명은생략가능 INSERT INTO Customer Info VALUES ( 999998, 김가영, 충북청원군, 84-2-18, 840218-2498625, 학생, 1, 0) 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 23 / 26

( 예제 3) Customer Info 테이블에서남자고객만 Customer Male 테이블로복사 INSERT INTO Customer Male ( SELECT CID, Name, Address, Tel, Sex FROM Customer Info WHERE Sex=0 ) 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 24 / 26

UPDATE 문 테이블에저장되어있는레코드값을수정 ( 예제 1) Customer Info 테이블에서고객번호가 999999인고객의주소를 서울시노원구 으로수정 UPDATE Customer Info SET Address= 서울시노원구 WHERE CID= 999999 ( 예제 2) Customer Info 테이블에서고객번호가 999998인고객의전화번호를 254-4167, 직업을 회사원, 결혼여부를 1로수정 UPDATE Customer Info SET Tel= 254-4167, Job= 회사원, Married=1 WHERE CID= 999998 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 25 / 26

DELETE 문 테이블에저장되어있는레코드를삭제 ( 예제 ) Customer Info 테이블에서고객번호가 999998인레코드를삭제 DELETE Customer Info WHERE CID= 999998 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 26 / 26