상세 컨텐츠

본문 제목

sql 실습 시작(sql 입문 및 oracle 서버 시작)

Coding/Database

by 세미531 2022. 4. 30. 16:04

본문

728x90

1. 윈도우 메뉴에서 SQL Plus 실행

2. 사용자명과 비밀번호 입력

 

# 수행 가능한 명령어 종류

- SQL commands

- PL/SQL blocks

- SQL*Plus commands

 

# 명령어 입력 종료

- with a semicolon (;)

  * 현재까지 입력한 명령어를 버퍼에 저장한 후 명령어 수행

- with a blank line

  * 현재까지 입력된 명령어를 버퍼에 저장하고 명령어 수행하지 않음

 

 

# 버퍼에 저장된 명령어의 수행

- SQL> run  <- 버퍼에 있는 내용 listing 후 수행

- SQL> / <- 단순히 버퍼에 있는 내용 수행

- SQL> edit <- 버퍼에 있는 내용 수정

 


# SQL*PLUS 의 prompt 상태에서 작성한 SQL 명령어의 저장
- SQL> save “파일 경로"/ file_name[.sql]

# SQL 문을 저장한 파일 부르기
- SQL> get “파일 경로“/ file_name[.sql]

# 명령어 파일 수행
- SQL> start “파일 경로"/ file_name[.sql]
- SQL> @” 파일 경로 “ file_name[.sql]

 

#실행결과 spooling

- SQL> spool file_name[.ext]

- SQL> spool off

 

##Spool 명령어 사용 방법

SQL> spool c:~~/wantname.txt

이거 해준 뒤에 원하는 명령어들 쓰면 그 과정들이 spool 로 저장됨.

SQL> spool off

 

#Create TABLE

CREATE TABLE EMPLOYEE
(Fname VARCHAR(15) NOT NULL,
Minit CHAR,
Lname VARCHAR(15) NOT NULL,
Ssn CHAR(9) NOT NULL,
Bdate DATE,
Address VARCHAR(30),
Sex CHAR,
Salary DECIMAL(10,2),
Super_ssn CHAR(9),
Dno INT NOT NULL,
PRIMARY KEY (Ssn),
FOREIGN KEY (Super_ssn) REFERENCES EMPLOYEE(Ssn)); 

 

table list 확인(생성확인) : select * from tab;
desc employee(table name); -> 스키마 구조 확인

 

/* INSERT DATA */
INSERT INTO EMPLOYEE VALUES('James','E','Borg','888665555',to_date('1937-11-10','yyyy-mm-dd'),'450 Stone, Houston, TX','M','55000',NULL,'1');
data 넣은것 확인 -> select * from employee;
INSERT INTO EMPLOYEE VALUES('Franklin','T','Wong','333445555',to_date('1955-12-08','yyyy-mm-dd'),'683 Voss, Houston, TX','M','40000','888665555','5');

 

#폰트크기 set linesize 150
set pagesize 150 -> 많은 데이터 끊겨서 보이는거

commit; -> 저장(다 완료하고 해야됨)

 

 

# 환경 변수의 설정과 확인

- set / show 명령어 사용
SQL> set pause on;
SQL> show pause;
pause ON

 

# 유용한 환경 변수
pause msg : 한 화면씩 출력한 후 메시지 출력
pause on/off : 페이지 단위로 출력 , 초기값은 on
pagesize n : 페이지당 라인의 수를 n 으로 설정 . 초기값은 14
linesize n : 라인당 문자 수를 n 으로 설정 . 초기값은 80
heading on/off : heading 의 디스플레이 여부를 결정 . 초기값 on
time on/off : 프롬프트 앞에 현재 시각을 나타냄 . 초기값은 off

 

# 편집 명령어

append text : text 를 명령어 끝에 첨가
change /old/new : old 를 new 로 치환
change /text : 현 명령어 줄에서 text 를 삭제
del : 현 명령어 줄을 지움
input : 하나 이상의 줄을 첨가
input text : text 를 포함하는 명령어 줄을 첨가
list : 버퍼의 모든 내용 출력
list * : 현 명령어 줄을 보여줌
list last : 마지막 명령어 줄을 보여줌
list m n : m 부터 n 까지의 명령어 줄을 보여줌

 

#편집 명령 예시

1. 명령어 입력

SQL> select empno

From emp

Where deptno = 10

 

2. 버퍼의 내용 출력하기

SQL> I

-> 결과

    1. select empno

    2. From emp

    3* Where deptno = 10

 

3. 세 번째 라인을 편집하기

SQL> I 3

3* where deptno = 10

SQL> change/10/30(10을 30으로 변경)

 

4. 버퍼의 내용을 출력하기

SQL> I

-> 결과

    1. select empno

    2. From emp

    3* Where deptno = 30

 

# comment 달기

- remark <- 한 줄의 첫머리서부터

- /*...*/ <- 여러 줄

- -- <- 명령어의 마지막 행에

 

# catalog 관련 명령어

- table 의 schema 구조 조회

* SQL> desc "table_name";

 

# 현재 connect 한 사용자가 생성한 table 조회

- SQL> select * from tab;

 

#Oracle에서 사용 가능한 자료형

CHAR(size) = 고정 길이 문자열 (size 의 기본값 1, 최대값 255)

CHARACTER(size) = CHAR 와 동일

DATE = 날짜 타입

LONG = 가변 길이 문자열 (최대 2GB까지 가능)

LONG RAW = 이진 자료(binary data)(최대 2GB 또는 2^31 - 1)

NUMBER(p, s) = precision p 와 scale s 를 갖는 숫자 (최대 38자리)

RAW(size) = size 만큼의 크기를 갖는 이진 자료(최대 2GB)

VARCHAR2(size) = 최대 size 길이만큼의 가변길이 문자열

 

# Oracle SQL 네이밍 규칙

- 1byte 에서 30 bytes 길이로 작성

단, 데이터베이스의 이름은 8 byte 이상

- quotation marks 를 포함하면 안됨

- A-Z 범위의 글자로 시작

- A-Z, 0-9, $, #, _ 로만 구성할 수 있음

- SQL 예약어와 중복될 수 없음

##double quotation marks 로 둘러싼 이름

- naming 시 위 규칙을 따르지 않아도 됨

 

### 테이블 생성 예시

CREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14), LOC VARCHAR2(13));

 

### 테이블 검색

SELECT * FROM DEPT;

 

 

 

728x90

댓글 영역