-
[산대특] MySQL, WorkBench, PHP (DB 끝!)[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/DBMS 2024. 10. 10. 17:09
1010
MySQL 데이터베이스는 mysqldump라는 명령어로 백업한다.
mysqldump -u root -p cent_db > cent_bd.bak.sql
불러 올릴 때 => source 위치
원격에서 mysql -u root -prootoor -h 타겟_DB_서버해서 원격 작업 가능
타겟 DB_서버에서는 grant all privileges on *.* to 'root'@'%' identified by rootoor;
사전에 권한을 설정해 두어야 원격으로 들어올 수 있다.
1) MySQL 테이블 조작
① use(OR connect) centos_db; 하고,
a. show tables; 해서 cent_tbl을 확인한 뒤,
b. desc cent_tbl; 해서 열_명을 보고
c. rename table cent_tbl to centos_tbl; 식으로 테이블_명을 변경할 수 있다.
② 몇 가지를 작업을 해본다.
a. select * from cent_tbl; 해서 모든 데이터를 다 보고
b. select * from cent_tbl
where first_name='Bee'; 해서 하나의 조건을 주거나
=>select * from cent_tbl
where first_name='Bee' and town='Incheon'; 해서 두 개의 조건을 주거나
c. select * from cent_tbl
order by last_name DESC; 해서 내림차순으로 정렬해서 본다.
=>DESC 대신에 ASC를 사용하면 오름차순으로 정렬한다.
d. 보이는 개수를 제한한다면 limit N을 사용해서
select * from centos_tbl
order by last_name DESC limit 2; 해서 두 개의 데이터만 볼 수도 있다.
=>Oracle에서는 rownum =< 2식으로 해준다.
2) 열, 데이터 변경(alter), 업데이트(update), 삭제(delete) 구문
① 먼저 작업할 테이블에 대해서 기본 정보를 보는데
a. use cent_db; 하고,
b. show tables;
c. desc cent_tbl;
d. select * from cent_tbl; 해본 뒤
② 항목에 대한 변경부터 알아본다.
=>alter ~ add/drop/change를 사용해서 새로운 열_명을 넣고/삭제/변경할 수 있다.
a. 항목_명 추가
=>add ~ 를 사용한다.
alter table cent_tbl
add address varchar(30) after town; 해서 town 항목 뒤에 새로운 항목 address를 넣고,
b. select * from cent_tbl; 해서 확인한다.
현재 address에는 null 값으로 채워져 있다.
c. 항목_명 변경
=>change ~ 를 사용한다.
alter table cent_tbl
change town city varchar(20); 해서 town 항목을 city 항목으로 변경한다.
d. select * from cent_tbl; 해서 변경된 것을 확인한다.
③ 데이터의 내용 변경
=>update ~ set ~를 사용한다.
a. update cent_tbl
set city='Bucheon'
where id='7'; 해서 id=7인 제갈량의 city를 Daejeon에서 Bucheon으로 변경해주고,
b. select city from cent_tbl
where id='7'; 해서 확인한다.
④ 열과 행 삭제
■ 행 삭제는 delete ~ 를 사용한다.
a. delete from cent_tbl
where first_name='Ryang'; 해서 제갈량의 행(레코드)를 삭제하고,
b. select * from centos_tbl; 해서 확인한다. id=7번이 삭제되었다.
=>한 번에 여러 행을 동시에 삭제한다면
delete from cent_tbl where id in (10, 11, 12); 식으로 해주면 된다.
여기서 in (A, B)는 A or B의 의미이다.
■ 항목_명(열) 삭제는 drop (column) 열_명을 사용한다.
a. alter table cent_tbl
drop (column) address; 해서 다시 address 칼럼을 삭제하고,
b. select * from cent_tbl; 해서 확인한다.
create table cent2_tbl LIKE cent_tbl; 하면 데이터는 빼고 테이블 구조만 복사된다.
insert into cent2_tbl SELECT * FROM cent_tbl; 하면 데이터까지 모두 복사해온다.
=>create table cent3_tbl AS select * from cent_tbl; 하면 모든 데이터를 복사해오면서 테이블 생성
create table cent4_tbl AS select first_name, phone from cent_tbl;
하면 세 개의 항목만 데이터까지 복사해서 테이블 생성
③ 테이블이나 데이터베이스 삭제
=>DROP ~을 사용하면 된다.
a. drop database cent_db; 하면 cent_db가 삭제된다.
b. drop table cent4_tbl; 해서 테이블을 삭제하고,
테이블 구조는 그대로 놔두고 그 안의 데이터만 삭제할 수도 있는데 TRUNCATE ~를 사용한다.
=>truncate table cent3_tbl; 하면 테이블의 구조는 그대로 있고 테이블 안의 데이터만 삭제되는데 LIKE ~ 로 테이블 구조만 복사했을 때와 같아지게 된다.
create user 'centos'@'%' identified by 'centos';
=> 원격에서 들어올 수 있는 사용자와 패스워드가 생성된다.
grant all privileges(OR insert, select, delete) on *.*(OR cent_db.cent_tbl) to 'centos';
grant insert, select, delete on cent_db.* to 'centos2'@'%' identified by 'centos2';
하면 centos2 사용자에게 일부 권한을 주면서 원격에서 접속하게 한다.
show grants for centos3@'%'; 해서 centos3 사용자가 가지고 있는 권한을 보고
revoke delete on cent_db.* from 'centos3'@'%'; 해서 권한을 일부 뺏는다.
set password for 'centos3'@'%'=password('rootoot');
하면 원격으로 들어오는 centos3 .사용자의 패스워드를 rootoor로 변경한다.
rename user 'centos3'@'%' to 'centss'@'%';
해서 원격에서 들어오는 centos3 사용자를 centt 사용자면으로 변경한다.
drop user centss; 해서 사용자를 삭제할 수 있다.
ls /var/lib/mysql/mysql 하면 ~.frm, ~.MYD, ~.MYI 확장자 파일들이 보이는데
■ ~.frm(format file) : 테이블 구조가 저장되어져 있는 파일
■ ~.MYD(MYsql Data file) : 실제 데이터가 저장되어져 있는 파일
■ ~.MYI(MYsql Index file) : 인덱스 정보가 저장되어져 있는 파일
** MySQL에서는
NOT LIKE, LIKE, IN(), JOIN, Group by, order by, SubQuery, Constraints, Index, View, ..등이 있다.
PHP 는 웹에서 실행되는 프로그래밍 언어.
웹은 웹 브라우저(Chrome 등 기타 모두)가 HTML 포맷만 해석한다.
HTML은 정적인 페이지만 보인다.
html 포맷 안에 PHP가 들어간다.
👏 부분를 실행한 뒤 결과만 html 파일로 반환시킨다. 반환된 HTML 내용은 외부로 보인다.
=> 하지만 브라우저에서 실행하면 기본 포맷이 HTML 이므로 이 HTML 부분을 모두 빼고 PHP 부분만 프로그래밍해서 실행시킬 수도 있다. 이때의 파일 포맷은 ~.php가 되고 웹 상에서 실행된다. (그래서 PHP 파일만 실행시켜도 html 로 보인다)
<html>
<?php
1+2 = 3 , 결과인 3 만 html 파일로 보인다. 👏
?>
</html>
MySQL WorkBench 사용하기
MySQL을 GUI로 관리할 때 Linux에서는 phpMyAdmin으로
Windows 7/10 등에서는 MySQL WorkBench라는 도구를 설치해서 사용.
* Database를
Oracle + SQL Developer
MySQL + phpMyAdmin + MySQL Workbench
APM(Apache2 + PHP + MySQL)을 이용해서 주소록을 작성
=>추가로 공부하면 좋은 것들
PHP programming 맛보기, Shell Script programming, PowerShell programming 맛보기,
Python을 공부하기, C도 공부하기, Java을 공부하기
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > DBMS' 카테고리의 다른 글