'DataBase/Oracle'에 해당되는 글 6건

  1. 2018.04.09 Oracle 시퀀스 추가하기
  2. 2018.03.06 Oracle 자기자신 관계맺는 소스
  3. 2018.03.06 오라클 sysdate 포맷형식
  4. 2018.03.02 Oracle 사용자 생성
  5. 2018.02.27 SQL 명령문
  6. 2018.02.23 Oracle user 생성

새 Sequence 추가하기


1. Oracle SQL Developer 접속 후 원하는 User 접속한 다음 아래와 같이 시퀀스 - 새 시퀀스 클릭



2. 이름과 다음으로 시작, 증분을 적고 확인을 누른다.




이름 : 보통 SEQ_이름으로 입력

다음으로 시작 : 이 수를 기준으로 시작됨

증분 : 1 적을 경우 1씩 증가


아래와 같이 추가됨



'DataBase > Oracle' 카테고리의 다른 글

Oracle 자기자신 관계맺는 소스  (0) 2018.03.06
오라클 sysdate 포맷형식  (0) 2018.03.06
Oracle 사용자 생성  (0) 2018.03.02
SQL 명령문  (0) 2018.02.27
Oracle user 생성  (0) 2018.02.23
Posted by 조원오
:

ALTER TABLE TB_BOARD_MAP

    ADD

        CONSTRAINT FK_MAP_TO_MAP

        FOREIGN KEY (

            PAR_MAP_ID

        )

        REFERENCES TB_BOARD_MAP (

            MAP_ID

            );

'DataBase > Oracle' 카테고리의 다른 글

Oracle 시퀀스 추가하기  (0) 2018.04.09
오라클 sysdate 포맷형식  (0) 2018.03.06
Oracle 사용자 생성  (0) 2018.03.02
SQL 명령문  (0) 2018.02.27
Oracle user 생성  (0) 2018.02.23
Posted by 조원오
:

-- TO_DATE : 문자열을 받아서 날짜타입으로 변환 -- TO_CHAR : 날짜타입을 문자열로 변환 -- 1. 시스템시간을 이용해서 문자열을 반환한다. SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHHmmss') as curDate FROM dual -- 2. 문자열을 특정 포맷에 맞게 출력한다. -- 문자열을 DATE로 변환후에 다시 포맷에 맞게 문자열로 변환 SELECT TO_CHAR(TO_DATE('201111031452','YYYYMMDDHH24MISS'),'YYYY.MM.DD') FROM DUAL

'DataBase > Oracle' 카테고리의 다른 글

Oracle 시퀀스 추가하기  (0) 2018.04.09
Oracle 자기자신 관계맺는 소스  (0) 2018.03.06
Oracle 사용자 생성  (0) 2018.03.02
SQL 명령문  (0) 2018.02.27
Oracle user 생성  (0) 2018.02.23
Posted by 조원오
:
CREATE USER test IDENTIFIED BY "1234"
DEFAULT TABLESPACE TBS_DATA
TEMPORARY TABLESPACE TBS_TEMP
QUOTA UNLIMITED ON TBS_CLOB
QUOTA UNLIMITED ON TBS_DATA
QUOTA UNLIMITED ON TBS_IDX;

GRANT CONNECT TO test ;
GRANT RESOURCE TO test ;
GRANT DBA TO test ;


'DataBase > Oracle' 카테고리의 다른 글

Oracle 시퀀스 추가하기  (0) 2018.04.09
Oracle 자기자신 관계맺는 소스  (0) 2018.03.06
오라클 sysdate 포맷형식  (0) 2018.03.06
SQL 명령문  (0) 2018.02.27
Oracle user 생성  (0) 2018.02.23
Posted by 조원오
:

SQL 명령문

DataBase/Oracle 2018. 2. 27. 12:19 |
  • Select - 테이블 검색

SELECT  [검색할 컬럼 입력] FROM [Table Name];


  • Select Distinct -중복된 값을 제거 한 후 검색

SELECT Distinct [검색할 컬럼 입력] FROM [Table Name];


[검색할 컬럼 입력]에 들어간 컬럼의 중복을 제거한 후 보여준다.

SELECT [검색할 컬럼 입력] FROM [Table Name] GROUP BY [컬럼 입력];

