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
69
70
-- 테이블 생성
CREATE TABLE MEMBERSINFO(
  MI_ID     NVARCHAR2(10),
  MI_PWD    NVARCHAR2(10),
  MI_NAME   NVARCHAR2(5)
)TABLESPACE MEMBERS;
 
-- CONSTRAINT : NOT NULL >> 제약조건이지만 컬럼의 속성 취급
ALTER TABLE MEMBERSINFO
MODIFY MI_ID NVARCHAR2(10NOT NULL;
ALTER TABLE MEMBERSINFO
MODIFY MI_PWD NVARCHAR2(10NOT NULL;
ALTER TABLE MEMBERSINFO
MODIFY MI_NAME NVARCHAR2(5NOT NULL;
 
-- TEST
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES(NULL'1234''홍');
-- 결과 : MI_ID 항목에 값이 NULL이므로 데이터가지 않는다.
 
/*
  CONSTRAINT : PRIMARY KEY
    >> UNIQUE + NOT NULL
    >> 하나의 테이블에 하나만 가능
  CONSTRAINT : UNIQUE
*/
 
ALTER TABLE MEMBERSINFO
MODIFY MI_ID NVARCHAR2(10NULL;
ALTER TABLE MEMBERSINFO
MODIFY MI_PWD NVARCHAR2(10NULL;
ALTER TABLE MEMBERSINFO
MODIFY MI_NAME NVARCHAR2(5NULL;
 
-- UNIQUE : 특정 컬럼에 같은 데이터는 입력 불가 단, NULL은 무제한 입력 가능
-- MI_ID 컬럼의 값은 유일해야 된다.
ALTER TABLE MEMBERSINFO
ADD CONSTRAINT MI_ID_UK UNIQUE(MI_ID);
 
-- TEST
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES(NULL'1234''홍');
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES(NULL'12345''홍');
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES('A''12345''홍');
-- ID컬럼은 NULL을 허용하면 안된다. 
ALTER TABLE MEMBERSINFO
MODIFY MI_ID NVARCHAR2(10NOT NULL;
 
-- PRIMARY KEY : UNIQUE + NOT NULL
-- 기존 제약조건 삭제
ALTER TABLE MEMBERSINFO
DROP CONSTRAINT MI_ID_UK;
 
ALTER TABLE MEMBERSINFO
ADD CONSTRAINT MI_ID_PK PRIMARY KEY(MI_ID);
 
-- PK TEST
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES(NULL'12345''홍');  --> INSERT X
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES('GILDONG''12345''홍');
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES('GILDONG''12345''홍');
 
SELECT * FROM MEMBERSINFO;
SELECT * FROM USER_TABLES;
SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = 'MEMBERSINFO';
SELECT * FROM USER_CONSTRAINTS;
cs


'SQL > ORACLE' 카테고리의 다른 글

생성한 테이블에 데이터 추가하기  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 02  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
테이블 01  (0) 2016.04.29
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
-- 테이블 생성
CREATE TABLE MEMBERSINFO(
  MI_ID     NVARCHAR2(10),
  MI_PWD    NVARCHAR2(10),
  MI_NAME   NVARCHAR2(5)
)TABLESPACE MEMBERS;
 
-- 현재 만들어진 테이블 출력
SELECT * FROM USER_TABLES;
 
-- MEMBERSINFO 테이블의 컬럼속성 출력
SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = 'MEMBERSINFO';
 
-- NULLABLE상태에서의 데이터 입력
-- INSERT INTO [TAB_NAME]([COL_NAME], ..., [COL_NAME]) 
--                 VALUES([VALUE], ..., [VALUE]  );
 
 
-- 데이터를 추가할 때에는 컬럼명의 갯수와 입력할 값의 갯수가 일치 하여야 한다.
INSERT INTO MEMBERSINFO(MI_PWD, MI_ID, MI_NAME) 
  VALUES('GILDONG''1234''홍');  -- 반드시 사용
 
 
-- 추가는 가능하지만 추천하지 않는 예시
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES('GILDONG2''1234'NULL); -- 마지막 값을 NULL로 입력
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD)
  VALUES('GILDONG2''1234'); -- 생성한 컬럼은 3개인데 2개만 추가할경우 
INSERT INTO MEMBERSINFO(MI_ID) 
  VALUES(''); -- 모든 값이 NULL로 추가됨
 
 
-- 잘못된 사용 예
INSERT INTO MEMBERSINFO(MI_ID, MI_PWD, MI_NAME) 
  VALUES('GILDONG2''1234'); -- 추가 안됨
cs


'SQL > ORACLE' 카테고리의 다른 글

테이블 제약조건  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 02  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
테이블 01  (0) 2016.04.29


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
-- 1. sys계정에서 DBA 계정 만들기
-- 아이디가 USER_DBA이고 비밀번호가 1111인 계정 생성
CREATE USER USER_DBA
IDENTIFIED BY "1111";
 
-- CONNECT(연결) 권한과 DBA권한 을 USER_DBA에게 부여
GRANT CONNECT, DBA TO USER_DBA;
 
-- 2. USER_DBA에서 TABLESPACE 생성
/* 
        TABLESPACE
      NAME : MEMBERS                                -- 테이블 스페이스명
      DATAFILE : MEMBERS_DATA1                        -- 생성할 파일명
      PATH : D:\JAVA\ORACLEDATA                        -- 경로
      SIZE : 10M ~ 100M(10M씩 증가)                    -- 크기
*/
 
CREATE TABLESPACE MEMBERS                            -- MEMBERS 테이블 스페이스 생성
DATAFILE 'D:\JAVA\ORACLEDATA\MEMBERS_DATA1.ORA'        -- 경로 지정 오라클에서는 확장자명을 ORA도 사용 가능
SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 100M        -- 처음 크기를 10MB로 설정 10MB가 찰때마다 10MB씩 증가. 최대 100MB까지 확장
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
 
/*
  3. 계정 설정 변경 및 새로운 계정 생성
    3-1    NAME : USER_DBA
        PERMISSION : DBA
        DEFAULT TABLESPACE : MEMBERS
        TEMPORARY TABLESPACE : TEMP
        QUOTA : UNLIMITED
       3-2    NAME : USER_DEV
        PERMISSION : DEVELOPER
        DEFAULT TABLESPACE : MEMBERS
        TEMPORARY TABLESPACE : TEMP
        QUOTA : 50M
*/
-- 3-1. USER_DBA의 TABLESPACE 변경
ALTER USER USER_DBA                                    -- USER_DBA를 변경
DEFAULT TABLESPACE MEMBERS                            -- 기본 테이블스페이스는 MEMBERS
TEMPORARY TABLESPACE TEMP                            -- 임시 저장할 TABLESPACE는 TEMP에 사용
QUOTA UNLIMITED ON MEMBERS;                            -- MEMBERS TABLESPACE 공간을 제한없이 사용가능
 
-- 3-2. USER_DEV 계정생성 및 테이블스페이스 설정
-- USER_DEV에서 생성
CREATE USER USER_DEV
IDENTIFIED BY "1111"
DEFAULT TABLESPACE MEMBERS
TEMPORARY TABLESPACE TEMP
QUOTA 50M ON MEMBERS;
 
-- USER_DEV에게 CONNECT, RESURCE 권한을 부여
GRANT CONNECT, RESOURCE TO USER_DEV;
cs


'SQL > ORACLE' 카테고리의 다른 글

테이블 제약조건  (0) 2016.04.30
생성한 테이블에 데이터 추가하기  (0) 2016.04.30
테이블 02  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
테이블 01  (0) 2016.04.29

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
-- 1. 테이블 수정
--  1) 기본 문법
--    ALTER TABLE [테이블 이름] [해야할 일] ;
--  2) 테이블의 특정 컬럼을 변경
--    last_name -> family_name;
--    ALTER TABLE [테이블 이름] RENAME COLUMN [변경전 이름] TO [변경 후 이름]
--  3) 컬럼 추가
--    부서코드(depart_code), 상여금(commission), 팀 이름(team)
--    ALTER TABLE [테이블 이름] ADD ([추가할 컬럼명] [데이터타입(사이즈)]);
--  4) 컬럼 속성 변경
--    해당 컬럼이 비어있어야 가능하다.
--    ALTER TABLE [테이블 이름] MODIFY [컬럼명][바뀔 데이터 타입];
--  5) 컬럼 삭제
--    ALTER TABLE [테이블 이름] DROP COLUMN [컬럼명];
 
-- 2. 데이터 수정 삭제
--  데이터 삽입
--    INSERT INTO [테이블 명] ([삽입할 컬럼1], [삽입할 컬럼2], ...)
--    VALUES([삽입할 값1], [삽입할 값2], ...);
--  데이터 수정
--    UDPATE [테이블 명] SET [컬럼] = [변경할 값] WHERE [조건]
--  데이터 삭제
--    DELETE FROM [테이블 이름] WHERE [조건];
 
-- 3. 검색2
--  1) AND 조건
--    A와 B를 동시에 만족
--    WHERE [조건 A] AND [조건 B];
--  2) OR 조건
--    A또는 B 둘중 하나를 만족
--    WHERE [조건 A] AND [조건 B];
--  3) 중복 제거
--    SELECT DISTINCT [출력 컬럼] FROM [대상 테이블];
--  4) BETWEEN AND
--    WHERE salary > 2000000 AND salary < 2500000;
--    WHERE salary BETWEEN 2000000 AND 2500000;
--  5) IN
--    조건이 여러개일 경우
--    WHERE family_name='김' OR family_name='이' OR family_name='박';
--    WHERE family_name IN([조건들]);
--    WHERE family_name IN('김','이','박');
--  6) IS NULL / IS NOT NULL
--    SELECT * FROM employees WHERE commission IS NULL;
--    SELECT * FROM employees WHERE commission IS NOT NULL;
--  7) LIKE
--    일부 비슷한 내용을 검색
--    WHERE [컬럼명] LIKE '문자열%';
--    앞자리가 ze 로 시작하는 내용 --> ze%
--      SELECT * FROM employees WHERE email LIKE 'ze%';
--    뒷자리가 com 로 시작하는 내용 --> %com
--      SELECT * FROM employees WHERE email LIKE '%com';
--    자리에 상관 없이 j 와 w 를 포함하는 내용 --> %j%w%
--      SELECT * FROM employees WHERE email LIKE '%j%w%';
--  8) ORDER BY
--    특정 컬럼을 대상으로 [오름차순 | 내림차순] 정렬
--    WHERE ORDER BY [컬럼 이름] [ASC | DESC];
--    SELECT * FROM employees ORDER BY salary DESC; //salary 를 내림차순으로 보여줌
--    SELECT * FROM employees ORDER BY family_name ASC, salary DESC; //family_name 을 오름차순으로 정렬후, 
-- salary를 내림차순으로 보여줌
cs


