DB/오라클DB

오라클 기본정리

DEV-HJ 2022. 2. 22. 11:40
반응형

DB NAME 확인

 SQL> select name from v$database;

 

SID 확인

 SQL> select instance from v$thread;

 

☞ 사용자생성
SQL> CREATE USER 사용자이름 IDENTIFIED BY 비밀번호;
SQL> GRANT CONNECT, RESOURCE TO 사용자이름; (접속권한)

CONNECT - 데이터베이스 접속 할수 있는 기본권한 롤
RESOURCE - 테이블, 인덱스, 뷰 등을 생성,변경,삭제할수 있는 권한 롤
DBA - 모든 시스템권한이 부여된 롤

 

☞ 사용자전환(접속)
SQL> CONN 사용자이름/비번번호;

 

☞ 사용자비번변경
SQL> ALTER USER 사용자이름 IDENTIFIED BY 비밀번호;

 

☞ 사용자삭제
SQL> DROP USER 사용자이름;

 

☞ 사용자조회
SQL> SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS;

 

☞ 시스템권한부여
SQL> GRANT CREATE USER, ALTER USER, DROP USER TO 사용자이름 WITH ADMIN OPTION;
(WITH ADMIN OPTION 옵션을 사용하면 부여받은 권한을 다른사용자에게 부여할수 있다.)

 

☞ 시스템권한박탈
SQL> REVOKE CREATE USERse, ALTER USER, DROP USER FROM 사용자이름;
SQL> REVOKE CREATE USER, ALTER USER, DROP USER FROM 사용자이름 WITH ADMIN OPTION;
(WITH ADMIN OPTION 옵션을 사용하면 권한박탈당한 사람이 다른 사용자에게 권한을 주었을경우 그사용자는 권한을 유지한다.)

 

☞ 시스템권한의 종류
CREATE USER - 사용자생성
ALTER USER - 사용자수정
DROP USER - 사용자삭제
CREATE SESSION - 데이터베이스연결권한
CREATE ROLE - 오라클데이터베이스역할을 생성권한
CREATE VIEW - 뷰의 생성권한


☞ 데이터 타입
VARCHAR2(n) - 가변 길이 문자 데이터(1~4000byte)
CHAR(n) - 고정 길이 문자 데이터(1~2000byte)
NUMBER(p,s) - 전체 p자리 중 소수점 이하 s자리
DATE - 7Byte(BC 4712년 1월 1일부터 AD 9999년 12월 31일)
LONG - 가변 길이 문자 데이터(1~2Gbyte)
CLOB - 단일 바이트 가변 길이 문자 데이터(1~4Gbyte)
RAW(n) - n Byte의 원시 이진 데이터(1~2000)
LONG RAW - 가변 길이 원시 이진 데이터(1~2Gbyte)
BLOB - 가변 길이 이진 데이터(1~4Gbyte)
BFILE - 가변 길이 외부 파일에 저장된 이진 데이터(1~4Gbyte)

 

☞ 제약조건
NOT NULL - 무조건값을 입력
DEFAULT - 테이터입력을 하지 않아도 지정되는 값
PRIMARY KEY - 중복되는 테이터가존재할수 없고, 무조건값을 입력

UNIQUE - 중복되는 테이터가 존재할수 없다(유일성보장)
CHECK - 컬럼의 값을 특정범위로 제한


☞ 테이블생성
SQL> CREATE TABLE 테이블이름

 

☞ 데이터입력
SQL> INSERT INTO 테이블이름 VALUES ('테이터','테이터','테이터');
SQL> INSERT INTO 테이블이름 (컬럼, 컬럼, 컬럼) VALUES ('테이터','테이터','테이터');

 

☞ 현재 만들어진 테이블보기
SQL> SELECT * FROM TAB;

 

☞ 테이블 데이터보기
SQL> SELECT * FROM; 테이블명 - 전체보기
SQL> SELECT 컬럼, 컬럼 FROM; 테이블명 - 지정컬럼보기

 

☞ 특정컬럼 특정조건으로 보기
SQL> SELECT * FROM 테이블명 WHERE 컬럼 >=1000; - 컬럼의 값이 1000이상만 보기
SQL> SELECT COUNT(*) FROM 테이블명 GROUP BY 컬럼명; - 컬럼값에 따라 총갯수보기
SQL> SELECT COUNT(*), 컬럼명 FROM 테이블명 GROUP BY 컬럼명; - 컬럼포함 값에 따라 총갯수보기
SQL> SELECT * FROM 테이블명 ORDER BY 컬럼명 ASC; - 지정컬럼을 정순으로 보기(상품의 낮은가격순/ASC)
SQL> SELECT * FROM 테이블명 ORDER BY 컬럼명 DESC; - 지정컬럼을 역순으로 보기(상품의 높은가격순/DESC)

 

☞ 테이블 데이터수정
SQL> UPDATE 테이블명 SET 컬럼1='변경할데이터' WHERE 컬럼2='데이터값';
SQL> UPDATE 테이블명 SET 컬럼1='변경할데이터' WHERE 컬럼1='데이터값';
(WHERE 조건없이 수정할 경우 컬럼의 한열 전부수정됨)

 

☞ 테이블 데이터만삭제
SQL> DELETE FROM 테이블명;
SQL> TRUNCATE FROM 테이블명;

 

☞ 테이블 데이터의 한행만 삭제
SQL> DELETE FROM 테이블명 WHERE 컬럼(조건)='조건값';

 

☞ 테이블에 컬럼추가
SQL> ALTER TABLE 테이블명 ADD 추가할컬럼명 데이터타입;

 

☞ 테이블 컬럼의 타입변경
SQL> ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;

 

☞ 테이블 컬럼명 변경
SQL> ALTER TABLE 테이블명 RENAME COLUMN  OLD컬럼명 TO NEW컬럼명;

 

☞ 테이블 컬럼 삭제하기
SQL> ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명

 

☞ 테이블생성 기존테이블복제
SQL> CREATE TABLE 생성할테이블명 AS SELECT * FROM 기존테이블이름;

 

☞ 테이블생성 지정컬럼복제
SQL> CREATE TABLE 생성할테이블명 AS SELECT 복제할컬럼, 복제할컬럼 FROM 기존데이블명;

 

☞ 테이블구조보기
SQL> DESC 테이블이름;


☞ 시퀀스생성 - 데이터입력시 일정범위로 번호과 증가입력됨
SQL> CREATE SEQUENCE 시퀀스이름
START WITH 시작번호
INCREMENT BY 증가번호;

 

☞ 시퀀스사용
 현재 시퀀스값 : 시퀀스이름.CURRVAL

 다음 시퀀스값 : 시퀀스이름.NEXTVAL

 

☞ 시퀀스삭제
SQL> DROP SEQUENCE 시퀀스이름;

 

☞ 현재 만들어진 시퀀스전체보기
SQL> SELECT * FROM SEQ;

 

☞ 시퀀스 번호 이상증가 오류 해결하려면(기본cache 가 20으로 되어있다)

SQL> alter sequence 시퀀스이름 nocache

참조되어지는 테이블을 CASCADE CONSTRAINTS 옵션을 통해 삭제합니다. 
 

DROP TABLE department CASCADE CONSTRAINTS;

 

//테이블 수정하여 기본키 추가

alter table shop add constraint num_pk primary key(num);

--------------------------------------------------

테이블이 서로 외부키로 연결되어 있을경우

데이타 삭제가 안되는 경우가 있다

이때 무결성 제약 조건 에러가 나는데 그 에러에 있는 제약조건명을 제거

 

alter table guest  drop constraint  SYS_C0011059;

 

그 다음 삭제하면 에러 안남

delete from shop where pumno=10

반응형