[컬럼 입력]에 들어간 컬럼의 중복을 제거한 후 정렬해서 보여준다.

    • Where - 필터링하는 용도

    SELECT [검색할 컬럼 입력]

    FROM [table_name]
    WHERE [필터링 할 컬럼]=[값];

        • And, Or,  Not - where절에 결합하여 사용하는 연산자

        SELECT [검색할 컬럼 입력]

        FROM [table_name]
        WHERE [필터링 할 컬럼]=[값], AND|OR|NOT [필터링 할 컬럼2]=[값2];

        AND는 WHERE에 구분 된 모든 조건이 TRUE인 것만 검색
        OR는 WHERE에 구분 된 조건 중 하나만 TRUE인 것만 검색
        NOT는 조건이 참이 아닌 경우 검색

        • Order By - 오름차순, 내림차순으로 정렬

        SELECT * FROM [table_name]

        ORDER BY [컬럼1] ASC, [컬럼2] DESC;

        [컬럼1]은 오름차순으로 정렬, [컬럼2]은 내림차순으로 정렬한다.

        • Insert Into - 값 추가

        INSERT INTO [table_name](column1, column2, column3, ...)

        VALUES (value1, value2, value3, ...);

        해당 컬럼에 해당되는 값을 추가할 수 있다.

        • Null Values - Null 값 찾기

        SELECT column_names

        FROM table_name
        WHERE column_name IS NULL;

        =이 아닌 IS를 사용 NULL 의 반대로 NOT NULL 사용 가능

        • Update - 수정

        UPDATE table_name

        SET column1 = value1, column2 = value2, ...
        WHERE columnX = valueX;

        에 WHERE문에서 columnX의 valueX에 해당하는 조건에서 column1을 value1로, column2을 value2로 수정한다.

        ※ WHERE문을 작성 안 할 경우 전부 다 수정되기 때문에 조심해야 한다.
        WHERE문 반드시 작성

        • Delete -삭제

        DELETE FROM table_name
        WHERE [column]=[value];
        column에 속한 value 값을 제거한다.

        • Select Top - 수 지정
          1. MySQL

            SELECT column_name(s)
            FROM table_name
            WHERE condition
            LIMIT number;

          2. Oracle

            SELECT column_name(s)
            FROM table_name
            WHERE ROWNUM <= number;

        • Min and Max - 가장 작은 값과 큰 값을 보여줌
        SELECT MIN(column_nameAS BestMin
        FROM table_name;


        table_name이라는 테이블에서 column_name 컬럼의 가장 작은 값을 BestMin이라는 표로 보여준다.

        • Count, Avg, Sum
        SELECT COUNT(column_nameFROM table_name;

        SELECT AVG(column_nameFROM table_name;

        SELECT SUM(column_nameFROM table_name;

        위와 같이 COUNT는 column_name의 갯수, AVG는 평균, SUM은 합을 구할 수 있다.

        • Like -패턴 검색
        SELECT column1, column2, ...
        FROM table_name
        WHERE columnN LIKE pattern;

        columnN에 해당하며, pattern을 통해 검색

        LIKE 구문

        의미 

         LIKE 'a%'

         a로 시작하는 값을 찾는다. 

         LIKE '%a'

         a로 끝나는 값을 찾는다.

         LIKE '%a%'

         a이 있는 값을 찾는다.


        • In - or 조건과 같은 뜻

        WHERE column_name IN (value1, value2, ...);
        또는
        WHERE column_name IN (SELECT STATEMENT);

        ex)
        SELECT * FROM Customers
        WHERE Country IN ('Germany''France''UK');

        Country 컬럼에 'Germany', 'France', 'UK' 가 1개라도 있으면 검색

        SELECT * FROM Customers
        WHERE Country NOT IN ('Germany''France''UK');

        Country 컬럼에 'Germany', 'France', 'UK' 가 없으면 검색

        SELECT * FROM Customers
        WHERE Country IN (SELECT Country FROM Suppliers);

        Suppliers 이름의 테이블에서 Country 값과 같은 Customers테이블 Country을 보고 Customers 전체 컬럼 검색

        • Between - 범위 선택

        SELECT *

        FROM table_name
        WHERE column_name BETWEEN value1 AND value2;

        column_name에 있는 값 value1와 value2 사이에 있는 값 검색

        • Aliases - 별칭 입력 AS사용

        SELECT column_name AS alias_name

        FROM table_name;

        SELECT column_name(s)
        FROM table_name AS alias_name;

        AS 사용으로 column_name 별칭을 alias_name으로 바꿈
        AS 사용으로 table_name 별칭을 alias_name으로 바꿈

        ※ 별칭에 공백이 있을 경우 큰따옴표 또는 []가 필요하다.

        • Inner Join - 두 개 이상의 테이블의 행을 결합 (Inner 생략 가능)

        SELECT Orders.OrderID, Customers.CustomerName, rgb(255, 187, 0).OrderDate

        FROM Orders
        INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

        Orders와 Customers의 CustomerID가 일치하는 값의 OrderID, CustomerName, OrderDate를 검색한다.

        • Left Join - 두 개 이상의 테이블의 행을 결합하며, null도 검색

        SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
        FROM Orders
        LEFT JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

        Orders와 Customers의 CustomerID를 연동하여 OrderID, CustomerName, OrderDate를 검색한다. 연동되지 않은 것들은 null로 모두 검색

        보통 count 할 때 사용
        SQL LEFT JOIN

        • Right Join

        SELECT column_name(s)

        FROM table1
        RIGHT JOIN table2 ON table1.column_name = table2.column_name;

        SQL RIGHT JOIN

        • Full Join

        SELECT column_name(s)

        FROM table1
        FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
        SQL FULL OUTER JOIN

        • Self Join

        SELECT column_name(s)

        FROM table1 T1, table1 T2
        WHERE condition;

        select문에 T1.컬럼 , T2.컬럼으로 가져올 수 있다.

        • Union - 다른 테이블에 있는 내용을 한 열에 입력

        SELECT column_name(s) FROM table1

        UNION
        SELECT column_name(s) FROM table2;

        table1에 있는 column_name과 table2의 column_name이 한 열에 검색

        • Group By - 그룹화

        SELECT count(status), role

        FROM tb_user
        GROUP BY role;

        role에 'user'와 'admin'의 status 개수를 그룹화 해서 검색

        • Having - 필터링 용도

        SELECT count(status), status, role

        FROM tb_user
        GROUP BY role;
        HAVING COUNT(status) > 5;

        'user'와 'admin'의 status 개수 중 5개 이상인 것만 검색 

        • Exists - 존재유무

        SELECT column_name(s)
        FROM table_name
        WHERE EXISTS
        (SELECT column_name FROM table_name WHERE username="홍길동");

        EXISTS 안에 username이 홍길동인 값이 있으면 true를 반환하여 column_name(s)를 출력한다.
        • Any, All - Any는 하나 이상, All은 모든 값이 만족해야 참


        SELECT column_name(s)
        FROM table_name
        WHERE sal 
        ANY|ALL (950, 3000, 1250);

        ANYsal 컬럼 값이 950 or 3000 or 1250일 경우 true 반환하여 출력
        ALL sal 컬럼 값이 950 and 3000 and 1250일 경우 true 반환하여 출력

        이해되지 않을경우 서브쿼리사용방법 클릭
        • Select Into

        다음 SQL 문은 Customers 백업 복사본을 만듭니다.

        SELECT * INTO CustomersBackup2017
        FROM Customers;

        다음 SQL 문은 IN 절을 사용하여 테이블을 다른 데이터베이스의 새 테이블에 복사합니다.

        SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
        FROM Customers;

        다음 SQL 문은 몇 개의 열만 새 테이블에 복사합니다.

        SELECT CustomerName, ContactName INTO CustomersBackup2017
        FROM Customers;

        다음 SQL 문은 독일 고객 만 새 테이블로 복사합니다.

        SELECT * INTO CustomersGermany
        FROM Customers
        WHERE Country = 'Germany';

        다음 SQL 문은 둘 이상의 테이블의 데이터를 새 테이블로 복사합니다.

        SELECT Customers.CustomerName, Orders.OrderID
        INTO CustomersOrderBackup2017
        FROM Customers
        LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

        팁 : SELECT INTO를 사용하여 다른 테이블의 스키마를 사용하여 빈 테이블을 새로 만들 수도 있습니다. 쿼리가 데이터를 반환하지 않게하는 WHERE 절을 추가하기 만하면됩니다.

        SELECT * INTO newtable
        FROM oldtable
        WHERE 1 = 0;
        • Insert Into Select

        INSERT INTO Customers (CustomerName, City, Country)

        SELECT SupplierName, City, Country FROM Suppliers;

        INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
        SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;

        INSERT INTO Customers (CustomerName, City, Country)
        SELECT SupplierName, City, Country FROM Suppliers
        WHERE Country='Germany';
        Suppliers테이블을 복사해서 Customers테이블로 붙여넣는다.
        • Null Function

          1. MySQL

            SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
            FROM Products

          2. Oracle

            SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
            FROM Products



        'DataBase > Oracle' 카테고리의 다른 글

        Oracle 시퀀스 추가하기  (0) 2018.04.09
        Oracle 자기자신 관계맺는 소스  (0) 2018.03.06
        오라클 sysdate 포맷형식  (0) 2018.03.06
        Oracle 사용자 생성  (0) 2018.03.02
        Oracle user 생성  (0) 2018.02.23
        Posted by 조원오
        :

        Oracle user 생성

        DataBase/Oracle 2018. 2. 23. 10:51 |
        CREATE USER test IDENTIFIED BY "1234"
        DEFAULT TABLESPACE TBS_DATA        // 논리적인 테이블스페이스 name
        TEMPORARY TABLESPACE TBS_TEMP    // TEMPORARY 테이블스페이스 name
        QUOTA UNLIMITED ON TBS_CLOB        // 해당 테이블스페이스에 무제한으로 용량 받음 
        QUOTA UNLIMITED ON TBS_DATA
        QUOTA UNLIMITED ON TBS_IDX;

        GRANT CONNECT TO test ;               // 권한부여
        GRANT RESOURCE TO test ;
        GRANT DBA TO test ;


        'DataBase > Oracle' 카테고리의 다른 글

        Oracle 시퀀스 추가하기  (0) 2018.04.09
        Oracle 자기자신 관계맺는 소스  (0) 2018.03.06
        오라클 sysdate 포맷형식  (0) 2018.03.06
        Oracle 사용자 생성  (0) 2018.03.02
        SQL 명령문  (0) 2018.02.27
        Posted by 조원오
        :