ORACLE-SQL

Similar documents
강의 개요

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

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

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

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

Jerry Held


강의 개요

Microsoft Word - SQL튜닝_실습교재_.doc

예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

OCW_C언어 기초

untitled

SQL Tuning Business Development DB

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap04-연산자.pptx

13주-14주proc.PDF

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

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

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

Microsoft PowerPoint - chap05-제어문.pptx

컴파일러

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

객관식 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;

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

ESQL/C

PowerPoint 프레젠테이션

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

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

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

ePapyrus PDF Document

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

Microsoft PowerPoint - [2009] 02.pptx

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

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

ORACLE 꼭 이 책의 내용들을 다 외울 정도로 공부하여 스스로의 지식으로 만들기 바랍 니다. 마치 작은 씨앗에서 큰 나무가 자라나는 것처럼 이 책 한 권은 작지만 이 책을 다 읽은 후에는 큰 나무가 되기를 바랍니다. 이 책은 SQL 책입니다. 그러나 SQL을 잘 작

PHP & ASP

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

문서 템플릿

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

SQL초보에서Schema Object까지

PowerPoint Presentation

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

TITLE

PowerPoint Presentation

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - 기술노트[19회] Flashback.doc

쉽게 풀어쓴 C 프로그래밍

Microsoft Word - Goodus_기술노트[19회]_Flashback

Microsoft PowerPoint - 10Àå.ppt

IBM blue-and-white template

Microsoft PowerPoint - Java7.pptx

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

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

DBMS & SQL Server Installation Database Laboratory

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

[INPUT] 뒤에는변수와관련된정보를표기한다. [CARDS;] 뒤에는각각의변수가가지는관측값들을표기한다. >> 위의프로그램에서데이터셋명은 wghtclub 이고, 변수는 idno, name, team, strtwght, endwght 이다. 이중 name 과 team 은

Lec. 2: MySQL and RMySQL

chap 5: Trees

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint Presentation

Microsoft PowerPoint 자바스크립트(1).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

歯sql_tuning2

PowerPoint Presentation

슬라이드 1

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

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

RDB개요.ppt

6장. SQL

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

PowerPoint 프레젠테이션

OCW_C언어 기초

<session-factory> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.oracledriver</property> <property name="hibernate.connection.u

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

Microsoft Word - PLC제어응용-2차시.doc

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

歯PLSQL10.PDF

5장 SQL 언어 Part II

PowerPoint Template

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

PowerPoint Template

Microsoft Word - Blind Sql Injection.doc

FlashBackt.ppt

Microsoft PowerPoint - ch07 - 포인터 pm0415

TEST BANK & SOLUTION

MS-SQL SERVER 대비 기능

PowerPoint 프레젠테이션

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

OCW_C언어 기초

설계란 무엇인가?

Transcription:

ORACLE-SQL SELECT 문 2014-04-12 Blog.ksh123jjang.me

내용 SELECT문이란?... 2 SLELECT문사용하기... 3 모든열선택... 4 특정열검색... 5 SQL문작성방법... 6 열머리글기본값... 7 산술식... 8 NULL... 9 열 alias... 10 연결연산자... 11 대체인용연산자 (q)... 12 중복행제거... 13 테이블구조확인하기... 14 1

SELECT 문이란? 프로젝션 : 쿼리문에의해반홖되는열 (column) 을반홖. 선택 : 쿼리문에의해반홖되는열 (column) 을반홖. 조인 것. : 두테이블사이에링크를지정하여서로다른테이블의데이터를가져오는 그림으로표현하면 트렌젝션 선택 조인 2

SELECT 문의기본적인문법은다음과같다. SLELECT 문사용하기 SELECT * {[DISTINCT] column expression [alias],...} FROM table; SELECT는열 (column) 을식별한다. FROM은그열을포함한테이블을식별한다. * 은모든열을출력하라는의미이다. DISTINCT는중복을제거하라는의미이다. column expression 은열과표현식을의미. alias는해당열을별칭을주어사용할때사용. 3

모든열선택 앞에서도설명했지만, 모든열을선택하기위해서는 * 을사용하면된다. SELECT * FROM scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL ---------- ---------- --------- ---------- ------------------- ---------- COMM DEPTNO ---------- ---------- 7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 실행결과를보면, 열은 EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO 로 8 개이다. 8 개의열이모두검색된것을볼수있다. 위에결과는일부분이고모두 14 개의 rows 가검색되었다. 4

