오라클 서버 접속
오라클계정
서버접속
$ sqlplus scott/tiger
(프로그램명 계정/암호)ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
- Enter user-name:
sys/oracle as sysdba
- SQL>
startup
- SQL>
CONN scott/tiger
오라클을 처음 설치할 경우에는 보안 문제로 연습용 계정인 scott 계정을 사용 못하도록 막아두기 때문에 아래와 같은 에러가 발생할경우 관리자계정으로 접속해 계정을 풀어줘야함
ERROR:
ORA-28000: the account is locked
- Enter user-name:
sys/oracle as sysdba
- SYS>
ALTER USER scott IDENTIFED BY tiger ACCOUNT UNLOCK;
show user
SET sqlprompt "_USER>"
데이터 가져오기
SELECT
SELECT [컬럼명 or 표현식] FROM [테이블명 or 뷰(view) 명
- SQL>
SELECT * FROM emp;
모든 컬럼조회
- SQL>
DESC dept ;
SELECT * FROM TAB;
Column 변경
- 숫자 데이터: SQL>
COL 컬럼명 FOR 9999
(자리수만큼 9할당) - 문자 데이터: SQL>
COL 컬럼명 FOR a15
(자리수만큼 숫자할당)
- 한 화면에 출력가능한 가로길이: SQL>
SET LINE 200
- 한 화면에 출력가능한 세로길이: SQL>
SET PAGES 50
- 컬럼명 이외에 원하는 내용으로 출력할수 있음.
SELECT
구문 컬럼명 뒤에'
원하는내용'
로 묶어서 사용'
를 출력하려면''
사용
- 컬럼명
"별칭"
// 별칭에 공백이나 특수문자, 대소문자 구분이 필요할 경우 쌍따옴표 필수 - 컬럼명
AS "별칭"
- 컬럼명
별칭
// 쌍따옴표 하지 않을경우는 모두대문자로 출력
||
서로 다른 컬럼을 하나의 컬럼처럼 연결해서 출력 *백업/복구 작업이나 데이터베이스 운영 관련 작업, 튜닝 작업등에 아주 많이 사용됨. SQL>SELECT ename||'''s job is '||job " NAME AND JOB" 2 FROM emp; NAME AND JOB ----------------------------- SMITH's job is CLERK ALLEN's job is SALESMAN WARD's job is SALESMAN
DISTINCT
SELECT
다음에 와야 하며 그렇지 않을 경우 에러발생.(ORA-00936)SQL>SELECT DISTINCT job, ename 2 FROM emp 3 ORDER BY 1,2; JOB ENAME --------- ---------- ANALYST FORD ANALYST SCOTT CLERK JAMES CLERK SMITH
WHERE
SELECT [컬럼 or 표현식] FROM [table or view] WHERE 조건
'
'
사용해야함 (숫자이외에 모두 홑따옴표 사용)- 문자의 경우 대소문자 구분 (날짜는 구분안함)
- 날짜의 경우 윈도우와 리눅스 날짜 형식 다름 * 윈도우) yy/mm/dd, 리눅스) dd-MON-yy
=
같은 조건 검색!=
,<>
같지 않은 조건 검색>
(<
) 큰(작은) 조건 검색>=
(<=
) 크(작)거나 같은 조건 검색 숫자,문자,날짜 모두 비교가능(날짜의경우 최신날짜 일수록 값이큼)BETWEEN a AND b
a와 b사이에 있는 범위값 검색 ( a, b값 모두 포함/ 한글은 b포함 안됨) * 속도면에서 위의 비교연산자가 더 빠름IN(a,b,c)
a거나 b거나 c인 조건 검색 (속도빠름)LIKE
특정 패턴 있는 조건 검색, 아래의 두 기호와 함께쓰임. 홑따옴표필수IS NILL
/IS NOT NULL
Null 값/아닌값 검색=
연산 사용못함A AND B
A,B 모두 만족하는 값 검색 (우선수위: 괄호, AND > OR)A OR B
A,B 중 하나라도 만족하는 값 검색NOT A
A가 아닌 모든 조건 검색
%
: 글자수 제한X(0포함)_
: 한글자 %나 _를 먼저 쓰면 SQL성능최악임(Index때문). 주의할것.&
WHERE절 이외에 입력을 받아야 할곳에 모두 쓰일수있음ORDER BY
ASC
(default), 내림차순DESC
컬럼명 뒤에 명시SET OPERATOR (집합 연산자)
UNION
합집합, 중복 값 제거, 정렬UNION ALL
합집합, 중복 값 제거X, 정렬XINTERSECT
교집합, (정렬동반(12c기준) 데이터 많으면 속도저하)MINUS
차집합, 정렬(쿼리순서 중요)- 두 집합의 SELECT 절에 오는 칼럼의개수와 데이터형이 동일해야함.
- UNION & UNION ALL 많이 연결할수록 성능 저하되므로 DECODE, CASE 등 다른 방법 사용해 작성할것.
기타
ed
// vi 로 수정/
// 마지막에 실행했던 sql 실행SET verify OFF
//설명부분 해제[출처] 다양한 예제로 쉽게 배우는 오라클 SQL과 PL/SQL 서진수 저
'Oracle > sql' 카테고리의 다른 글
[SQL] 3. 복수행함수(그룹함수) (1) | 2016.09.05 |
---|---|
[SQL] 2. 단일행함수(정규식표현) (0) | 2016.09.05 |
[SQL] 2. 단일행함수(일반함수) (0) | 2016.09.02 |
[SQL] 2. 단일행함수(숫자, 날짜, 형변환 함수) (0) | 2016.08.30 |
[SQL] 2. 단일행함수(문자함수) (0) | 2016.08.29 |