본문 바로가기
안드로이드 웹앱 콘테츠 개발자 양성(국비지원)/DBMS

DBMS 1-2 (DML를 이용 테이블 필드 추가,변경,삭제)

by 차누감 2020. 1. 7.

DML를 이용해서 DB 사용해보자.  [데이터 베이스와 테이블을 만들고 필드 추가 삭제 등을 알아본다. ]

  • insert
  • select - where, order by
  • update
  • delete

작업하기 위해 xampp control와 apache,mysql이 start되어 있어야 한다.  ( DBMS 1-1 참고 )

cmd창에서 테이블 만들고 수정하려면 한줄 한줄 작업해야 한다. 한번에 명령어를 한 파일에 입력하고 실행 시키자.

[sql 일괄 실행]

 

작업을 위해 임의로 DBMS 폴더를 만들고 거기에 sql파일을 만들겠다.

1
2
3
4
5
6
7
8
9
10
11
create table mem(
    num int not null auto_increment,
    id char(20not null,
    pass char(20not null,
    name varchar(20not null,
    age int,
    primary key(num)
);
 
insert into mem(id, pass, name, age) values('aa','11','sam','20');
insert into mem(id, pass, name, age) values('bb','22','robin','25');

sql 일괄 실행은 사용자 계정으로 접속할때 쿼리문 적용 가능하다.

( 아까 만든 sql 파일 경로를 써준다. C:\xampp\htdocs\DBMS\mem.sql )

명령어 : mysql -ucw -p1234 mrhi_db < C:\xampp\htdocs\DBMS\mem.sql

명령어 : mysql -ucw -p1234 mrhi_db

명령어 : show tables;

일괄 실행으로 이미 num 1,2는 입력되었다. 새로 추가를 해보자.

명령어 : insert into mem values('3','cc','33','kim','30');

명령어 : select *from mem;

명령어 : insert into mem values('5','dd','44','lee','40');

명령어 : select *from mem;

num은 auto_increment로 자동 카운팅 되는데, 만약 앞에서 값을 줬다면.. 그 이후 숫자는 어떻게 될까?

결론, 마지막 적용된 숫자 이후부터 카운팅 된다.  ( 위에서 num 5로 주고 그 이후 추가하면 6부터 카운트 )

명령어 : insert into mem(id, pass, name, age) values('aa','11','sam','20');

DML을 이제 더 연습을 하기 위해 테이블 내용이 많은 것으로 해보자.

아래 샘플 코드를 복사하여 cmd 창에 붙여 넣기하면 저절로 다 추가가 된다.

(일괄 적용을 하면 한글 깨짐이 발생할 것이다.

이유 : cmd chcp의 값이 949 ANSI/OEM Korean (Unified Hangul Code)로 되어있는데 UTF8로 된 글을 볼 때 문제가 됨. 따라서 정상적으로 보려면 UTF8로 설정이 필요함. cmd 기본 값을 변경을 안할 것이기 때문에 복붙을 했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  create table member (
  num int not null auto_increment,
  id  char(20not null,
  name char(20not null,
  gender char(1),
  post_num char(8),
  address char(80),
  tel char(20),
  age int,
  primary key(num)
  );
  
insert into member (id, name, gender, post_num, address, tel, age) values ('yjhwang''황영주''M''100-011''서울시 중구 충무로1가''234-8879'35);
insert into member (id, name, gender, post_num, address, tel, age) values ('khshul''설기형''M''607-010''부산시 동래구 명륜동''764-3784'33);
insert into member (id, name, gender, post_num, address, tel, age) values ('chpark''박철호''M''503-200''광주시 남구 지석동''298-9730'34);
insert into member (id, name, gender, post_num, address, tel, age) values ('shlee''이상훈''M''503-201''광주시 남구 도금동''838-4347'32);
insert into member (id, name, gender, post_num, address, tel, age) values ('jyjang''장영숙''W''606-065''부산시 영도구 봉래동5가''399-9809'24);
insert into member (id, name, gender, post_num, address, tel, age) values ('yjbae''배용진''M''122-014''서울시 은평구 응암4동''857-5683'30);
insert into member (id, name, gender, post_num, address, tel, age) values ('hbpark''박혜빈''W''427-760''경기도 과천시 중앙동''234-7677'22);
insert into member (id, name, gender, post_num, address, tel, age) values ('mskim''김문수''M''429-020''경기도 시흥시 신천동''370-6003'63);
insert into member (id, name, gender, post_num, address, tel, age) values ('bkcha''차범길''M''302-121''대전시 서구 둔산1동''432-9877'49);
insert into member (id, name, gender, post_num, address, tel, age) values ('kskim''김길수''M''440-747''경기도 수원시 장안구 파장동''324-5875'54); 
insert into member (id, name, gender, post_num, address, tel, age) values ('srkim''김수련''M''704-701''대구시 달서구 신당동''987-3688'23);    
insert into member (id, name, gender, post_num, address, tel, age) values ('shlee''이성현''M''441-081''경기도 수원시 권선구 매산로1가''243-6844'36);
insert into member (id, name, gender, post_num, address, tel, age) values ('hnjang''정한나''W''502-763''광주시 서구 화정4동''845-4547'58);
insert into member (id, name, gender, post_num, address, tel, age) values ('mylee''이명연''W''502-791''광주시 서구 쌍촌동''837-9432'33);
insert into member (id, name, gender, post_num, address, tel, age) values ('yskim''김영숙''W''429-010''경기도 시흥시 대야동''374-8438'53);
insert into member (id, name, gender, post_num, address, tel, age) values ('jekim''김정은''W''503-202''광주시 남구 원산동''347-8873'29);
insert into member (id, name, gender, post_num, address, tel, age) values ('yjko''고영주''W''122-020''서울시 은평구 녹번동''479-3874'32);
insert into member (id, name, gender, post_num, address, tel, age) values ('cyahn''안철영''M''122-030''서울시 은평구 대조동''347-4687'34);
insert into member (id, name, gender, post_num, address, tel, age) values ('jmkim''김진모''M''530-140''전라남도 목포시 항동''379-8349'28);    
insert into member (id, name, gender, post_num, address, tel, age) values ('ycshul''설영찬''M''606-070''부산시 영도구 청학동''983-8748'41);
insert into member (id, name, gender, post_num, address, tel, age) values ('jjko''고재진''M''100-013''서울시 중구 충무로3가''836-4655'28);
insert into member (id, name, gender, post_num, address, tel, age) values ('hwlee''이현우''M''606-071''부산시 영도구 청학1동''346-8892'32);
insert into member (id, name, gender, post_num, address, tel, age) values ('cskang''강찬숙''W''668-890''경상남도 남해군 설천면''377-6879'21);
insert into member (id, name, gender, post_num, address, tel, age) values ('ypji''지영필''M''122-040''서울시 은평구 불광동',  '366-3747'52); 
insert into member (id, name, gender, post_num, address, tel, age) values ('jbkim''김진배''M''427-600''경기도 과천시 과천동''382-4993'47); 
insert into member (id, name, gender, post_num, address, tel, age) values ('jepark''박지은''W''670-800''경상남도 거창군 거창읍''328-8743'26);    
insert into member (id, name, gender, post_num, address, tel, age) values ('jhlee''이지현''W''704-702''대구시 달서구 월성동''386-7988'27);    
insert into member (id, name, gender, post_num, address, tel, age) values ('bykang''강부영''M''302-120''대전시 서구 둔산동''798-3243'62);
insert into member (id, name, gender, post_num, address, tel, age) values ('jymoon''문진영''W''302-122''대전시 서구 둔산2동''987-3248'18);
insert into member (id, name, gender, post_num, address, tel, age) values ('jyjun''전지연''W''100-012' , '서울시 중구 충무로2가''347-2236'28);
insert into member (id, name, gender, post_num, address, tel, age) values ('jkko''고진길''M''122-013''서울시 은평구 응암3동''234-7466'27);
insert into member (id, name, gender, post_num, address, tel, age) values ('myjung''정명윤''M''502-771''광주시 서구 치평동''374-8786'47);
insert into member (id, name, gender, post_num, address, tel, age) values ('jsyou''유지수''W''502-772''광주시 서구 치평동''309-3897'49);
insert into member (id, name, gender, post_num, address, tel, age) values ('dsshin''신달성''W''530-145''전라남도 신안군 장산면''399-8789'53);
insert into member (id, name, gender, post_num, address, tel, age) values ('sjshin''신수진''W''606-796''부산시 영도구 봉래동5가''389-8930'47);
 
 

테이블이 잘 추가가 됐는지 확인해 보자.

명령어 : select *from member;

select 문을 연습해보자.

해당 테이블에서

여성 회원의 아이디, 이름, 주소, 성별을 검색해보자.

명령어 : select id,name,address,gender from member where gender='W';

해당 테이블에서

50세 이상인 남성 회원의 이름, 전화번호, 성별, 나이 검색해보자.

명령어 : select name, tel, gender, age from member where age>=50 and gender='M';

해당 테이블에서

20대 회원의 이름, 성별, 주소, 나이 검색해보자.

명령어 : select name,gender,address,age from member where age>=20 and age<=29;

해당 테이블에서

30대 또는 50대 남성 회원의 이름, 전화번호, 나이, 성별 검색해보자.

명령어 : select name, tel, age, gender from member where ((age>=30 and age<40) or (age>=50 and age<60)) and gender='M';

해당 테이블에서

이름이 ‘안철영’인 회원의 일련번호, 이름, 전화번호, 주소, 우편번호, 나이, 성별 검색해보자.

명령어 : select *from member where name='안철영';

해당 테이블에서

성이 박씨만 검색해보자.

명령어 : select * from member where name like '박%';

해당 테이블에서

이름 가운데 글자가 '용' 인 사람을 검색해보자.

명령어 : select * from member where name like '_용%';

해당 테이블에서

이름이 ‘고재진’인 레코드의 전화번호를 123-4567로 변경한 뒤 데이터 확인해보자.

명령어 : update member set tel='123-4567' where name='고재진';                                                       명령어 : select name, tel from member where name='고재진';

해당 테이블에서

30대만 member 테이블에서 지워보자.

명령어 : delete from member where age >=30 and age<40;

member 테이블의 내용을 지워보자.

명령어 : delete from member;

 

댓글