티스토리 뷰
1. SQL Command
- SQL 명령 언어를 사용하면 데이터베이스의 데이터를 조작할 수 있습니다. SQL 명령은 (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/index.html) 해당 링크를 참고하면 됩니다. SQL의 목적은 Oracle Database와 같은 관계형 데이터베이스에 대한 인터페이스를 제공하는 것이며 모든 SQL 문은 데이터베이스에 대한 명령입니다. 이 SQL은 C 및 BASIC과 같은 범용 프로그래밍 언어와 다릅니다. 역할은 다음과 같습니다.
- Querying data
- Inserting, updating, and deleting rows in a table
- Creating, replacing, altering, and dropping objects
- Controlling access to the database and its objects
- Guaranteeing database consistency and integrity
- 예:
SELECT EMPLOYEE_ID, LAST_NAME, JOB_ID, SALARY
FROM EMP_DETAILS_VIEW WHERE SALARY > 12000;
EMPLOYEE_ID LAST_NAME JOB_ID SALARY
----------- ------------------------- ---------- --------------
100 King AD_PRES $24,000
101 Kochhar AD_VP $17,000
102 De Haan AD_VP $17,000
145 Russell SA_MAN $14,000
146 Partners SA_MAN $13,500
201 Hartstein MK_MAN $13,000
6 rows selected.
- 모든 주요 관계형 데이터베이스 관리 시스템(RDBMS)은 SQL을 지원하므로 SQL로 얻은 모든 기술을 한 데이터베이스에서 다른 데이터베이스로 옮길 수 있습니다. 또한 SQL로 작성된 모든 프로그램은 이식성이 있습니다. 그들은 종종 거의 수정 없이 한 데이터베이스에서 다른 데이터베이스로 이동할 수 있습니다.
- 참고로 SQL 함수는 Oracle Database에 내장되어 있으며 다양한 적절한 SQL 문에서 사용할 수 있습니다. SQL 함수를 PL/SQL로 작성된 사용자 정의 함수와 혼동하지 마십시오.
SQL 함수가 예상하는 데이터 유형이 아닌 데이터 유형의 인수를 사용하여 SQL 함수를 호출하면 Oracle은 SQL 함수를 수행하기 전에 인수를 예상 데이터 유형으로 변환하려고 시도합니다.- 예: 단일행 함수: 숫자형 - ABS, ACOS, ASIN, ATAN, ATAN2, BITAND, CEIL, COS, COSH, EXP, FLOOR, LN, LOG, ,MOD, NANVL, POWER, REMAINDER, ROUND (number), SIGN, SIN, SINH, SQRT, TAN, TANH, , TRUNC (number), WIDTH_BUCKET
- 문자형 - CHR, CONCAT, INITCAP, LOWER, LPAD, LTRIM, NCHR, NLS_INITCAP, NLS_LOWER, NLS_UPPER, NLSSORT, REGEXP_REPLACE, REGEXP_SUBSTR, REPLACE, RPAD, RTRIM, SOUNDEX, SUBSTR, TRANSLATE, TRANSLATE ... USING, TRIM, UPPER
- 이 외에도 수많은 함수 존재
- SQL 명령은 ;(세미콜론), /(슬래시), 빈 줄을 딜리미터로 사용할 수 있습니다.
2. PL/SQL Block
- SQL의 Oracle 절차적 확장인 PL/SQL은 이식 가능한 고성능 트랜잭션 처리 언어입니다.
- 참고 (https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/index.html)
- PL/SQL을 사용하면 SQL 쿼리를 실행하고 결과 집합의 행을 한 번에 하나씩 처리할 수 있습니다.
기본 루프를 사용하거나 개별 문을 사용하여 쿼리를 실행하고 결과를 검색하고 처리를 완료하여 프로세스를 정확하게 제어할 수 있습니다. - 예:
BEGIN
FOR someone IN (
SELECT * FROM employees
WHERE employee_id < 120
ORDER BY employee_id
)
LOOP
DBMS_OUTPUT.PUT_LINE('First name = ' || someone.first_name ||
', Last name = ' || someone.last_name);
END LOOP;
END;
/
3. SQL*Plus Command
- SQL*Plus 명령은 나머지 둘과 달라서 구분자로 세미콜론이 필요하지 않습니다. 라인을 변경할 때는 -(하이픈)을 입력합니다. 반면 SQL 구문에 하이픈을 쓰면 해당 문자는 무시됩니다.
- SQL*Plus 명령을 사용하여 SQL 명령 및 PL/SQL 블록을 조작하고 쿼리 결과를 형식화하고 인쇄할 수 있습니다. SQL*Plus는 SQL*Plus 명령을 SQL 명령 또는 PL/SQL 블록과 다르게 처리합니다.
명령 입력 속도를 높이기 위해 많은 SQL*Plus 명령을 축약할 수 있습니다.
예:
COLUMN SALARY FORMAT $99,999 HEADING 'MONTHLY SALARY'
- 그 밖에 SHOW, HOST, SET 등의 명령어가 있습니다.
- 전체 명령어 참고 (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqpug/index.html)
'Database > Oracle Database' 카테고리의 다른 글
[오라클] buffer busy wait 조회 (0) | 2022.02.27 |
---|---|
[오라클] 오브젝트 락 걸렸을 때 오브젝트 찾고 세션 킬하는 방법 (0) | 2022.02.26 |
[오라클] 다른 데이터베이스로 impdp 사용해 데이터 밀어넣는 방법 (0) | 2022.02.24 |
[SQL*Plus] 윈도우 영문 버전 sql*plus 한글 깨짐 문제 해결 방법 (0) | 2022.02.22 |
[오라클] parfile 파라미터 사용 실습 예제 (0) | 2022.02.22 |