'SQL > ORACLE' 카테고리의 다른 글

생성한 테이블에 데이터 추가하기  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
테이블 01  (0) 2016.04.29
ORACLE 유저 생성 및 삭제  (0) 2016.04.29


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
-- 테이블 명 : employees
-- first_name : 문자열
-- last_name  : 문자열
-- email      : 문자열
-- mobile     : 문자열
-- salary     : 숫자
-- reg_data   : 날짜
 
-- 테이블 생성
CREATE TABLE employees (
  first_name NVARCHAR2(10),
  last_name NVARCHAR2(3),
  email VARCHAR2(25),
  mobile VARCHAR2(13),
  salary NUMBER(10,0),
  reg_date DATE DEFAULT SYSDATE
);
 
-- 데이터 추가
INSERT INTO employees(first_name, last_name, email, mobile, salary)
  VALUES('길동','홍','gildong@email.com','010-1234-5678','2000000');
 
-- employees 테이블에서 last_name, first_name, salary 항목 보기
SELECT last_name,first_name,salary FROM employees;
 
-- employees 테이블에서 last_name이 '홍'인 사람의 last_name, first_name, salary 항목 보기
SELECT last_name,first_name,salary FROM employees WHERE last_name='홍';
 
-- employees 테이블에서 email 값이 'gildong@email.com'인 것의 모든 항목 보기
SELECT * FROM employees WHERE email='gildong@email.com';
 
