728x90
반응형
DML(Data Manipulation Language)
데이터 조작어
별도의 커밋 명령을 통해 DB서버에 실제 반영해야 함
데이터 행에 대한 생성, 수정, 삭제
Data 명령어(CRUD) | 설명 |
select | 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 |
insert | 새로운 행을 추가하는 구문. 실행 후 테이블 행의 개수가 증가함 |
update | 이미 존재하는 데이터의 수정. 명령처리 후에도 행의 전체 갯수의 변화 없음 |
delete | 테이블의 특정행을 삭제하는 명령. where절을 사용하여 어떤행을 삭제할지 조건 설정 |
1. insert
--a. 컬럼명 작성하지 않는 경우
insert into member_info
values('tenten', '권정렬', 'ten1234', '01012341234'); --모든 컬럼에 해당하는 데이터 정보 입력
--b. 컬럼명 작성하는 경우(작성하지 않은 컬럼은 null값)
insert into member_info(member_id, member_name, member_pwd)
values('tenten', '권정렬', 'ten1234');
2. update
update member_info
set member_pwd = 'ten1010', phone = '01012345678'
where member_name = '권정렬';
3. delete
명령문 실행전에 before image를 생성해두었다가 rollback실행시에 다시 이전 데이터로 돌릴 수 있음
실행속도 느림 but 조금더 안전
delete from member_info
where member_name = '권정렬';
truncate(DDL) 전체행 자르기(where절 없이 전체테이블 삭제)
즉시 실행 후 auto commit처리됨
실행속도 빠름. 복구 불가능.
truncate table member_info;
DDL(Data Definition Language)
데이터 정의어
DML과 달리 자동커밋되므로 사용에 유의해야함
데이터베이스 객체를 생성, 수정, 삭제
Data 명령어 | 설명 |
create | 객체 생성 구문 |
alter | 객체에 대한 수정 |
drop | 객체 삭제 |
1. create
create table member_info (
member_code number,
member_id varchar2(10),
member_pwd char(20) not null,
member_name varchar2(30),
member_addr varchar2(100) not null,
gender char(3),
phone char(11) not null,
constraints uq_member_id unique(member_id),
constraints ck_gender check(gender in('M', 'F')),
constraints pk_member_code primary key(member_code)
);
2. alter
--a. add
alter table memeber_info add member_name varchar2(50) default '권정렬';
alter table memeber_info add gender char(1) not null check(gender in('M','F'));
alter table memeber_info add constraints uq_email unique(email);
--b. modify
--not null 추가는 add가 아니라 modify로 변경
--컬럼의 데이터 타입, default값 변경
--데이터가 존재한다면, 데이터 타입의 크기는 모든 데이터를 수용할 수 있는 범위에서 변경 가능(크게는 가능하나 작게는 X)
alter table memeber_info modify member_name not null;
alter table tbl_alter modify gender default 'F';
--c. rename
--컬럼명 / 제약조건명 / 테이블명
alter table memeber_info rename column member_pwd to password;
alter table memeber_info rename constraints pk_tbl_alter to tbl_alter_pk;
alter table memeber_info rename to info_member;
rename memeber_info to info_member; --위의 간단버젼
--d. drop컬럼
alter table memeber_info drop column gender;
alter table memeber_info drop constraints uq_email;
3. drop
drop table member_info;
제약조건(Constraints)
테이블 생성시에 각 컬럼에 대해서 제약조건을 설정가능
데이터의 무결성을 위해 제한적으로 데이터를 수용할 수 있도록 하는 것
NOT NULL | 해당 컬럼 데이터에 null을 허용하지 않음 → 필수 항목인 경우 사용(id, pwd) |
UNIQUE | 여러행 사이에서 중복된 값을 허용하지 않음 → email, 주민등록번호 등 회원을 구분할 수 있는 데이터 |
PRIMARY KEY (기본키, 주키) |
레코드(행)의 고유 식별자로 사용하는 컬럼. (행과 행을 구분하는 키워드로 사용) → not null+ unique와 같지만, 테이블당 딱 하나의 PK만 허용 |
FOREIGN KEY 외래키 | 두 테이블간의 연결을 설정하고, 부모테이블의 데이터만 자식테이블에서 허용하도록 함 → 자식이 부모를 참조함 |
CHECK | 저장 가능한 데이터의 범위, 조건을 지정 → 퇴사여부('Y','N'), 성별, 결혼여부, 수치(양수만 허용) 이 외의값은 입력할 수 X |
create table member_info (
member_code number,
member_id varchar2(10),
member_pwd char(20) not null,
member_name varchar2(30),
member_addr varchar2(100) not null,
gender char(3),
phone char(11) not null,
constraints pk_member_code primary key(member_code),
constraints uq_member_id unique(member_id),
constraints ck_gender check(gender in('M', 'F')),
--부모테이블member, 자식테이블member_info
constraints fk_member_info foreign key(phone) references member(phone)
);
반응형
'프로그래밍 > SQL' 카테고리의 다른 글
05.27(VIEW, SEQUENCE) (0) | 2020.05.27 |
---|---|
05.26(DCL과 TCL 명령어, DD) (0) | 2020.05.26 |
05.22(top-n분석, window함수) (0) | 2020.05.22 |
05.21(SUBQUERY) (0) | 2020.05.21 |
05.20(SUBQUERY) (0) | 2020.05.20 |