1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
SQL> CREATE TABLE HOME (
  2      HOMENO    NUMBER,
  3      HOMENAME VARCHAR2(10),
  4      MANAGER    VARCHAR2(15),
  5      SALARY     NUMBER
  6  );
 
테이블이 생성되었습니다.
 
 
SQL> desc home;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 HOMENO                                             NUMBER
 HOMENAME                                           VARCHAR2(10)
 MANAGER                                            VARCHAR2(15)
 SALARY                                             NUMBER
 
SQL> 
SQL> INSERT INTO HOME VALUES(2106'Kims''김창섭'5000000);
 
1 개의 행이 만들어졌습니다.
 
SQL> 
SQL> INSERT INTO HOME VALUES(3423'Parks''박영권'5300000);
 
1 개의 행이 만들어졌습니다.
 
SQL> 
SQL> INSERT INTO HOME VALUES(3011'Lees''이수민'6400000);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO HOME VALUES(1003'Joos''주민희'4700000);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO HOME VALUES(3427'Chois''최종철'3500000);
 
1 개의 행이 만들어졌습니다.
 
SQL> commit;
 
커밋이 완료되었습니다.
 
SQL> select * from home;
 
    HOMENO HOMENAME   MANAGER             SALARY                                
---------- ---------- --------------- ----------                                
      2106 Kims       김창섭             5000000                                
      3423 Parks      박영권             5300000                                
      3011 Lees       이수민             6400000                                
      1003 Joos       주민희             4700000                                
      3427 Chois      최종철             3500000     
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SQL> ALTER TABLE HOME ADD CONSTRAINT HOME_PK PRIMARY KEY(HOMENO);
 
테이블이 변경되었습니다.
 
SQL> ALTER TABLE HOME DROP COLUMN SALARY;
 
테이블이 변경되었습니다.
 
SQL> DESC HOME;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 HOMENO                                    NOT NULL NUMBER
 HOMENAME                                           VARCHAR2(10)
 MANAGER                                            VARCHAR2(15)
 
SQL> SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME='HOME';
 
TABLE_NAME                     CONSTRAINT_NAME                C                 
------------------------------ ------------------------------ -                 
HOME                           HOME_PK                        P                 
 
SQL> 
SQL> spool off;  
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
QL> CREATE TABLE MANAHOME (
  2  MANAGERNO NUMBER NOT NULL,
  3  HOMENAME VARCHAR2(10UNIQUE,
  4  SALARY NUMBER CHECK(SALARY<=6000000),
  5  JOB VARCHAR2(15DEFAULT '개발자',
  6  PRIMARY KEY(MANAGERNO)
  7  );
 
테이블이 생성되었습니다.
 
SQL> DESC MANAHOME;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 MANAGERNO                                 NOT NULL NUMBER
 HOMENAME                                           VARCHAR2(10)
 SALARY                                             NUMBER
 JOB                                                VARCHAR2(15)
 
SQL> SPOOL OFF;
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
SQL> ALTER TABLE MANAHOME ADD (HNO NUMBER);
 
테이블이 변경되었습니다.
 
SQL> desc manahome;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 MANAGERNO                                 NOT NULL NUMBER
 HOMENAME                                           VARCHAR2(10)
 SALARY                                             NUMBER
 JOB                                                VARCHAR2(15)
 HNO                                                NUMBER
 
 
 
SQL> INSERT INTO MANAHOME VALUES(5454'Kims'5000000'분석가'2106);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MANAHOME VALUES(4215'Lees'4500000'승무원'3011);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MANAHOME VALUES(2452'Joos'3200000'분석가'1033);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MANAHOME(MANAGERNO, HOMENAME, SALARY, HNO) VALUES(4852'Chois'30000003427);
 
1 개의 행이 만들어졌습니다.
 
SQL> select* from manahome;
 
 MANAGERNO HOMENAME       SALARY JOB                    HNO                     
---------- ---------- ---------- --------------- ----------                     
      5454 Kims          5000000 분석가                2106                     
      4215 Lees          4500000 승무원                3011                     
      2452 Joos          3200000 분석가                1033                     
      4852 Chois         3000000 개발자                3427                     
 
SQL> spool off;
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
SQL> SELECT * FROM HOME;
 
    HOMENO HOMENAME   MANAGER                                                   
---------- ---------- ---------------                                           
      2106 Kims       김창섭                                                    
      3423 Parks      박영권                                                    
      3011 Lees       이수민                                                    
      1003 Joos       주민희                                                    
      3427 Chois      최종철                                                    
 
##기존에 MANAHOME에 들어있던 데이터를 잘못 입력 (1033인데 1003으로 잘못)
## 하여 해당 행 수정 후 진행하였습니다
 
 
SQL> UPDATE MANAHOME SET HNO=1003 WHERE MANAGERNO=2452;
 
1 행이 갱신되었습니다.
 
SQL> SELECT * FROM MANAHOME;
 
 MANAGERNO HOMENAME       SALARY JOB                    HNO                     
---------- ---------- ---------- --------------- ----------                     
      5454 Kims          5000000 분석가                2106                     
      4215 Lees          4500000 승무원                3011                     
      2452 Joos          3200000 분석가                1003                     
      4852 Chois         3000000 개발자                3427                     
 
SQL> ALTER TABLE MANAHOME ADD CONSTRAINT MANA_FK FOREIGN KEY(HNO) REFERENCES HOME(HOMENO);
 
테이블이 변경되었습니다.
 
SQL> INSERT INTO MANAHOME VALUES(3235'Lees',2000000,'관리자',1111);
INSERT INTO MANAHOME VALUES(3235'Lees',2000000,'관리자',1111)
*
1행에 오류:
ORA-00001: 무결성 제약 조건(JS.SYS_C0011622)에 위배됩니다 
 
cs


+ Recent posts