-- employees 테이블에서 salary 가 1000000이상인 모든 항목 보기
SELECT * FROM employees WHERE salary > 1000000;
 
-- salary가 1500000보다 크고 2500000만원보다 작은 항목 보기
SELECT * FROM employees WHERE salary > 1500000 and salary < 2500000;
cs


'SQL > ORACLE' 카테고리의 다른 글

생성한 테이블에 데이터 추가하기  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 02  (0) 2016.04.29
테이블 01  (0) 2016.04.29
ORACLE 유저 생성 및 삭제  (0) 2016.04.29


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
-- 1. 테이블 생성
-- CREATE TABLE [테이블 명] (
--    familyname char(20)
--    [컬럼명] [데이터 타입](사이즈),
--    ...
--    [컬럼명] [데이터 타입](사이즈)
-- );
 
--  1) 데이터 타입
--    - 문자
--      - 고정형
--        - CHAR(바이트 수)
--        - NCHAR(글자 수)
 
--      - 가변형
--        - VARCHAR2(바이트 수)
--        - NVARCHAR2(글자 수)
 
--    - 숫자
--        - NUMBER <- 오라클이 알아서 처리
--        - NUMBER(전체자리수, 소숫점 자리수)
 
--    - 날짜
--        - DATE <- 7Byte(yyyy-mm-dd hh:mm:ss:ss)
 