특정열검색 이번에는모든열이아닌원하는열만검색을해보자. 방법은 * 을사용하는것이아닌원하는열을나열하면된다. SELECT empno, hiredate, sal FROM scott.emp; EMPNO HIREDATE SAL ---------- ------------------- ---------- 7369 1980-12-17 00:00:00 800 7499 1981-02-20 00:00:00 1600 7521 1981-02-22 00:00:00 1250 7566 1981-04-02 00:00:00 2975 7654 1981-09-28 00:00:00 1250 7698 1981-05-01 00:00:00 2850 7782 1981-06-09 00:00:00 2450 7788 1987-04-19 00:00:00 3000 7839 1981-11-17 00:00:00 5000 7844 1981-09-08 00:00:00 1500 7876 1987-05-23 00:00:00 1100 SELECT 다음에원하는컬럼 ( 열 ) 을나열했더니그열만검색이되어화면에출력되었다. 이방법을통해사용자는모든열이아닌특정열만을추려서출력할수있다. 또한, 나열된순서에따라서출력되는열의순서도결정된다. 위에서만약, sal 이앞에있었다면 sal 열부터출력되었을것이다. 5

SQL 문작성방법 SQL문을작성하는방법을알아보자. SQL문은대소문자를구분하지않는다. 따로지정하지않으면대소문자를구분하지않는다. SQL 문은한줄또는여러줄에입력할수있다. 키워드는약어로표기하거나여러줄에걸쳐입력할수없다. 키워드 (SELECT, FROM 등 ) 은보통대문자로사용하고, 열과테이블과같은건소문자로사용. 절은대개별도의줄에입력합니다. SELECT문에들어가는긴문장이있다면다음줄에사용하여읽기편하고관리에편하게한다. 가독성을높이기위해들여쓰기를사용합니다. Ex) SELECT empno, ename, sal FROM scott.emp; SQL Developer에서 SQL 문은선택적으로세미콜론 (;) 으로끝날수있습니다. 세미콜론은여러 SQL 문을실행하는경우에필요합니다. 여러 SQL문을실행할수있는장점이있으나잘못해서사용하지않은것이라면의도하지않는문장들이수행될위험도있다. SQL*plus에서는각 SQL 문이반드시세미콜론 (;) 으로끝나야합니다 6

열머리글기본값 여기서열머리글이란별것아니다. 해당열의이름이라고보면된다. 위에서 SELECT문을실행할때사용된 empno와같은것이다. 출력될때의특징이있는데, 열머리글은대문자로출력이된다. SQL Developer 에서는왼쪽정렬로출력이되고, SQL*Plus 에서는문자 & 날짜는왼쪽정렬이고숫자형에대해서는오른쪽정렬로출력이된다. 아마도각 TOOL 에따라출력되는정렬형태는다른것같다. 7

산술식 이번에는열에어떠한산술식을사용할수있는지알아보자. 산술식이란사칙연산을의미한다. + 더하기 - 빼기 * 곱하기 / 나누기위식에대한의미는다들알것이라생각하고건너뛴다. 산술식을사용해보자. SELECT empno, ename, sal+100 FROM scott.emp; EMPNO ENAME SAL+100 ---------- ---------- ---------- 7369 SMITH 900 7499 ALLEN 1700 7521 WARD 1350 7566 JONES 3075 7654 MARTIN 1350 7698 BLAKE 2950 7782 CLARK 2550 7788 SCOTT 3100 7839 KING 5100 7844 TURNER 1600 7876 ADAMS 1200 위에실행결과를보면열머리글이 SAL+100으로나온것을볼수있다. SELECT문에서사용한그대로열머리글이출력된다. SELECT문은검색을한후에산술을수행하기에실제로데이터가 +100이되는것은아니다. 그저검색결과물에 + 연산을수행하여화면에만보여주는것이다. 변형을하기위해서는 DML작업을해야한다. 그건추후설명할것이다. 사칙연산의우선순위를따르고 ( ) 도사용가능하다. 운선순위가동일하면왼쪽부터연산이실행된다. 8

NULL NULL하면무엇이떠오르는가? 대부분프로그래밍을배운사람이라면 NULL을알것이다. NULL = 쓰레기값, 존재하지않는값 이라고생각한다. SQL에서도크게다르지않다. 널 (NULL) 은공백문자와 0이아니다. 널에대한설명은사용할수없는값, 할당되지않은것, 알수없는것, 적용불가능이라고표현한다. 널은입력값이없다는의미로생각해두면될것이다. 널은존재하지않는값이기에실제로산술연산도되지않는다. EX) SELECT comm * 3 FROM scott.emp; 를수행하면 SQL*Plus에서보면군대군대빈칸이보일것이다. 이것은공백문자가아니라 null값이기때문에연산을처리해도 null이나오기에그렇게나오는것이다. SQL*Plus에서는 (null) 형태로출력되지않고 null은출력하지않는다. 그러나 SQL Developer에서는 (null) 로출력이된다. 또한, null을의미있는값으로변형이가능하다. 방법은 Tools>Preferences -> 대화상자에서노드를확장. -> 오른쪽에 Advanced Parameters -> Display Null value As 에서직접값을입력하면된다. 9

