02 SQL 언어 SQL 명령문의 종류와 사용 방법 오라클 오류 메시지
SQL 언어의 정의 SQL 언어의 정의 SQL 언어의 특징 관계형 데이터베이스를 조작하기 위한 표준 언어 관계 대수와 관계 해석의 수학적인 이론을 기초로 개발 데이터베이스의 구조를 정의하거나 데이터베이스에 저장된 데이터를 검색하기 위한 목적 SQL 언어의 특징 비절차적 언어 기존 프로그래밍 언어 : 레코드 단위로 처리 조건에 따라 데이터에 대한 접근 경로가 달라짐 SQL 언어 : 조건을 만족하는 데이터를 집합 단위로 한꺼번에 처리 대화식으로 사용되거나 응용 프로그램에 삽입하여 사용 2장 SQL 언어
SQL 명령문의 종류와 사용방법 SQL 명령문의 종류 질의어 (DQL : Data Query Language) 데이터베이스에 저장된 데이터를 조회하는 명령어 데이터 조작어 (DML : Data Manipulation Language) 데이터베이스 응용 프로그램 개발을 위해 주로 사용되며 데이터를 입력, 수정 삭제하는 명령문 포함 데이터 정의어 (DDL : Data Definition Language) 데이터베이스 설계자가 데이터베이스의 구조를 정의하거나 수정하기 위한 목적으로 사용하며 데이터베이스 객체를 생성, 수정, 삭제하는 명령문 포함 트랜잭션 처리어 (TCL : Transaction Control Language) 트랜잭션 관리를 위한 목적으로 사용 데이터 제어어 (DCL : Data Control Language) 데이터베이스 관리자가 데이터나 데이터베이스 객체에 대한 접근 권한 부여와 같은 데이터베이스 시스템을 관리하기 위한 목적으로 사용 2장 SQL 언어
SQL 명령문의 종류 2장 SQL 언어
실습 예제 E/R 다이어그램 실습 예제 데이터베이스의 E/R 다이어그램 2장 SQL 언어
테이블 인스턴스 테이블 인스턴스(table instance) 데이터베이스 설계시에 테이블의 구조와 칼럼의 특성을 알기 쉽게 요약한 내용 테이블 인스턴스는 테이블의 칼럼 이름, 데이터 타입, 키 종류, NULL이나 중복 값의 허용 여부, 외래 키 그리고 칼럼에 대한 설명으로 구성 2장 SQL 언어
학생 테이블 인스턴스 & 예제 데이타 STUD NAME USERID G IDNUM BIRTH TEL HE WE DNO PNO ---- ------ ------ -- ------------ ------- ----------- --- --- --- --- 10101 전인하 jun123 4 7907021369824 79/07/02 051)781-2158 176 72 101 993 20101 이동훈 Dals 1 8312101128467 83/12/10 051)426-1752 172 64 201 2장 SQL 언어
교수 테이블 인스턴스 & 예제 데이타 PROFNO NAME USERID POSITION SAL HIREDATE COMM DEPTNO ------- ----- ------- -------- --- --------- ----- ------- 김도훈 capool 교수 500 24-JUN-82 20 101 이재우 sweat413 조교수 320 12-APR-95 201 2장 SQL 언어
부서 등급 테이블 인스턴스 & 예제 데이타 DEPTNO DNAME COLLEGE LOC ------- ------------ -------- -------- 101 컴퓨터공학과 100 1호관 102 멀티미디어학과 100 2호관 2장 SQL 언어
급여 등급 테이블 인스턴스 & 예제 데이타 GRADE LOSAL HISAL ----- ------- ----- ----- ------- ----- 1 100 300 2 301 400 2장 SQL 언어
SQL*Plus의 기본 사용자 계정 기본 사용자 계정 오라클을 인스톨하면 기본적으로 SYS, SYSTEM, SCOTT라는 3종류의 사용자 계정이 생성 sys/change_on_install : 데이터베이스 관리자 권한, 모든 객체의 소유주 system/manager : 데이터베이스 관리자 권한 scott/tiger : 일반 사용자 권한 2장 SQL 언어
SQL*Plus의 실행 윈도우 환경에서 SQL*Plus 실행 2장 SQL 언어
PC에서의 SQL*Plus 로그인 - sys/change_on_install - system/manager - scott/tiger 2장 SQL 언어
UNIX/LINUX에서의 SQL*Plus 로그인 sqlplus username/password 형식으로 접속 또는 sqlplus 를 먼저 실행한 후, 사용자 이름과 암호 입력 가능 2장 SQL 언어
UNIX/LINUX에서의 SQL*Plus 로그인 SQL> 프롬프트상에서 “exit” 명령을 입력 2장 SQL 언어
초기 데이타베이스 생성 방법 본 교재의 실습용 테이블과 데이터 생성 방법 2장 SQL 언어
데이터 딕셔너리를 이용한 테이블 조회 데이터 딕셔너리 (Data dictionary) 테이블 이름 확인 데이타베이스 객체에 대한 다양한 시스템 정보를 저장하고 있는 테이블의 집합 테이블 이름 확인 사용자 데이타베이스 계정에 생성된 테이블 이름을 확인하기 위하여 tab 이라는 데이터 딕셔너리 테이블을 조회 2장 SQL 언어
데이터 딕셔너리를 이용한 테이블 조회 테이블의 구조 확인 데이터베이스의 모든 데이터는 테이블이라는 논리적인 구조에 저장 사용자가 테이블의 데이터 조회시 칼럼 이름을 잘못 적을 경우, ‘ORA-000904 : invalid identifier’ 오류 발생 테이블의 구조 정보를 조회하여 정확한 칼럼 이름 확인 필요 DESC[RIBE] 명령어 테이블의 칼럼 이름, 데이터 타입과 길이, NULL 허용 유무 등과 같은 테이블 구조 정보 확인 가능 2장 SQL 언어
학생(Student) 테이블 구조 확인 2장 SQL 언어
SQL 명령문의 기초 SELECT 명령문 테이블에 저장된 데이터를 검색하기 위한 명령문 SELECT 명령문에서 SELECT절과 FROM절은 필수절 SELECT …… FROM 테이블명 FROM 절에서 지정한 테이블에서 SELECT 절에서 나열한 칼럼에 저장된 데이터를 검색하라는 의미 2장 SQL 언어
테이블의 모든 데이터를 검색 모든 칼럼에 저장된 모든 데이터 검색 검색 방법 1 검색 방법 2 SELECT 명령문의 FROM 절에 검색을 원하는 테이블 이름 작성 SELECT 절에 FROM 절에 기술한 테이블의 모든 칼럼 이름 나열 검색 방법 2 SELECT 절에 모든 칼럼 이름을 일일이 나열하는 과정이 번거로우므로 와일드 문자인 ‘*’ 를 사용하여 모든 칼럼의 데이터 검색 가능 출력순서는 테이블 생성시 정의한 칼럼의 순서와 동일 2장 SQL 언어
테이블의 특정 칼럼을 선택 특정 칼럼의 선택적 출력방법 SELECT 절 다음에 출력을 원하는 칼럼 이름을 순서대로 나열 칼럼을 구분하기 위해 칼럼 이름과 칼럼 이름 사이에 콤마(,) 기술 2장 SQL 언어
SQL 명령문의 표준 형식 표준 형식 데이터 조회를 위해서는 SELECT 절과 FROM 절이 반드시 존재해야 함 WHERE, GROUP BY, HAVING, ORDER BY 절은 필요에 따라 선택적으로 사용 가능 대괄호로 표시된 형식은 생략 가능 2장 SQL 언어
SQL 명령문의 표준 형식 SELECT 명령문 작성시 규칙 SQL 명령문에서 대소문자를 구분하지 않음 키워드는 주로 대문자로 사용하고 테이블명, 칼럼 이름은 소문자로 작성하는 것을 권장 가능하면 절은 줄을 구분하여 작성하고, 들여쓰기를 사용하여 읽기 쉽게 작성할 것을 권장 테이블명, 칼럼 이름, 키워드(SELECT, FROM, WHERE 등)는 축약할 수 없음 2장 SQL 언어
중복행 출력 방지 중복행 제거 SELECT 절에 DISTINCT 키워드를 사용하여 중복행 제거 가능 2장 SQL 언어
중복행 출력 방지 2장 SQL 언어
칼럼에 대한 별명 부여 별명을 부여하는 일반적인 경우 별명 부여 방법 칼럼 이름이 너무 길어서 한 화면에 칼럼 이름 전체를 출력하기 어렵운 경우 SQL 함수나 산술 연산에 의해 일시적으로 만들어지는 가상 칼럼이 생기는 경우 별명 부여 방법 칼럼 이름과 별명 사이에 공백을 추가하는 방법 칼럼 이름과 별명 사이에 AS 키워드를 추가하는 방법 큰따옴표(“”)를 사용하는 방법 칼럼 이름과 별명 사이에 공백을 추가하고 큰따옴표를 사용 별명에 공백, 특수문자, 대소문자가 포함된 경우 주로 사용 2장 SQL 언어
칼럼 별명 부여 예 2장 SQL 언어
칼럼 별명 부여 예 2장 SQL 언어
합성 연산자 사용 합성(concatenation)연산자 (||) 하나의 칼럼과 다른 칼럼, 산술 표현식 또는 상수 값과 연결하여 하나의 칼럼처럼 출력할 경우에 사용 출력 형식은 합성 연산자를 기준으로 좌, 우로 연결된 칼럼의 데이터가 하나의 칼럼 데이터처럼 출력 합성연산자를 사용하여 리터럴(literal) 문자 출력 가능 리터럴 문자를 칼럼 값처럼 출력할 경우, 리터럴 문자를 단일 인용부호(‘’) 사이에 포함하여 사용 2장 SQL 언어
합성 연산자 사용 예1 2장 SQL 언어
합성 연산자 사용 예2 2장 SQL 언어
합성 연산자 사용 예3 2장 SQL 언어
산술 연산자 산술 연산자(+,-, *, /) 칼럼 값에 산술 연산자를 적용하여 계산된 결과를 출력할 수 있는 기능을 제공 산술연산은 숫자 또는 날짜 타입으로 지정된 칼럼에만 사용 가능 산술연산자의 우선순위는 수학에서의 산술 연산자의 우선순위와 동일 괄호를 사용하여 우선순위 변경 가능 2장 SQL 언어
산술 연산자 사용 예1 2장 SQL 언어
산술 연산자 사용 예2 2장 SQL 언어
자주 발생하는 오라클 오류 메시지 오라클 오류 메시지 오류 메시지는 ‘ORA-nnnnn’ 식으로 표현되며 오류의 원인과 해결 방법을 출력 ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다(table or view does not exist) 원인 FROM 절에서 참조한 테이블이나 뷰가 존재하지 않거나 사용자가 해당 테이블에 대한 접근 권한이 없는 경우 발생 대부분은 테이블 이름을 잘못 입력한 경우에 발생 해결 방법 FROM 절에서 테이블 이름을 정확하게 기술 SELECT * FROM tab; 명령문으로 데이터 딕셔너리를 조회하여 확인 필요 데이타베이스 관리자나 테이블 소유자로부터 해당 테이블에 접근할 수 있는 권한 부여받아야 함 2장 SQL 언어
자주 발생하는 오라클 오류 메시지 ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다 2장 SQL 언어
자주 발생하는 오라클 오류 메시지 ORA-00904 : 열명이 부적합합니다(invalid identifier) 원인 해결 방법 SELECT 절에서 지정한 칼럼이 FROM 절에서 지정한 테이블에 없는 경우에 발생 해결 방법 칼럼 이름을 정확하게 기술 칼럼 이름을 모를 경우, DESC 테이블명 명령어로 정확한 칼럼 이름 조회 필요 2장 SQL 언어
자주 발생하는 오라클 오류 메시지 ORA-00936: 누락된 표현식(missing expression) 원인 해결 방법 SELECT 절에서 지정한 여러 칼럼 이름 사이에 콤마(,)를 누락한 경우 SELECT 절의 맨 마지막 칼럼에 콤마를 추가한 경우 해결 방법 칼럼 이름 사이에 콤마(,)를 기술 SELECT 절의 마지막에 있는 콤마를 삭제 2장 SQL 언어
자주 발생하는 오라클 오류 메시지 ORA-00923 : FROM 키워드가 있어야 할 곳에 없습니다(FROM keyword not found WHERE expected) 원인 SELECT 절 다음에 FROM 키워드를 입력하지 않은 경우 FROM 키워드를 잘못 입력한 경우 해결 방법 SELECT 절 다음에 FROM 키워드를 입력 FROM 키워드를 올바르게 수정 2장 SQL 언어