-- 2. 테이블 확인
-- DESC [테이블 명];
 
-- 3. 테이블 삭제
-- DROP TABLE [테이블명];
 
-- 4. 데이터 삽입
-- INSERT INTO [테이블 명](컬럼명1, 컬럼명2, 컬럼명3, ...)
-- VALUES(해당값1, 해당값2, 해당값3, ...);
 
-- 5. 데이터 출력
--  1) 특정 컬럼 출력
--     SELECT [출력할 컬럼] FROM [대상 테이블];
--  2) 특정 조건에 맞는 데이터 출력
--     SELECT [출력할 컬럼] FROM [대상 테이블] WHERE [조건];
--     숫자의 경우는 >, >=, <. <= 등을 사용할 수 있다.
--  3) AND, OR 조건
--     SELECT [출력할 컬럼] FROM [대상 테이블] WHERE [조건 1] AND [조건2]
--     조건1과 조건2를 모두 만족하는 내용만 출력
--     SELECT [출력할 컬럼] FROM [대상 테이블] WHERE [조건 1] OR [조건2]
--     조건1또는 조건2를 만족하는 내용만 출력
--  4) 중복제거
--     SELECT DISTINCT [출력할 컬럼] FROM [대상 테이블];
 
cs



'SQL > ORACLE' 카테고리의 다른 글

생성한 테이블에 데이터 추가하기  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 02  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
ORACLE 유저 생성 및 삭제  (0) 2016.04.29


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
-- 1. DDL (유저생성, 테이블 생성, 뷰 생성 등 ...)
-- CREATE [USER | TABLE | VIEW] ...
-- ALTER (수정) [USER | TABLE | VIEW] ...
-- DROP (삭제) [USER | TABLE | VIEW] ...
 
-- 유저 생성
-- CREATE USER [user_name] IDENTIFIED BY [password] ;
-- ID : dba_user / pw : pass1 생성
-- ID : web_user / pw : pass2 생성
-- ID : user02 / pw : pass3 생성
CREATE USER dba_user IDENTIFIED BY pass1 ;
CREATE USER web_user IDENTIFIED BY pass2 ;
CREATE USER user02 IDENTIFIED BY pass3;
 
-- 유저 확인
-- SELECT [보여줄 컬럼] FORM [대상 테이블] ;
SELECT * FROM dba_users;
SELECT username FROM dba_users;
 
-- 유저정보 변경
-- ALTER USER [유저명] [변경 내용];
-- dba_user의 비밀번호를 dbapass로 변경
ALTER USER dba_user IDENTIFIED BY dbapass;
-- web_user의 비밀번호를 pass로 변경
ALTER USER web_user IDENTIFIED BY pass;
 
-- 유저 삭제
-- DROP USER [유저이름] ;
DROP USER user02;
 
-- 권한 부여
-- GRANT [권한] TO [대상 유저];
-- 누구에게 어떤 권한을 주는가
-- WEB_USER 에게 CONNECT 권한 부여
GRANT connect TO web_user;
--DBA_USER에게 CONNECT 권한 부여
GRANT connect,dba TO dba_user;
 
--권한회수
-- REVOKE [권한] FROM [대상유저];
-- WEB_USER에게 CONNECT권한 회수
REVOKE connect FROM web_user;
cs


'SQL > ORACLE' 카테고리의 다른 글

생성한 테이블에 데이터 추가하기  (0) 2016.04.30
계정생성 및 TABLESPACE 만들기  (0) 2016.04.29
테이블 02  (0) 2016.04.29
테이블 예제 01  (0) 2016.04.29
테이블 01  (0) 2016.04.29

+ Recent posts