728x90
728x90

* 이 글은 제가 공부하기 위해 최대한 사실에 입각해 내용을 적으려고 하지만 일부 내용들이 정확하지 않을 수 있습니다.

   혹시나 잘못된 부분이 있으면 너그럽게 이해해 주시고 피드백 부탁드려요!


1. SQL 명령문의 종류와 사용방법

테이블 이름 확인

• 사용법

SQL> SELECT * FROM tab;


• 사용 예
    – 현재 접속한 데이터베이스 계정에 생성된 모든 테이블 이름을 확인하여라

 

테이블 구조 확인

• 사용법

SQL> DESC[RIBE] table_name


• 사용 예

    – 학생 테이블(student)의 구조를 확인하여라

SQL 명령문의 기초

• SELECT 명령문

    – 테이블에 저장된 데이터를 검색하기 위한 명령문
    – SELECT 명령문에서 SELECT절과 FROM절은 필수적

 

• 사용법

SELECT * | columnlist
FROM table;

 

테이블의 모든 데이터를 검색

• 사용 예

    – 부서 테이블의 모든 칼럼에 저장된 데이터를 출력하여라

테이블의 특정 칼럼을 선택

• 사용 예

    – 부서 테이블에서 부서 이름(dname)과 부서 번호(deptno)를 출력하여라

SQL 명령문의 표준 형식

• SQL 명령문의 표준 형식

SELECT [DISTINCT] { * | column[alias]....}
FROM table
[WHERE condition ]
[GROUP BY group_by_expression]
[ HAVING group_condition]
[ORDER BY column ];


• SELECT 명령문 작성 시 규칙

    – SQL 명령문에서 대소문자를 구분하지 않음

 

• 키워드는 주로 대문자로 사용하고 테이블명, 칼럼 이름은 소문자로 작성하는 것을 권장

    – 절은 줄을 구분하여 작성하고, 들여 쓰기를 사용하여 읽기 쉽게

    – 테이블명, 칼럼 이름, 키워드(SELECT, FROM, WHERE 등)는 축약할 수 없음

 

• 기본적인 SQL 질의


– SELECT절

    • 질의 결과를 포함하려는 애트리뷰트들의 리스트 열거

    • DISTINCT 절을 사용해서 중복 제거

– FROM절

    • 질의에서 필요로 하는 릴레이션들의 리스트 열거

– WHERE절

    • 관계 대수의 셀렉션(Select) 연산의 조건에 해당

– 중첩질의

    • 다른 질의의 WHERE절에 포함된 SELECT문

– GROUP BY절

    • 동일한 값을 갖는 튜플들을 한 그룹으로 묶는다

– HAVING절

    • 튜플들의 그룹이 만족해야 하는 조건

– ORDER BY절

    • 결과 튜플들의 정렬 순서

 

중복행 출력 금지 - 단일 칼럼

• 단일 칼럼에서 DISTINCT 키워드 사용 예

    – 학생 테이블에서 중복되는 학과 번호(deptno)를 제외하고 출력하여라

 

중복행 출력 금지 - 복수 칼럼

 

• 복수 칼럼에서 DISTINCT 키워드 사용 예

    – 학생 테이블에서 중복되는 학과 번호, 학년 제외하고 출력하여라

 

칼럼에 대한 별명 부여

• 별명 부여 방법

    – 칼럼 이름과 별명 사이에 공백을 추가하는 방법

    – 칼럼 이름과 별명 사이에 AS 키워드를 추가하는 방법

    – 큰 따옴표를 사용하는 방법

• 칼럼 이름과 별명 사이에 공백을 추가하는 경우

• 특수문자를 추가하거나 대소문자를 구분하는 경우

 

• 사용 예

    – 부서 테이블에서 부서 이름 칼럼의 별명은 dept_name, 부서 번호 칼럼의 별명은 DN으로

       부여하여 출력하여라

• 사용 예

    – 부서 테이블에서 부서 이름 칼럼의 별명은 “Department Name”, 부서 번호 칼럼의 별명은

      “부서 번호#”으로 부여하여 출력하여라

 

합성 연산자 사용

• 합성(concatenation) 연산자 (||)

    – 하나의 칼럼과 다른 칼럼, 산술 표현식 또는 상수 값과 연결하여 하나의 칼럼처럼 출력한 경우에 사용

• 사용 예

    – 학생 테이블에서 학번과 이름 칼럼을 연결하여 “Student”라는 별명으로 하나의 칼럼처럼 연결하여

       출력하여라.

 

산술 연산자 사용

• 산술 연산자(+,-, *, /)

    – 칼럼 값에 산술 연산자를 적용하여 계산된 결과를 출력할 수 있는 기능을 제공

    – 숫자 또는 날짜 타입에만 사용 가능

    – 수학에서의 산술 연산자의 우선순위와 동일, 괄호를 사용하여 우선순위 변경 가능

 

• 사용 예

    – 학생의 몸무게를 pound로 환산하고 칼럼 이름을 „weight_pound‟라는 별명으로 출력하여라.

      1kg은 2.2 pound이다.

 

 

2. 오라클 오류 메시지

자주 발생하는 오라클 오류 메시지

• ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다(table or view does not exist) 

    – 대부분 테이블 이름을 잘못 입력한 경우에 발생

    – FROM 절에서 참조하는 테이블이나 뷰가 존재하지 않거나 사용자가 해당 테이블에 대한

      접근 권한이 없는 경우에 발생

 

• ORA-00904 : 열명이 부적합합니다(invalid column name) 

    – 사용자가 칼럼 이름을 잘못 입력한 경우

 

• ORA-00923: 누락된 표현식(FROM keyword not found WHERE expected) 

    – SELECT 절에서 지정할 칼럼 별명 다음에 오는 칼럼 이름 사이에 콤마(,)를 누락한 경우

    – SELECT 절의 맨 마지막 칼럼에 콤마를 추가한 경우

    – FROM 키워드를 잘못 입력한 경우에 발생

728x90
300x250