ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [명령어] Oracle&MySQL
    [명령어] 2020. 4. 17. 10:20
    오라클 테이블 명령어
    명령어 설명 예시
    desc 테이블명 테이블 구조 보기 desc testtable;
    alter table 테이블명 add(칼럼명 칼럼형) 테이블 칼럼 추가 alter table testtable add(addcal number);
    alter table 테이블명 drop(칼럼명) 테이블 칼럼 삭제 alter table testtable drop(addcal);
    alter table 테이블명 rename column 원래 칼럼명 to 변경할 칼럼명 테이블 칼럼명 수정 alter table testtable originalcolumn to changecolumn
    select * from tab 모든 테이블 보기 select * from tab;

    [시퀀스 생성]

    create sequence 시퀀스명

    start with 시작번호

    increment by 증가값

    maxvalue 최대값

    minvalue 최소값

    cycle or nocycle -- cycle 설정시 최대값에 도달하면 최소값부터 다시 시작 nocycle 설정시 최대값 도달시 시퀀스 생성중지

    cache or nocache -- cache 설정시 메모리에 시퀀스 값을 미리 할당하고 nocache 설정시 시퀀스 값을 메모리에 할당하지 않음

    시퀀스 생성은 좌측과 같이 생성이 가능하다 아래 여러가지 옵션값은 생략이 가능하다.

    create sequence testsequence

    start with 1

    increment by 1

    maxvalue 1000

    minvalue 1

    no cycle

    [시퀀스 검색]

    select sequence_name,

    min_value,

    max_value,

    increment_by,

    cycle_flag

    from user_sequences;

       

    [시퀀스 적용]

    시퀀스명.nextval

    시퀀스 적용은 좌측과 같이 insert 때 시퀀스명.nextval로 적용할 수 있다. insert into member values(test_seq.nextval, 'name', '0100000000');

    [pk 2개 선언]

    constraint pk명 primary key(칼럼명1, 칼럼명2)

    pk를 2개 선언하길 원할 경우 좌측과 같이 진행할 수 있다. create table money_tbl_02( 
    custno number(6) not null, 
    salenol number(8) not null, 
    pcost number(8), 
    amount number(4), 
    price number(8), 
    pcode varchar2(4), 
    sdate date, 
    constraint money_pk primary key (custno, salenol) 
    );

    [별칭 선언]

    as 별칭명

    별칭을 선언할 수 있다. select Max(custno) as max from member_tbl_02";"select Max(custno) as max from member_tbl_02;
    (SELECT NVL(MAX(num),0)+1 FROM nuriboard) mariadb의 경우 ifnull을 사용하나 오라클에서는 NVL이 ifnull과 같다.  
    sysdate 현재 날짜

    select sysdate as "Current Date" from dual;

    현재 날짜를 출력하고 열 이름을 Current Date로 함

    next_day([DATE 입력], [요일]) 입력한 DATE 이후 날짜 중에서 찾고자 하는 요일의 첫 번째 일자를 반환 next_day(add_months(hire_date,6),'월요일') as "6개월 후 월요일"
    add_months([DATE 입력]) 날짜에 월을 빼거나 더하는 함수 add_months(hire_date,6)
    LPAD([값], [총 문자길이], ["채움문자"]) 왼쪽부터 총 길이만큼 지정된 문자열을 채운다. lpad(salary,15,'*')
    to_char([날짜],['서식']) 날짜를 서식에 맞춰서 문자열로 반환

    to_char(hire_date,'day') as "입사일"

    위와 같이 하면 요일이 출력됨

    length([문자열 or 변수]) 문자열 길이를 구하는 함수 length(first_name)
    group by [변수] 데이터들을 원하는 그룹으로 나눌 수 있다. select 
    job_id as "직업", 
    max(salary) as "최대급여", 
    min(salary) as "최소급여", 
    sum(salary) as "급여의합" 
    from EMPLOYEES 
    group by job_id;
    where [일치하길 원하는 칼럼명] in (조건1, 조건2, 조건3) 좌측 예시와 같이 in을 적용하면 or과 같이 하나씩 비교하여 조건이 맞을 경우 값을 반환한다. where department_id in (select department_id from EMPLOYEES where first_name like '%T%')
    like

    like 조건식은 문자열의 패턴을 검색할 때 사용하는 조건식이다.

    좌측 예시와 같이 first_name like '%T%'를 진행할 경우 T가 포함된 이름을 조회한다.

    select department_id from EMPLOYEES where first_name like '%T%'
    '%A' A로 끝나는 문자열을 조회한다.  
    'A%' A로 시작하는 문자열을 조회한다.  
    '%A%' A를 포함하는 문자열을 조회한다.  

    CASE

    WHEN [칼럼명] 조건식 then 결과

    ELSE 결과

    END

    조건식 if~else문과 같음

    예제를 참고하여 사용하도록하자

    select 
    first_name as "이름", 
    job_id as "업무", 
    salary as "급여", 
    CASE  
    WHEN commission_pct is null then salary * 0 
    ELSE salary * commission_pct 
    END as "보너스", 
    CASE 
    WHEN commission_pct is null then (salary * 0)+salary 
    ELSE (salary * commission_pct)+salary 
    END as "급여+보너스" 
    from EMPLOYEES;
    decode([컬럼명],[조건1],[결과],[조건2],[결과]) if, else와 비슷한 함수이다.  
    select * from user_sequences; 현재 스키마의 시퀀스를 조회할 수 있다.  
    synonym 객체의 실제 이름과 소유자 그리고 위치를 감춤으로써 데이터베이스 보안을 개선하는데 사용 한다 create SYNONYM EMPLOYEE 
    for EMPLOYEES;

    [시퀀스]

    select [시퀀스명].currval from [테이블명]

    현재 시퀀스 값을 조회한다.

    다만 생성 후 바로 조회시 조회가 안되므로 [시퀀스명].nextval로 시퀀스를 이동시킨 후 조회를 해야한다.

    select test_seq_sequence.currval from dual;

    [처음 생성시]

    다음과 같이 먼저 nextval로 시퀀스 이동 후 조회하여야 조회가 가능함

    selecselect test_seq_sequence.nextval from dual;

    select test_seq_sequence.currval from dual;

    set verify on/off sql 명령어나 pl/sql에서 &을 이용한 치환 변수 등을 사용할 때 치환되기 전 후의 자세한 값을 보일 건지의 여부를 결정한다. 기본값은 ON이다.  
         
         
         
    MYSQL & 마리아DB 테이블 명령어
    명령어 설명 예시
    alter table [테이블명] add constraint [pk명] primary key([칼럼명]) 기본키 추가 ALTER TABLE SHOPUSER ADD CONSTRAINT shopuser_id PRIMARY KEY(id);
    alter table [테이블명] drop primary key [pk명] 기본키 삭제 alter table SHOPUSER drop constraint shopuser_id
    alter table [추가할 테이블명] add constraint [외래키명]  foreign key([칼럼명]) references [부모테이블명] (pk컬럼명) [ON DELETE CASECADE /  ON UPDATE CASECADE] 외래키 추가  

    • ON DELTE CASECADE : 외래키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제

    • ON UPDATE CASECADE : 외래키에서 참조하는 키 값이 포함된 행에서 키 값을 업데이트 하면 해당 외래 키를 구성하는 모든 값도 키에 지정된 새 값으로 업데이트되도록 지정


    alter table [테이블명] drop foreign key [외래키명]
    외래키 삭제  
    [MariaDB] alter table [테이블명] change [원래칼럼명] [새칼럼명] [새칼럼타입] 마리아 디비에서 칼럼명 변경  
         
         

    '[명령어]' 카테고리의 다른 글

    [명령어] PostgreSQL  (0) 2020.05.18
    [명령어] 리눅스&GIT&VIM  (0) 2020.04.17

    댓글

Designed by Tistory.