데이터베이스 객체 테이블 뷰 인덱스 등 DB에서 정의하는 모든 것

기존 이름과 예약어 불가 / 숫자 시작X / 언더스코어_ 이외의 기호 사용 불가

한글은 더블쿼트(mysql백쿼트)로 둘러싼다 / 시스템 허용길이 준수


스키마라는 그릇에 담기므로 객체 이름이 같아도 스키마가 다르면 허용

mysql에서는 데이터베이스가 스키마

oracle에서는 데이터베이스와 데이터베이스 사용자가 계층적 스키마

이름이 충돌하지 않도록 기능하는 그릇(스키마나 테이블)을 네임스페이스


select, insert, delete, update 는 dml


테이블 생성

create table sample62 ( 

  no integer not null,

  a varchar(30),

  b date);


테이블 삭제 drop table

테이블 유지 데이터만 삭제할시 truncate table 테이블명


테이블 변경 

alter table 테이블명 변경명령

alter table sample62 add newcol integer; 열 추가

alter table sample62 modify newcol varchar(20); 열 속성 변경

alter table sample62 change newcol c; 열 이름 변경

alter table sample62 drop c; 열 삭제하기


제약

create table sample631(

  no integer not null, 널이 아니도록 제약

  sub_no integer not null,

  name varchar(30) unique, 유일한 값이도록 제약

  primary key(no, sub_no) 기본키가 되도록(유일) 제약

  //constraint pkey_sample primary key(no, sub_no) 제약에 이름짓기 contraint

);


제약 추가하기 제거하기

alter table sample631 modify c varchar(30) not null; 널이 아니도록 제약 추가

alter table sample631 modify c varchar(30); 널 제약 제거

alter table sample631 add constraint pkey_sample631 primary key(a); 기본키 추가

alter table sample631 drop constraint pkey_sample631; 기본키 제거

alter table sample631 drop primary key; 기본키 제거

복수의 열로 기본키 구성하기 a와 b가 둘다 동일하지 않으면 다름


인덱스 이진트리로 검색(항목 하부선택지3 좌:작다 중:같다 우:크다) 띄엄띄엄검색

create index isample65 on sample62(no); (여러 개의 열 지정 가능) 인덱스 생성

drop index isample65 on sample62; 인덱스 제거 sample62는 테이블명

검색은 테이블에서 수행


explain sql명령 index를 사용해서 검색을 하는지 확인가능


뷰 가상테이블

create view sample_view_67 as select * from sample54; 뷰 생성

뷰에서 검색가능

drop view sample_view_67; 뷰 제거

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,