본문 바로가기

IT TIP/Oracle

sqlplus - 기초실습1

 

오라클 기초 실습내용 1/3

 

기본 sql 사용과 해당문법의 설명을 확인하면서 기초를 다시 확인할수있을듯함..

 

워낙 오래전 자료다 보니... 지우는것보단...이렇게라도 .... 가끔보게되면

 

뭔가 새로운 기분이 들지않을까..해서......

 

 

  /# pc-oracle              #/
  /##########################/

=============================================
sql>connect system/manager

sql>create user 계정 identified by pass번호

sql>grant connect, resource to 계정
=============================================
시스템 계정으로 접속
SQL> connect system/manager
연결되었습니다.
=============================================
SQL> create table ss
  2   (s_id char(2) not null,
  3   sname varchar2(10) not null,
  4   status number(3) not null,
  5   city varchar2(10),
  6   constraint ss_s_id_pk primary key (s_id));  //주키

 ss 테이블이 생성


=============================================
SQL> create table pp
  2   (p_id char(2) not null,
  3   pname varchar2(10) not null,
  4   color varchar2(5) not null,
  5   weight number(3) not null,
  6   city varchar2(10),
  7   constraint pp_p_id_pk primary key (p_id));

  pp 테이블이 생성


=============================================
SQL> create table sspp
  2   (s_id char(2) not null,
  3    p_id char(2) not null,
  4    qty number(3) not null,
  5    constraint  sspp_s_id_pk primary key (s_id,p_id),
  6    constraint ss_s_id_fk foreign key (s_id)
  7     references ss on delete cascade,
  8   constraint pp_p_id_fk foreign key (p_id)
  9     references pp on delete cascade);

  sspp 테이블이 생성


=============================================
 SQL> Insert into ss
  2  values('s1','홍길동',20,'서울');

1 개의 행이 작성되었습니다.


=============================================
SQL> select *
  2  from ss;
- - - - - - - - - - - - - - - - - - - -
S_ SNAME         STATUS CITY
-- ---------- --------- ----------
s1 홍길동            20 서울


=============================================
SQL> Insert into ss
  2   values('&s_id','&sname',&status,'&city');
s_id 의 값을 입력하십시오: s2
sname 의 값을 입력하십시오: 손오공
status 의 값을 입력하십시오: 10
city 의 값을 입력하십시오: 부산
구   2:  values('&s_id','&sname',&status,'&city')
신   2:  values('s2','손오공',10,'부산')

1 개의 행이 작성되었습니다.


=============================================
SQL> select *
  2  from ss;

S_ SNAME         STATUS CITY
-- ---------- --------- ----------
s1 홍길동            20 서울
s2 손오공            10 부산
s3 박문수            30 부산
s4 신수동            20 서울
s5 반월성            30 경주
- - - - - - - - - - - - - - - - - - - - -
ss테이블 완성 최종
=============================================

 


SQL> create table 학생             //테이블의 생성.
  2   ( 학번   char(5)  not null,
  3     이름  varchar2(20),
  4     학년  char(1),
  5    신장  number(3));

Table created.                    //테이블 생성 완료!

 

SQL> select * from tab;

 TNAME                          TABTYPE  CLUSTERID
 ------------------------------ ------- ----------
 A                              TABLE
 AA                             TABLE           //중간생략!
 BABO                           VIEW
 BB                             TABLE
 WATERMASTER                    TABLE
 우수공급자                     VIEW
 학생                           TABLE
        49 rows selected.


SQL> desc 학생                              //방금 생성한 테이블의 데이타타입을 본다.
 Name                            Null?    Type
 ------------------------------- -------- ----
 학번                            NOT NULL CHAR(5)
 이름                                     VARCHAR2(20)
 학년                                     CHAR(1)
 신장                                     NUMBER(3)

 

SQL> select * from 학생;       //생성된 테이블을 본다.
   no rows selected             //내용이 없다.


SQL> alter table 학생          //테이블내에 칼럼 추가.         _______________________(page_IV-7)
  2  add (신장2  number(4));   //ADD(칼럼명  테이터 타입)
   Table altered.              //테이블내에 칼럼 추가 성공

 

SQL> desc 학생
 Name                            Null?    Type
 ------------------------------- -------- ----
 학번                            NOT NULL CHAR(5)
 이름                                     VARCHAR2(20)
 학년                                     CHAR(1)
 신장                                     NUMBER(3)
 신장2                                    NUMBER(4)    <== 추가된 칼럼

 

SQL> alter table 학생                          //칼럼 변경  |형|
  2   modify ( 신장2  varchar2(10));           //           |식|
       Table altered.

 

SQL> desc 학생
 Name                            Null?    Type
 ------------------------------- -------- ----
 학번                            NOT NULL CHAR(5)
 이름                                     VARCHAR2(20)
 학년                                     CHAR(1)
 신장                                     NUMBER(3)
 신장2                                    VARCHAR2(10)   <==칼럼의 데이타타입이 NUMBER에서 VARCHAR2로 변경!


SQL> alter table 학생
  2  modify(신장2  not null);    
       Table altered.

 

SQL> desc 학생
 Name                            Null?    Type
 ------------------------------- -------- ----
 학번                            NOT NULL CHAR(5)
 이름                                     VARCHAR2(20)
 학년                                     CHAR(1)
 신장                                     NUMBER(3)
 신장2                           NOT NULL VARCHAR2(10)    <----

 

SQL> alter table  학생
  2  modify(신장2  null);
    Table altered.

 

SQL> desc 학생;
 Name                            Null?    Type
 ------------------------------- -------- ----
 학번                            NOT NULL CHAR(5)
 이름                                     VARCHAR2(20)
 학년                                     CHAR(1)
 신장                                     NUMBER(3)
 신장2                                    VARCHAR2(10)    <----

 

SQL> drop table 학생;    //테이블의 삭제.
    Table dropped.       //테이블 삭제 성공

 

SQL>select * from tab;   /확인!

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
A                              TABLE
AA                             TABLE
BABO                           VIEW
BB                             TABLE
WATERMASTER                    TABLE         //이하생략
우수공급자                     VIEW
     50 rows selected.