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
SQL> CREATE TABLE MAJOR (
  2      MNUM    NUMBER(3NOT NULL,
  3      MNAME VARCHAR2(20NOT NULL,
  4      BUILD VARCHAR2(20),
  5      PRIMARY KEY(MNUM)
  6  );
 
테이블이 생성되었습니다.
 
SQL> INSERT INTO MAJOR VALUES(101,'컴퓨터공학과','정보관');
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MAJOR VALUES(102,'전자공학과','전자제어관');
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MAJOR VALUES(103,'경영학과','인문관');
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO MAJOR VALUES(104,'경제학과');
INSERT INTO MAJOR VALUES(104,'경제학과')
            *
1행에 오류:
ORA-00947: 값의 수가 충분하지 않습니다 
 
 
SQL> INSERT INTO MAJOR (MNUM,MNAME) VALUES(104,'경제학과');
 
1 개의 행이 만들어졌습니다.
 
SQL> select * from major;
 
      MNUM MNAME                BUILD                                           
---------- -------------------- --------------------                            
       101 컴퓨터공학과         정보관                                          
       102 전자공학과           전자제어관                                      
       103 경영학과             인문관                                          
       104 경제학과                                                             
 
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
SQL> CREATE TABLE STUDENT (
  2      SNUM    NUMBER(4NOT NULL,
  3      SNAME VARCHAR2(10NOT NULL,
  4      GRADE NUMBER,
  5  MNUM NUMBER(3),
  6      PRIMARY KEY(SNUM),
  7        FOREIGN KEY(MNUM) REFERENCES MAJOR(MNUM)
  8  );
 
테이블이 생성되었습니다.
 
SQL> desc student;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 SNUM                                      NOT NULL NUMBER(4)
 SNAME                                     NOT NULL VARCHAR2(10)
 GRADE                                              NUMBER
 MNUM                                               NUMBER(3)
 
SQL> INSERT INTO STUDENT VALUES(9411,'서진수',4,101);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9412,'서재수',4,102);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9413,'이미경',4,103);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9414,'김재수',4,102);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9415,'박동호',4,102);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9511,'김신영',3,101);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9512,'신은경',3,102);
 
1 개의 행이 만들어졌습니다.
 
SQL> INSERT INTO STUDENT VALUES(9513,'오나라',3,103);
 
1 개의 행이 만들어졌습니다.
 
SQL> SELECT * FROM STUDENT;
 
      SNUM SNAME           GRADE       MNUM                                     
---------- ---------- ---------- ----------                                     
      9411 서진수              4        101                                     
      9412 서재수              4        102                                     
      9413 이미경              4        103                                     
      9414 김재수              4        102                                     
      9415 박동호              4        102                                     
      9511 김신영              3        101                                     
      9512 신은경              3        102                                     
      9513 오나라              3        103                                     
 
8 개의 행이 선택되었습니다.
 
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
SQL> SELECT SNAME,MNAME FROM STUDENT S, MAJOR M WHERE S.MNUM=E.MNUM;
SELECT SNAME,MNAME FROM STUDENT S, MAJOR M WHERE S.MNUM=E.MNUM
                                                        *
1행에 오류:
ORA-00904"E"."MNUM": 부적합한 식별자 
 
 
SQL> SELECT SNAME,MNAME FROM STUDENT S, MAJOR M WHERE S.MNUM=M.MNUM;
 
SNAME      MNAME                                                                
---------- --------------------                                                 
서진수     컴퓨터공학과                                                         
서재수     전자공학과                                                           
이미경     경영학과                                                             
김재수     전자공학과                                                           
박동호     전자공학과                                                           
김신영     컴퓨터공학과                                                         
신은경     전자공학과                                                           
오나라     경영학과                                                             
 
8 개의 행이 선택되었습니다.
 
SQL> SPOOL OFF;
 
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SQL> SELECT SNAME FROM STUDENT WHERE MNUM=(SELECT MNUM FROM MAJOR WHERE MNAME='전자공학과')
  2  UNION
  3  SELECT SNAME FROM STUDENT WHERE MNUM=(SELECT MNUM FROM STUDENT WHERE SNAME='서진수');
 
SNAME                                                                           
----------                                                                      
김신영                                                                          
김재수                                                                          
박동호                                                                          
서재수                                                                          
서진수                                                                          
신은경                                                                          
 
6 개의 행이 선택되었습니다.
 
SQL> SPOOL OFF;
cs


1
2
3
4
5
6
7
8
9
SQL> SELECT SNAME, SNUM FROM MAJOR M, STUDENT S WHERE M.MNUM=S.MNUM AND (M.MNAME='경영학과' OR M.MNAME='경제학과');
 
SNAME            SNUM                                                           
---------- ----------                                                           
이미경           9413                                                           
오나라           9513                                                           
 
SQL> SPOOL OFF;
 
cs


1
2
3
4
5
6
7
8
9
10
SQL> SELECT SNAME, SNUM FROM STUDENT S WHERE EXISTS
  2  (SELECT MNUM FROM MAJOR M WHERE S.MNUM=M.MNUM AND(M.MNAME='컴퓨터공학과' OR M.MNAME='경제학과'));
 
SNAME            SNUM                                                           
---------- ----------                                                           
김신영           9511                                                           
서진수           9411                                                           
 
SQL> SPOOL OFF
 
cs


+ Recent posts