열 alias 맨처음 SELECT문을설명할때 alias에대한말이있었다. 좀더자세히그특징에대해알아보자. 열머리글이름을변경한다. 열에대한 alias를설정하면출력될때열머리글을사용자가지정한이름으로출력하게할수있다. 계산에유용 열이름바로뒤에등장. 열이름 AS alias 열이름 alias 공백이나특수문자를포함하거나대소문자를구분할경우 ( 큰따옴표 ) 가필요하다. SQL> SELECT empno AS enumber, sal + 200 "Salary" 2 FROM scott.emp; ENUMBER Salary ---------- ---------- 7369 1000 7499 1800 7521 1450 7566 3175 7654 1450 7698 3050 보면사용한방법을잘알수있을것이다. 큰따옴표가없으면무조건대문자로출력이되고큰따옴표안에있으면작성한그대로출력이된다. AS Enumber 로사용하면큰따옴표안에있는그대로출력한다. 즉, AS는선택사항이고있어도되고없어도되는것이다. 단, 대문자로만출력할때는 AS만사용하는것이좀더편하지않을까??? 10

연결연산자 연결연산자를이용하면열과열을연결할수있다. 특징은다음과같다. 열이나문자열을다른열과연결. 로사용. _ 로문자열을연결하여하나의열로출력한다. 연결하는열이 null을포함하고있다면연산결과는값을가지고있는열의값만출력이된다. SQL> SELECT empno '_' ename AS employees, ename job as ejob, sal * comm as nextsal FROM scott.emp 2 ; EMPLOYEES EJOB NEXTSAL ----------------------------- ------------------ ---------- 7369_SMITH SMITHCLERK 7499_ALLEN ALLENSALESMAN 480000 7521_WARD WARDSALESMAN 625000 위에실행된결과를보면 의사용방법을알수있을것이다. 는열과열을연결하기에바로붙 여서출력한다. 숫자형도위와같은형식이다. 하지만이어서출력하면무슨의미인지모를수도 있다. 그럴때구분을하기위해서리터럴문자열을사용한다. _ 가바로리터럴문자열을사용한것이다. 작은따옴표안에있는문자열을그대로연결된 열사이에출력하여열과열을구분해서사용자가의미를좀더정확히이해할수있다. 모두같은것이출력되는것처럼 안에사용한문장은각행에대해한번씩사용된다. 따옴표안에는공백문자도포함이가능하다. 11

대체인용연산자 (q) 그러면여기서의문이생길것이다. 작은따옴표를화면에출력하려면어떻게해야할까? 그방법은갂단하다. 대체인용연산자 (q) 를사용하면된다. q [] 형태로사용하는데, [ ] 대싞에 < >, ( ), { } 등사용할수있다. SQL> SELECT ename q'['s Job is ]' job AS "what is his job" FROM scott.emp; 2 what is his job ----------------------------- SMITH's Job is CLERK ALLEN's Job is SALESMAN WARD's Job is SALESMAN JONES's Job is MANAGER MARTIN's Job is SALESMAN BLAKE's Job is MANAGER CLARK's Job is MANAGER SCOTT's Job is ANALYST KING's Job is PRESIDENT TURNER's Job is SALESMAN ADAMS's Job is CLERK 실행결과를보면 가정상적으로출력된것을볼수있다. 이를사용하면다양한형태로글을출력할수있다. 12

중복행제거 SECECT문은기본적으로조건에맞는모든행을출력한다. 그러나필요에따라서는중복된값은제거하고봐야할때가있다. 예를들면부서번호가총몇개가존재하는지를알고싶다거나하는경우이다. SQL> SELECT DISTINCT deptno 2 FROM scott.emp; DEPTNO ---------- 30 20 10 위에결과를보면, 14개의행중에서 3개의행만출력이된것을확인할수있다. 즉 scott.emp 테이블에존재하는 DEPTNO는 10, 20, 30 이렇게 3개만있다는것을확인할수있다. 그러면열 ( 컬럼 ) 이여러개존재하면어떻게처리될까? SQL> SELECT DISTINCT job, deptno 2 FROM scott.emp; JOB DEPTNO --------- ---------- MANAGER 20 PRESIDENT 10 CLERK 10 SALESMAN 30 ANALYST 20 MANAGER 30 MANAGER 10 CLERK 30 CLERK 20 9 rows selected. 실행결과에서나타나듯 job 과 deptno 를조합해서중복되는값을제거하는것을확인할수있다. 또한 DISTINCT 키워드는 UNIQUE 한값만출력되는것이니 UNIQUE 를사용해도된다. 13

테이블구조확인하기 테이블을생성할때구조를미리결정해서생성하는데, 만약다른사람이만든테이블사용할경우어떻게해야할까? DESCRIBE or DESC 키워드를사용하면해결할수있다. DESC[RIBE] tablename SQL> DESC scott.emp; Name Null? Type ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) 위를보면, scott.emp 테이블에대한정보를확인할수있다. 각열 (column) 의이름, null값에대한제약조건, 각열에대한데이터형을볼수있다. 여기서는갂략히보면, 열은 8개 EMPNO에는 NOT NULL제약조건 (null값이들어올수없다는의미 ) 이있다. 데이터형은숫자, 가변문자열, 날짜, 소수점이 2개존재하는숫자등이있다. 데이터형에대해서는추후에자세히설명할것이다. 14