[ Oracle DB ] ํจ์ | ๋ด์ฅํจ์ | ์ง๊ณํจ์ | ๋จ์ผํ ํจ์ | ๋ณํํจ์ | ์ฌ์ฉ์ ์ ์ ํจ์
- -
ํจ์ (function)
1. ๋ด์ฅํจ์(=sqlํจ์)
1)์ง๊ณํจ์(=๋ณต์ํํจ์) ->sum,avg,๋งฅ์๋ฉ,๋ฏธ๋๋ฉ. ...๋ฑ..
2)๋จ์ผํ ํจ์
-๋ฌธ์ํ(char, varchar2)ํจ์
:upper,lower,length,concat,substr, lpad, rpad, lterim,rtrim
- ์ซ์ํ(number)ํจ์
- ๋ ์งํ(date)ํจ์
:sysdate
-๋ณํํจ์
to_date to_number
๋ ์ง <------ ๋ฌธ์ -------> ์ซ์
-------> <-------
to_char to_char
* ๋ชฉ์ ์ด ๋๋ ์ชฝ์ ํ์ ์ ์ ์ผ๋ฉด ๋๋ค.
- null ํจ์
: ์๋ ค์ง์ง ์๊ฑฐ๋ ๋๋ฝ๋์์ ๋ ์ฌ์ฉํ๋ค. ==> ์ ํํ๊ฒ ํด์ผํ๋ค. ๋ฐ์ดํฐ์์ ๋๊ฐ์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๋ค.
-decodeํจ์, case๋ฌธ
:์ ์ฐจ์ x ์งํฉ์ ์ฌ๊ณ , oracle advanced ๊ธฐ๋ฅ
2.์ฌ์ฉ์ ์ ์ ํจ์
๋ฌธ์ํ ํจ์
show user
desc user_objects
select object_name, object_type
from user_objects;
desc user_tables
select table_name, tablespace_name
from user_tables;
desc user_constraints
select owner, constraint_name,
constraint_type,table_name,search_condition,r_constraint_name
from user_constraints;
alter table emp --table name
add constraint pk_emp_empno primary key(empno); --ํ๋ผ์ด๋จธ๋ฆฌํค๋ฅผ ์ถ๊ฐ ํ๋ ๊ฒ
alter table dept --table name
add constraint pk_dept_deptno primary key(deptno); --ํ๋ผ์ด๋จธ๋ฆฌํค๋ฅผ ์ถ๊ฐ ํ๋ ๊ฒ
alter table emp
add constraint fk_emp_deptno
foreign key(deptno) references dept(deptno); --์ฐธ์กฐ
desc user_tab_columns
select table_name, column_name, data_type
from user_tab_columns
order by 1 asc,2 desc; --position number
--
desc user_cons_columns
select constraint_name, table_name, column_name
from user_cons_columns;
desc user_objects
select object_name,object_type
from user_objects;
select table_name
from user_tables;
show recyclebin --sql+๋ช
๋ น์ด
purge recyclebin; -- ํด์งํต:์๊ตฌ์ ์ผ๋ก ๋ฒ๋ฆฐ๋ค๋ ๊ฒ.sql๋ช
๋ น์ด
select owner, constraint_name,
constraint_type,table_name,search_condition,r_constraint_name
from user_constraints;
select constraint_name, table_name,column_name
from user_cons_columns;
select b.constraint_name, b.table_name, b.column_name,
a.constraint_type
from user_constraints a join user_cons_columns b --table๋ช
์ฌ์ด์ฌ์ด๋ฅผ ๋ค join๊ฑธ์ด์ค.(defult = ๋ด๋ถ์กฐ์ธ, ์์ํฐ ์กฐ์ธ๋ ํ ์ ์์)
on a.constraint_name=b.constraint_name --join ํ ๋ค ๋ธ๋ฆฟ์ง ๋๋ ์ , ์ฆ ์ปจ์คํธ๋ ์ดํธ ๋ค์์ด ์ฃผ๊ฐ ๋๋ ๊ฒ. ํ
์ด๋ธ ์ด๋ฆ์ ์์ ์จ์ฃผ์ด์ผ ์๋ฌ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ a,b๋ก ๊ฐ๋จํ ํ์ํด์ฃผ๋ ๊ฒ.
order by 2,3;
select *
from emp;
desc emp
select * from dept;
select * from bonus;
select * from salgrade;
select upper('abc') from dual; --๋๋ฌธ์๋ก ๋ฐ๋
select length('abc') from dual;
select concat('abc','defg') from dual;
select 'abc'||'defg' from dual; --concat๊ณผ ๋์ผํ ํํ
select substr('abcedf',2,3) from dual;
select lpad('abcdef',10,'-') from dual; --padding๊ฐ์ ๋๋(default๊ณต๋ฐฑ์ผ๋ก ๋ถ์กฑํ ๋ถ๋ถ์ด ์ฑ์์ง, 3๋ฒ์งธ ์ธ์๋ก ์ง์ ํด ์ค ์๋ ์์.)
--๊ฒฐ๊ตญ ์ค๋ฅธ์ชฝ ์ ๋ ฌ์
select rpad('abcdef',10) from dual; --padding๊ฐ์ ๋๋(default๊ณต๋ฐฑ์ผ๋ก ๋ถ์กฑํ ๋ถ๋ถ์ด ์ฑ์์ง, 3๋ฒ์งธ ์ธ์๋ก ์ง์ ํด ์ค ์๋ ์์.)
--๊ฒฐ๊ตญ ์ผ์ชฝ ์ ๋ ฌ์
--์ค์ผ ๋ ์ฆ ์ง๋ฅผ ๋๋ ๋ค์์๋ถํฐ ์์ ๊ธฐ ๋๋ฌธ์ ๋ณ๋ก ์ถ์ฒํ์ง ์๋ ๋ฐฉ๋ฒ.
select length(rtrim('abcd ')) from dual;
select ltrim(' accc') from dual;
select ename,sal
from emp
where upper(ename)='SMITH';
select empno,lpad(ename,10),'$'||rpad(sal,10) from emp
--๋ณํํจ์
select sysdate from dual;
select to_char(sysdate,'mon') from dual; --mm, dd, dayํ๋ฉด ์,์ผ,์์ผ ๋์ด.
--mm = 03๋์ค๊ณ , mon = 3์์ด๋ผ๊ณ ๋์ด.
--์๋ ์์ ์์ '' ์์ ๋ค์ด์๋ ๋ ์ง๋ => ๋ฌธ์ํ์
select to_char(to_date('80/12/24','rr/mm/dd'),'yyyy') from dual; --rr์ ๋ํดํธ , 50๋
๋ณด๋ค ๋ฎ์ผ๋ฉด 2000๋
๋ ์ด์์ด๋ฉด 1900๋
๋๋ก ์ธ์
select to_char(to_date('80/12/24','yy/mm/dd'),'yyyy') from dual; --๊ฒฐ๊ณผ 2080,yy๋ 2000๋
๋๋ก ๋ฌด์กฐ๊ฑด ์ธ์.
select to_char(to_date('10/3/21','yy/mm/dd'),'yy-mon-dd') from dual;
select to_char(sysdate,'dd-mon-yy') from dual;
select ename,hiredate,to_char(hiredate,'day')as "์์ผ" from emp where to_char(hiredate,'day')='์์์ผ'or to_char(hiredate,'day')='๊ธ์์ผ';
-- as ๋ ์์ผ์ด๋ผ๋ ์ปฌ๋ผ ๋ช
์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ.
-- where to_char(hiredate,'day') in ('์์์ผ','๊ธ์์ผ');
์ด ์์ ์ฝ๋์ด๋, ํ ์ค์ฉ ์คํํด๋ณด๋ฉฐ ์ค์ตํด๋ณด๋๋ก ํ์.
Oracle SQL Developer๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธํด๋ณด๋ฉด ํจ์ฌ ๋์ ์ ๋ค์ด์ค๋ ์ค์ตํด๋ณด๊ธธ ๋ฐ๋๋ค.
++ ์ด ์ฝ๋
์๋๋ sys_user.sql์ด๋ฉฐ ๋ฐ๋ก ์์ ๊ธด ๋ฌธ์ํ ํจ์ ์ฝ๋๊ฐ scott_user.sql ์ฝ๋์ด๋ค.
demo_scott.sql ํ์ผ์ lucete1230-cyberpolice.tistory.com/431?category=0 ์ด ์ฌ์ดํธ์ ๊ธฐ์ฌ๋์ด ์๋ค.
select sysdate
from dual;
show user
show parameter nls
alter session set nls_date_format=
'yyyy/mm/dd hh:mi:ss';
desc dba_users
select username,password, account_status
from dba_users
where username in ('SCOTT','HR');
alter user scott identified by tiger
account unlock;
conn scott/tiger
show user
desc v$instance
select instance_name, host_name, status
from v$instance;
nevertrustbrutus.tistory.com/370
๋ฌธ์ํ ํจ์์ ๊ด๋ จ๋ ์์ ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด ์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
'IT & Security > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
[DB] ์ค๋ผํด ์๋ธ์ฟผ๋ฆฌ ์์ 2021.04.13
-
[Oracle DB] ์ง๊ณํจ์ | Join 2021.03.26
-
[ Oracle DB] scott ์คํค๋ง ์ค์นํ๊ธฐ, ์ ์ฝ ์กฐ๊ฑด ์ค์ ํ๊ธฐ ,์ ์ฝ์กฐ๊ฑด ์คํค๋ง , ์ ์ฝ ์กฐ๊ฑด ํ์ธํ๊ธฐ 2021.03.10
-
[Oracle DB] ์ฌ์ฉ์ ์ ๋ณด ํ์ธ, ์ค๋ ๋ ์ง ํ์ธํ๊ธฐ, ํ๊ฒฝ ๋ณ์ ํ์ธ&๋ณ๊ฒฝํ๊ธฐ , ์์คํ ๋ทฐ 2021.03.10
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค