oracle 1차 정리

문준혁·2023년 11월 18일
0

cmd 중요한거 ed 좀전에 쓴 내용 메모장으로열어줌

수정후 cmd창에서 / 로 다시사용가능


DB에 데이터를 저장하는 방식

oracle 는 table 형식으로 저장한다

표(table ⇒ column, row)


DB에 주로 저장하는 것

숫자, 문자, 날짜, 파일data(2진으로 저장)


계정 만들기

CREATE USER 계정이름 IDENTIFEID by 비번;

계정에 권한주기

GRANT RESOURCE, CONNECT TO 계정이름;


table 만들기

CREATE TABLE member ( num NUMBER, name VARCHAR2(12), addr VARCHAR2(16));

member 라는 이름의 테이블을 만든다

데이터는 num name addr 이란 제목을 각각 가지고있음

그리고 num은 넘버타입 name addr은 string 타입 (varchar2) 뒤에 (괄호)는 데이터 길이제한

DATE는 날짜

table 보기

select num, name, addr from member;

member 테이블의 num, name , addr정보를 봄

보고싶은거만 볼수있음

  • ex) select num, name from member; 만 입력하면 addr은 안보여줌
    • select * from member;
    • *을 사용시 전부보여줌

  • select * from member where num=3;
    • where로 만족하는 데이터만 가져올수있음 num=3인 데이터만

  • < > or and 도 사용가능 ex) num>6 and addr=’강남’ 등등
  • select * from member where addr in (’강남’, ‘양천구’);
    • addr이 강남이거나 양천구인사람 전부 addr=’강남’ or addr=’양천구’ 와 동일

COLUMN 칼럼명 FORMAT A10

원하는 칼럼명의 길이를 A10(=문자10개) 길이로 바꿔줌 (name이 짧아짐)

table에 데이터 추가 (row 추가)

INSERT INTO member (num, name, addr) VALUES (2, ‘김2번’, ‘강남’);

member라는 테이블에

num name addr을 입력하려함

  • addr을 제외하고 입력하면 (num, name) 이 두개만 입력하고 addr은 빈상태로 입력됨

table에서 데이터 삭제 (row 삭제)

DELETE FROM member WHERE num=1;

member 테이블에서 num=1인 모든 데이터 삭제

WHERE num < > <= >= 도 가능


table 수정

UPDATE member SET name=’김4번’ WHERE num=2;

member 테이블의 데이터를 수정한다
name=’김4번’ name의 내용을 ‘김4번’으로

WHERE num=2

num=2를 만족하는 모든 행에 적용


테이블 볼때 내가 원하는 순서로 보기

SELECT num,name,addr from member ORDER BY num ASC (or DESC)

ASC 오름차순 1 2 3 4 …. (ascend)

DESC 내림차순 ….. 4 3 2 1 (descend)


작업 취소

이전에 커밋한곳까지 한 모든 작업이 취소됨

ROLLBACK;


시퀀스 만들기

CREATE SEQUENCE members_seq;

members_seq란 이름의 시퀀스를 만듬

시퀀스 사용법 (nextval)

select members_seq.nextval from dual;

(dual은 select 를 사용하기 위해 임시로 그냥 만들어져 있는 테이블 같은 것)

nextval은 호출 될 때마다 +1씩 늘려나감

다시 되돌릴수는 없음

다시 되돌리고 싶다면

시퀀스 삭제후 다시만들기

DROP SEQUENCE members_seq ;

CREATE SEQUENCE members_seq; 이럴 경우 다시 val은 0부터 시작

create 할때 start with x 이런식으로 첫 시작 숫자를 정할 수 있음

increment by y ⇒ y씩 변화함 첨쓰면 start with x 에서 시작하고

그후 한번 쓸때마다 x씩 늘어남 ex) x=2 y=4 면 2 6 10 14 18 …..

시퀀스 수정

ALTER SEQUENCE members_seq

increment by x

start with y


SPOOL 기능

SPOOL ****.txt 입력시 그 이후 cmd 출력되는 모든걸 기록

SPOOL OFF 하면 종료됨 c드라이브 사용자 컴퓨터계정이름 폴더가면 txt 파일로 있음



1줄 정리

CREATE USER 계정이름 IDENTIFIED BY 계정비번

GRANT RESOURCE , CONNECT TO 계정이름

CREATE TABLE, SEQUENCE… 이름

DROP TABLE, SEQUENCE… 이름

INSERT INTO 이름 (칼럼1, 칼럼2, 칼럼3…) VALUES (데이터1, 데이터2, 데이터3)

DELETE FROM 이름 WHERE 조건

UPDATE 이름 변경할칼럼1=데이터 WHERE 조건

COLUMN 칼럼명 FORMAT A10

SPOOL *.txt

SPOOL OFF

  • cmd 기능
  1. 오타났을시 ed치면 좀전에 친 내용 나옴

그걸 수정하고 저장후 닫고

cmd에 / 입력하면 수정된 명령을 수행함

  1. set linesize 200 좌우길이 조절가능

CONSTRAINT_NAME CO TABLE_NAME


PK_DEPT P DEPT
EMPNO P EDP
FK_DEPTNO R EMP
PK_EMP P EMP
SYS_C004005 C MEMBER
SYS_C004006 P MEMBER
SYS_C004004 C MEMBER
SYS_C004000 P MS

P C R

primary check reference

sunbun 21~30까지의 목록만 뽑아보기

select sunbun,employee_id, full_name,salary from (select e1.*,rownum sunbun from (select employee_id , first_name || ' '|| last_name full_name, salary from employees order by salary desc)e1) where sunbun >= 21 and sunbun <= 30;

제약조건

create table emp2

(empno number(4),
ename varchar2(12) constraint emp2_ename_nn not null ,
deptno number(2),
constraint emp2_empno_pk primary key(empno),
constraint emp2_deptno_fk foreign key(deptno) references dept2(deptno));

ename에 들어간거는 column 레벨에서의 제약조건 not null은 column레벨밖에 안됨

아래 empno deptno는 table 레벨

primary key — 유일한 1개

foreien key — dept2테이블의 deptno에 있을때만 emp2에 생성됨
ex) dept2에 10 20 이 있을경우 emp2엔 10 20 은되는데 30 40 등등 나머지는 안됨


select constraint_name, constraint_type,status from user_constraints where table_name='EMP2';

제약조건 상태보기 (emp2 테이블의)


ALTER 수정

ALTER

ALTER TABLE emp2
add constraint - 추가
drop constraint - 삭제
enable constraint - 활성화
disable constraint - 비활성화 제약조건
alter table emp2

add ename varchar2(12) - column 추가
modify ename varchar2(20) - column 변경
rename column ename to ename2 - column 이름 변경
drop column ename2 - column 삭제


추후 까먹었을떄 다시 살펴보기위해 적어놓았습니다.

나중에 좀더 정리를해서 수정을 할예정

profile
이제 시작 개발

0개의 댓글