이전 포스팅들에서 DBMS에 대해 공부하였으니 이제 본격적으로 SQL에 대해 공부해보도록 하겠습니다.
우선, SQL은 DDL과 DML로 구성됩니다.
DDL
DDL은 Data Definition Language의 약어로, 데이터 정의 언어를 뜻합니다. 데이터의 저장 구조를 명시하는 언어로 테이블을 정의, 수정, 삭제하는 언어를 말합니다.
DML
DML은 Data Manipulation Langunage로 사용자가 데이터에 접근하고 조작할 수 있도록 하는 언어를 뜻합니다. 주로 레코드의 검색, 삽입, 삭제, 수정하는 언어를 말합니다.
테이블 생성 방법
테이블으 생성하는 방법은 다음과 같다.
create table department
(
dept_id varchar2(10),
dept_name varchar2(20) not null,
office varchar2(20),
constraint pk_department primary key(dept_id)
);
여기서 기본키(primary key)는 제약 조건으로 달아주었는데, 제약 조건을 나타내는 constraint 뒤 pk_department는 어떤 제약식인지 알려주는 역할을 한다. 없어도 실행은 되지만, 후에 문제가 생겼을 경우 빠른 오류찾기를 위해 넣어주는 것이 좋다.
외래키 포함 테이블 생성 방법
외래키까지 포함한 테이블을 생성하는 방법은 다음과 같다.
create table student
(
stu_id varchar2(10),
resident_id varchar2(14) not null,
name varchar2(10) not null,
year int,
address varchar2(10),
dept_id varchar2(10),
constraint pk_student primary key(stu_id),
constraint fk_student foreign key(dept_id) references department(dept_id)
);
기본키와 외래키를 갖는 테이블을 생성할 때 주의사항에 대해 알아보자. 외래키는 다른 테이블의 레코드를 참조하는 것이다. 그렇기 때문에 외래키를 생성하기 전에, 내가 참조하려고 하는 테이블을 미리 만들어둔 후 외래키를 생성해야 한다.
테이블 삭제할 때도 같은 문제가 발생한다. 외래키는 다른 테이블이 내 레코드 하나를 참조하고 있는 것이기 때문에, 외래키를 끊지 않은 채 현재 테이블을 삭제하려 한다면, 삭제할 수 없다는 오류가 생성된다. 그러니, 테이블을 삭제하기 전에 혹시 내 테이블을 참조하는 테이블은 없는지 확인해보도록 하자
레코드 삽입
테이블을 만들었으면 레코드를 삽입해야 한다. 레코드 삽입하는 방법은 다음과 같다.\
insert into 테이블이름 (필드 리스트) values (값 리스트)
테이블에 레코드가 잘 삽입되었는지 확인해보자
레코드를 삽입할 때 알아야 할 주의사항에 대해 알아보자.
외래키로 사용하는 필드에 대해 데이터를 삽입하는 경우, 참조하는 테이블의 해당 필드에 그 값을 먼저 삽입해야 한다.
레코드 수정
레코드를 만들었는데, 데이터를 업데이트해야하거나 뭔가 수정사항이 생기면, 테이블을 삭제하고 다시 만드는 것이 아니라 해당 레코드만 수정할 수 있다.
데이터 수정 형식은 다음과 같다.
update 테이블이름 set 수정내역 where 조건
이렇게, year행을 한 번 더해 업데이트가 가능하다.
또는, 이런식으로 두 개 이상의 수정 내역을 넣어 한 번에 두 개 이상 변경도 가능하다.
레코드 삭제
직원이 퇴사했거나 테이블 내 한 두개의 레코드만 삭제해야 하는 경우, 다음과 같이 레코드를 삭제할 수 있다.
테이블 삭제 형식은 다음과 같다.
delete from 테이블 이름 where 조건
delete문을 사용할 때 주의사항이 있다. 테이블을 삭제하고 싶다고 delete문을 이용하여 테이블 내 모든 레코드를 삭제해도 테이블 자체는 삭제되지 않는다. 만약 테이블을 삭제하고 싶다면, drop 명령어를 사용해야 한다.
'학교 수업 > DB시스템 구현' 카테고리의 다른 글
[DB 시스템 구현]SQL 레코드 검색 ① (0) | 2023.07.06 |
---|---|
[DB 시스템 구현] 틀리기 쉬운 SQL문제 정리하기 (0) | 2023.07.04 |
[DB 시스템 구현] 오라클 구조 (0) | 2023.07.02 |
[DB 시스템 구현] 오라클 설치방법 (0) | 2023.07.02 |
[DB 시스템 구현] 관계형 데이터베이스① : 관계형 데이터 모델 (0) | 2023.06.29 |