IT수업/데이터베이스

it 수업 5주차 (2) DDL, DML

워제하 2024. 1. 22. 18:30

< DDL : 데이터 정의어 (create, alter, drop) >

<create 테이블 생성>

 

work bench가 아닌 cmd 창에서 testdb안의 tbl_user 테이블과 그 안의 정보들을 생성해 볼 것이다.

 

테이블을 생성할 때는 이렇게 하면 된다.

 

create table 테이블명(
       컬럼명 자료형 제약조건,
       컬럼명 자료형 제약조건,
       컬럼명 자료형 제약조건,
       ...
);

 

 

먼저 testdb를 사용하기 위해 use testdb;를 치고 show tables;를 치면 아무것도 없이 비어있는 것을 볼 수 있다.

여기에 tbl_user를 생성 해볼 것이다.

 

이렇게 코드를 치고 show tables;를 하면 tbl_user테이블이 생성된 것을 볼 수 있다.

 

desc tbl_user; 를 치면 tbl_user테이블 안의 정보들을 볼 수 있다.

 

tbl_product 테이블을 하나 더 만들어 볼 것이다.

 

문제1 )

테이블명 : tbl_product

컬럼종류
prod_id int  primary,
prod_name  varchar(100)  not null,
prod_category  varchar(10) null,
prod_details varchar(1024) null,
reg_date datetime not null,
prod_price int not null 

 

 

<코드>

 

show tables;하면 testdb안에 tbl_product가 생긴 것을 볼 수 있고 desc tbl_product;하면 안에 생성한 정보들을 볼 수 있다.

 

 

 

 

 

<alter add, alter drop 변경>

테이블 안에 user_tel을 추가해 볼 것이다.

먼저 work bench로 가서 직접 추가해본다.

 

test2db의 tbl_user테이블에서 user_name 밑에 user_tel을 추가해보았다.

 

apply를 누르면 이렇게 화면이 뜬다. 파란색 글씨가 문법이다.

 

 

그럼 똑같이 testdb의 tbl_user테이블에 user_tel을 생성해본다.

 

column 추가 : alter table 테이블명 add column 컬럼명 자료형 제약조건

 

그러면 user_name 밑에 user_tel이 생성 된 것을 볼 수 있다.

 

 

문제2 )

tbl_product에 amount 컬럼을 int not null; 로 추가해보자.

 

이렇게 amount가 추가 된 것을 볼 수 있다.

 

 

 

 

 

 

<drop 삭제>

test2db에서 user_password를 삭제해 볼 것이다.

user_password에 커서를  둔 뒤 마우스 오른쪽 버튼을 눌러 delete selected를 누를 것이다.

그러면 이런 화면이 나온다.

user_password가 삭제 된 것을 볼 수 있다.

 

그러면 cmd창에서도 실행해보자.

 

column 삭제 : alter table 테이블명 drop 컬럼명

 

이렇게 user_password가 삭제 된 것을 볼 수 있다.

 

 

이제 테이블을 삭제해 볼 것이다.

현재 생성되어 있는 데이터베이스들이다. 여기서 test2db를 삭제해본다.

 

이렇게 test2db가 삭제 된 것을 볼 수 있다.

 

이번에는 테이블을 삭제 해볼 것이다.

현재 생성되어 있는 테이블들인데 여기서 tbl_user를 삭제해 볼 것이다.

 

이렇게 tbl_user 테이블이 삭제 된 것을 볼 수 있다.

 

 

 

 

문제 4)

tbl_product의 prod_details를 삭제해보자

 

 

 

 

 

 

<alter change 수정>

 

test2db에서 user_tel을 user_phone으로 변경해본다.

 

그러면 이런 문법을 볼 수 있다. 

cmd창에서도 실행해보자.

 

column 수정 : alter table 테이블명 change column 기존컬럼명 변경컬럼명 변경자료형 제약조건

 

이렇게 user_tel이 user_phone으로 바뀐 것을 볼 수 있다.

 

 

문제3 )

이제 tbl_product에서 prod_price값을 varchar(100) null 로 바꿔 보자.

prod_price값이 바뀐 것을 볼 수 있다.

 

 

 

 

 

< DML : 데이터 조작어 (select, insert, update, delete) >

< insert 추가>

test2db에서 user에 홍길동 정보를 넣어 보자.

tbl_user에 오른쪽버튼을 눌러 select rows를 누르면 정보들을 볼 수 있는데 현재는 비어있는 것을 볼 수 있다.

여기에 홍길동 정보를 넣어본다.

이렇게 문법이 나온다.

 

그럼 testdb의 tbl_user에도 cmd창으로 추가해보자.

 

INSERT INTO 테이블 이름 (필드(컬럼)명 1, 필드(컬럼)명 2, ...) VALUES (추가할 값 1, 추가할 값 2, ...)

혹은 필드명을 생략하여

INSERT INTO 테이블 이름 VALUES (추가할 값 1, 추가할 값 2, ...)

도 가능하다.

비어있던 tbl_user테이블에 홍길동 정보가 들어 간 것 을 볼 수 있다.

 

여기에 남길동의 정보도 넣어본다. 이때는 필드명을 생략해 작성해 봤다.

 

user_id와 user_name만 볼 수도 있다.

 

 

 

 

 

 

<update 수정>

남길동 이름을 철수로 바꿔 볼 것이다.

test2db에서 바꾸면

이런 문법을 볼 수 있다. 

cmd창에서 실행 해보자.

 

update 테이블 set 열='변경할 값' where 조건

 

이렇게 남길동에서 철수로 바뀐 것을 볼 수 있다. 

 

 

 

 

<delete 삭제>

 

tbl_user의 홍길동 열을 삭제해 볼 것이다.

화살표 부분을 누르면 열 전체가 선택되는데 이때 마우스 오른쪽 눌러 delete row하면 열 전체가 삭제 된다.

 

cmd창에서도 실행해본다.

 

delete from 테이블명 where 조건

 

user10의 열이 사라진 것을 볼 수 있다.

 

 

 

※ DELETE와 DROP 구별

   DROP : VIEW, TABLE, DATABASE를 완전 삭제할 때 사용

   DELETE : 조건을 달아서 특정 행을 삭제할 때 사용

 

 

 


DML 문제)
tbl_product안에 다음과 같은 작업을 수행하세요

[값 추가]

prod_id      prod_name                prod_category    reg_date         prod_price    amount
1111           LG_GRAM_2023      가전                    2024/01/22     830,000        100
1112          SAMSUNG_FLEX2   가전                    2024/01/22     3,000,000     50
2000          대우_통돌이_01        가전                    2024/01/22     590,000        25
3001          이것이리눅스다         도서                    2023/01/22     30,000         1000


[값 수정]
prod_category가 '가전'인 모든행의 reg_date를 2023/01/01 로 변경하세요


[값 삭제]
prod_id가 1111인 행을 삭제하세요 


 

코드를 작성하기 전 tbl_product에는 자료들이 비어 있는 것으로 나온다.

여기에 값을 작성해서 추가해보면

 

이렇게 값이 들어간 것을 볼 수 있다.

 

prod_category가 '가전'인 모든행의 reg_date를 2023/01/01 로 변경 값을 수정해본다.

 

prod_id가 1111인 행을 삭제 해본다.