1.Å×À̺í»ý¼º 1)»ý¼º±ÇÇÑÀÌ Á¸ÀçÇØ¾ß ÇÔ conn scott/tiger select * from user_sys_privs; select * from role_sys_privs; 2)¿©À¯°ø°£ÀÌ ÀÖ¾î¾ß ÇÔ. select tablespace_name,sum(bytes) from user_free_space group by tablespace_name; conn /as sysdba select tablespace_name,file_name from dba_data_files; ** select table_name from dictionary where table_name like '%PRIV%'; 3)»õ·Î¿î Å×ÀÌºí½ºÆäÀ̽º¸¦ »ý¼ºÇؼ­ ±×°÷¿¡ Å×À̺íÀ» »ý¼º conn /as sysdba create tablespace newtbs datafile 'D:\oraclexe\oradata\XE\newtbs01.dbf' size 500k; ==> ¹°¸®ÀûÀÎ ÆÄÀÏÀÌ »ý¼ºµÊÀ» È®ÀÎ select * from dba_tablespaces where tablespace_name='NEWTBS'; ==>Å×ÀÌºí½ºÆäÀ̽ºÀÇ ±âº»¼Ó¼º È®ÀÎ select * from dba_data_files where tablespace_name='NEWTBS'; ==>TS¸¦ ±¸¼ºÇÏ´Â ÆÄÀϼӼº È®ÀÎ select * from user_free_space where tablespace_name='NEWTBS'; ==>¿©À¯°ø°£ È®ÀÎ ** »õ·Î¿î Å×À̺íÀ» »ý¼º À̸§ :employees (scott°èÁ¤ ¼ÒÀ¯) Ä÷³ :empno number(2) primary key, ename varchar2(20) unique, sal number(10) 600~ 9000»çÀÌÀÇ °ª¸¸ Çã¿ë, job varchar2(30) not null, deptno number(2) foreign key·Î¼­ deptÅ×À̺íÀÇ deptnoÄ÷³ÀÇ °ªÀ» ÂüÁ¶ÇÒ¼ö ÀÖµµ·Ï ¼³Á¤. CREATE TABLE scott.employees (empno NUMBER(2) CONSTRAINT employees_empno_pk PRIMARY KEY, ename VARCHAR2(20) CONSTRAINT employees_ename_uk UNIQUE, sal NUMBER(10) CONSTRAINT employees_sal_ck CHECK(sal between 600 and 9000), job VARCHAR2(30) CONSTRAINT employees_job_nn NOT NULL, deptno NUMBER(2) CONSTRAINT employees_deptno_fk REFERENCES scott.dept(deptno)) / select * from dba_tables where table_name='EMPLOYEES' and owner='SCOTT'; select * from dba_users where username='SCOTT'; drop table scott.employees; CREATE TABLE scott.employees (empno NUMBER(2) CONSTRAINT employees_empno_pk PRIMARY KEY, ename VARCHAR2(20) CONSTRAINT employees_ename_uk UNIQUE, sal NUMBER(10) CONSTRAINT employees_sal_ck CHECK(sal between 600 and 9000), job VARCHAR2(30) CONSTRAINT employees_job_nn NOT NULL, deptno NUMBER(2) CONSTRAINT employees_deptno_fk REFERENCES scott.dept(deptno)) TABLESPACE newtbs; CREATE TABLE scott.employees (empno NUMBER(2) , ename VARCHAR2(20) , sal NUMBER(10) CONSTRAINT employees_sal_ck CHECK(sal between 600 and 9000), job VARCHAR2(30) CONSTRAINT employees_job_nn NOT NULL, deptno NUMBER(2) , CONSTRAINT employees_empno_pk PRIMARY KEY(empno), CONSTRAINT employees_ename_uk UNIQUE(ename), CONSTRAINT employees_deptno_fk FOREIGN KEY (deptno) REFERENCES scott.dept(deptno)) INSERT INTO scott.employees(empno,ename,sal,job,deptno) VALUES(1,'A',500,'ANALYST',10); ==>? INSERT INTO scott.employees(empno,ename,sal,job,deptno) VALUES(1,'A',600,'ANALYST',60); ==>? INSERT INTO scott.employees(empno,ename,sal,job,deptno) VALUES(1,'A',600,'ANALYST',10); ALTER TABLE scott.employees DISABLE PRIMARY KEY; ALTER TABLE scott.employees DISABLE unique(ename); ALTER TABLE scott.employees DISABLE CONSTRAINT employees_sal_ck; ALTER TABLE scott.employees DISABLE CONSTRAINT employees_job_nn; ALTER TABLE scott.employees DISABLE CONSTRAINT employees_deptno_fk; INSERT INTO scott.employees(empno,ename,sal,job,deptno) VALUES(1,'A',600,'ANALYST',10); INSERT INTO scott.employees SELECT * from scott.employees; / / / ==>¿©·¯¹ø ¼öÇà(¿¡·¯°¡ ³¯¶§±îÁö..¿¡·¯´Â ¿Ö?) select * from user_free_space; ** TSÀÇ °ø°£À» È®Àå 1)±âÁ¸ÀÇ ÆÄÀÏ»çÀÌÁ Áõ°¡ ALTER DATABASE DATAFILE 'D:\oraclexe\oradata\XE\newtbs01.dbf' resize 1M; 2)»õ·Î¿î ÆÄÀÏÀ» Ãß°¡ ALTER TABLESPACE NEWTBS ADD DATAFILE 'D:\oraclexe\oradata\XE\newtbs02.dbf' size 1M autoextend on; INSERT INTO scott.employees SELECT * from scott.employees; ** »ý¼ºµÈ Å×À̺íÀÇ Á¤º¸ È®ÀÎ 1.»ý¼ºµÈ Å×À̺íµéÀÇ À̸§À» È®ÀÎ CONN scott/tiger SELECT * FROM tab; SELECT table_name FROM user_tables; SELECT object_name FROM user_objects WHERE object_type='TABLE'; 2.employeesÅ×À̺íÀÇ ±¸Á¶ È®ÀÎ(Ä÷³¸í,µ¥ÀÌÅÍŸÀÔ) desc employees 3.employeesÅ×ÀÌºí¿¡ ¼³Á¤µÈ Á¦¾àµé È®ÀÎ select a.table_name,b.column_name,a.constraint_name,a.constraint_type,a.search_condition,a.status from user_constraints a,user_cons_columns b where a.constraint_name=b.constraint_name and a.table_name='EMPLOYEES'; save cons ed cons @cons ** CTAS¸¦ ÀÌ¿ëÇÑ Å×À̺í»ý¼º : ±âÁ¸ÀÇ Å×À̺íÀÇ ±¸Á¶ ¹× µ¥ÀÌÅ͸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î Å×À̺íÀ» »ý¼º,ÀÏÁ¾ÀÇ µ¥ÀÌÅÍ º¹»ç CREATE TABLE »õ·Î¿îÅ×À̺íÀ̸§ AS SELECT ~ ; ¿¹) EMPÅ×ÀÌºí¿¡¼­ 10¹ø ºÎ¼­¿øµéÀÇ »ç¹ø,À̸§,¾÷¹«,±Þ¿©,ÀÔ»çÀÏÀÚ¸¦ Æ÷ÇÔÇÏ´Â »õ·Î¿î EMP_10À̶ó´Â Å×À̺íÀ» »ý¼ºÇϽÿÀ. create table emp_10 as select empno,ename,job,sal,hiredate from emp where deptno=10; select * from tab; desc emp_10 select * from emp_10; ¹®Á¦1) EMP Å×ÀÌºí¿¡¼­ ºÎ¼­º°·Î ºÎ¼­¹øÈ£, Àοø¼ö,Æò±Õ ±Þ¿©,±Þ¿©ÀÇ ÇÕ,ÃÖ¼Ò ±Þ¿©,ÃÖ´ë ±Þ¿©¸¦ Æ÷ÇÔÇÏ´Â EMP_DEPTNO Å×À̺íÀ» »ý¼ºÇÏ¿©¶ó. create table emp_deptno(deptno,cnt,avgsal,sumsal,minsal,maxsal) as select deptno,count(*),avg(sal),sum(sal),min(sal),max(sal) from emp group by deptno; ** Ä÷³,Å×À̺í¸í naming rule 1.¿µ¾î,¼ýÀÚ,ÇѱÛ,_,#,$ °¡´É 2.¿¹¾à¾î ºÒ°¡´É(v$reserved_words) 3.½ÃÀÛÀº ¿µ¾î,Çѱ۷θ¸ ½ÃÀÛ 4.1~ 30ÀÚ À̳» ¹®Á¦2) EMP Å×ÀÌºí¿¡¼­ »ç¿ø¹øÈ£,À̸§,¾÷¹«,ÀÔ»çÀÏÀÚ,ºÎ¼­¹øÈ£¸¸ Æ÷ÇÔÇÏ´Â EMP_TEMP Å×À̺íÀ» »ý¼ºÇϴµ¥ ÀÚ·á´Â Æ÷ÇÔÇÏÁö ¾Ê°í ±¸Á¶¸¸ »ý¼ºÇÏ¿©¶ó. create table emp_temp as select empno,ename,job,hiredate,deptno from emp where 1=2; ** Å×À̺íÀÇ ±¸Á¶ ¼öÁ¤ 1)Å×À̺í À̸§ ¼öÁ¤ RENAME a TO b; 2)Ä÷³ À̸§ ¼öÁ¤ ALTER TABLE Å×À̺í¸í RENAME a to b; 3)Ä÷³ÀÇ µ¥ÀÌÅÍ Å¸ÀÔ ¹× ÃÖ´ë±æÀÌ º¯°æ ALTER TABLE Å×À̺í¸í MODIFY Ä÷³¸í datatype(ÃÖ´ë±æÀÌ); 4)Ä÷³ÀÇ Ãß°¡ »èÁ¦ ALTER TABLE Å×À̺í¸í ADD Ä÷³¸í datatype(ÃÖ´ë±æÀÌ); ALTER TABLE Å×À̺í¸í DROP COLUMN Ä÷³¸í; (Áï½Ã »èÁ¦) ¶Ç´Â ALTER TABLE Å×À̺í¸í SET UNUSED COLUMN Ä÷³¸í; ==>ÀÌÈÄ ALTER TABLE Å×À̺í¸í DROP UNUSED COLUMNS; 5)Á¦¾àÁ¶°ÇÀÇ Ãß°¡ ¹× »èÁ¦ ALTER TABLE Å×À̺í¸í ADD CONSTRAINT Á¦¾à¸í Á¦¾àÀ¯Çü(Ä÷³¸í); ALTER TABLE Å×À̺í¸í DROP PRIMARY KEY/UNIQUE(Ä÷³¸í)/CONSTRAINT Á¦¾à¸í CASCADE; ==>cascade´Â pkÁ¦¾àÀ» »èÁ¦ÇÏ·Á°í Çϴµ¥ pkÁ¦¾àÀ» ÂüÁ¶ÇÏ´Â fkÁ¦¾àÀÌ ¸¸¾àÀÌ Á¸ÀçÇÑ´Ù¸é ÀÌ ¿É¼ÇÀ» »ç¿ëÇÔÀ¸·Î¼­ pkÁ¦¾àÀ̶õ fkÁ¦¾àÀÌ ÇÔ²² »èÁ¦ 6)Á¦¾àÀÇ ºñÈ°¼ºÈ­ ¹× È°¼ºÈ­ ==>´Ù·®ÀÇ BATCH¾÷¹«ÀÇ ¼º´ÉÇâ»óÀ» À§ÇØ ºñÈ°¼ºÈ­ ALTER TABLE Å×À̺í¸í DISABLE PRIMARY KEY/UNIQUE(Ä÷³¸í)/CONSTRAINT Á¦¾à¸í CASCADE; ALTER TABLE Å×À̺í¸í enable PRIMARY KEY/UNIQUE(Ä÷³¸í)/CONSTRAINT Á¦¾à¸í; ** Å×ÀÌºí »èÁ¦ 1)DROP TABLE Å×À̺í¸í CASCADE CONSTRAINTS; - DEPTÅ×À̺íÀ» »èÁ¦ DROP TABLE dept CASCADE CONSTRAINTS; - oracle 10g¿¡¼­´Â drop tableÀ» ½ÃÅ°¸é Å×À̺íÀ» recyclebinÀ¸·Î ÀÏ´Ü ÀúÀåÈÄ ÀÌÈÄ¿¡ »èÁ¦½ÃÅ´ show recyclebin flashback table dept to before drop; 2)TRUNCATE TABLE Å×À̺í¸í; truncate table employees; select * from employees; desc employees ** °á·Ð) drop tableÀº ¿ÏÀü»èÁ¦,truncate tableÀº ¸ðµç µ¥ÀÌÅ͸¦ ¿ÏÀü»èÁ¦,±¸Á¶´Â Á¸ÀçÇÔ, ÀúÀå°ø°£Àº ÇØÁ¦µÊ. ** Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ ÀÔ·Â,¼öÁ¤,»èÁ¦ ÀÛ¾÷,DML(Date Manipulation Language) ==>DMLÀÛ¾÷Àº Æ®·£Àè¼ÇÀ» ±¸¼º 1) ÀÔ·Â INSERT INTO Å×À̺í¸í(Ä÷³1,Ä÷³2...) VALUES(°ª1,°ª2....); 1.empÅ×ÀÌºí¿¡ »õ·Î¿î »ç¿øÀÇ Á¤º¸¸¦ ÀÔ·ÂÇϽÿÀ. (»ç¹ø : 8000,À̸§:È«±æµ¿,¾÷¹«:MANAGER,ÀÔ»çÀÏ:ÇöÀ糯¥¹× ½Ã°£, ±Þ¿©:3000,ºÎ¼­ÄÚµå:10,±âŸ:null) INSERT INTO emp(empno,ename,job,hiredate,sal,deptno) VALUES(8000,'È«±æµ¿','MANAGER',SYSDATE,3000,10); 2.empÅ×ÀÌºí¿¡ »õ·Î¿î »ç¿øÀÇ Á¤º¸¸¦ ÀÔ·ÂÇϽÿÀ. (»ç¹ø : 8001,À̸§:±è±æµ¿,¾÷¹«:CLERK,ÀÔ»çÀÏ:2001³âµµ 8¿ù 1ÀÏ 10½Ã, ±Þ¿©:2000,ºÎ¼­ÄÚµå:20,±âŸ:null) INSERT INTO emp(empno,ename,job,hiredate,sal,deptno) VALUES(8001,'±è±æµ¿','CLERK',TO_DATE('2001/08/01:10','RRRR/MM/DD:HH24'),2000,20); SELECT empno,ename,to_char(hiredate,'rrrr/mm/dd:hh24:mi:ss') FROM emp; 2)¼öÁ¤ UPDATE Å×À̺í¸í SET Ä÷³¸í1 = °ª1,Ä÷³¸í2=°ª2... (WHERE Á¶°ÇÀý); 3)»èÁ¦ DELETE (FROM) Å×À̺í¸í (WHERE Á¶°ÇÀý);