본문으로 바로가기
반응형

데이터베이스는 쉽게말하면 표다.

 

Maria 설치

apt-get을 이용하는 방법이 설치용 파일을 다운받아서 하는 방법보다 쉬우므로 그렇게 진행하도록 한다.

 

일단 시스템에 업데이트가 있나 먼저 확인 한 후에 설치를 진행한다. 터미널에 다음 명령어를 입력해준다.

sudo apt-get update

명령어를 실행하면 다운받는 것이 주루륵 뜬다

 

sudo apt-get install mariadb-server mariadb-client

여러개를 적어서 패키지를 한꺼번에 다운 받을 수도 있다.

Yes를 눌러서 설치를 진행한다. 약 150MB를 설치하면되므로 기다려주면된다

 

 

설치가 완료됬으면 터미널에 명령어를 입력하여 Maria 데이터베이스 서버에 접속한다.

sudo mysql -uroot

Maria 접속 화면

 

 

접속하고나서 기본적으로 제공되는 Database 목록을 보기위해 다음 명령어를 입력한다.

show databases;

아직 3개의 자료가 있는 것을 확인할 수 있다

 

 

설치한 마리아 DB서버에 예제로 사용할 mydb 라는 데이터베이스를 생성하고 해당 database을 사용하기위해 다음 명령어를 입력한다.

create database mydb collate utf8_general_ci; 

 

DB 생성을 입력하고 show datases; 명령어로 확인할 수 있다

 참고로 utf8_general_ci 값은 한글을 사용하기위한 설정 값이다.

 라즈베리파이에서 Maria 데이터베이스 서버를 설치하였고, mydb라는 database를 만들었다. 이제 기본적인 SQL문에대해서 배워보도록 하자.

 

 

Maria 데이터베이스 서버에 SQL을 이용한 회원테이블 작성

 데이터베이스에 저장될 데이터들은 칼럼(Column), 레코드(Record), 테이블(Table), 데이터베이스(DataBase)로 나타내어진다.

칼럼 : 공통된 항목을 골라서 모아둔것 

테이블 : 표

데이터베이스 :  표를 많이 모아둔 창고

열(칼럼), 속성(Attribute) : 세로 한줄

행, 레코드 : 가로 한줄

 

참고로 리눅스(라즈베리파이)운영체제는 대소문자를 구별한다.

work와 Work의 디렉터리가 서로 공존하는 것을 볼 수 있다

 

 

참고로 윈도우 바탕화면에 새 폴더 이름을 'work', 'Work'로 생성해보면 같은 이름의 폴더가 있다고 뜬다.

 

 

데이터베이스를 삭제하는 명령을 입력해보자.

drop database mydb;

drop은 DB를 삭제해주는 명령어이다

 

system함수로 입력하면 Shell(쉘)의 명령어를 사용하게되어서 Maria에서 밖의 라즈베리파이의 명령어를 사용할 수 있다.

 system ls   # 세미콜론을 붙여도 상관없다

 

system clear

화면을 클리어해준다.

위 이미지에서 clear를 해준 모습

 

 

 만약 실수해서 화살표가 나왔을때 무슨 짓을해도 화살표만 생길때가 있을 수 있다. 이때는 \c (역슬래시 c)를 입력해주면 해결할 수 있다.

화살표에서 빠져나온 모습

 

 

use mydb

USE 명령어는 여러 데이터베이스를 사용할때 사용된다.

다른 데이터베이스에 있는 테이블을 사용하고 싶을때, USE 명령을 사용해서 사용할 테이블이 있는 데이터베이스를 지정하고 그 다음 테이블을 사용하면 된다.

mydb 로 설정된모습

 

해당 명령어를 입력해서 테이블을 생성해주자.

MariaDB [mydb]> CREATE TABLE tblRegister(
    -> id VARCHAR(20) NOT NULL,
    -> pwd VARCHAR(20) NOT NULL,
    -> name CHAR(6) NULL,
    -> num1 CHAR(6) NULL,
    -> num2 CHAR(6) NULL,
    -> email VARCHAR(30) NULL,
    -> phone VARCHAR(30) NULL,
    -> zipcode CHAR(5) NULL,
    -> address VARCHAR(60) NULL,
    -> job VARCHAR(30) NULL
    -> );

 

 

테이블이 생성됬는지 확인해보자.

show tables;

 

show tables는 현재의 DB에 어떤 테이블들이 생성되어있는가. 를 볼 수 있다.

desc tblRegister;

이상 없이 테이블이 생성되었으면 desc tblRegister 명령어를 사용하여 테이블의 속성을 확인한다.

테이블의 설정값들이 설정되있는 것을 확인할 수 있다

 

id를 primary key로 변경.(primary key는 테이블 안에 있는 여러 행들과 구분하니 위한 것이라 생각하면 된다)

ALTER TABLE tblRegister ADD PRIMARY KEY (ID);

ALTER 명령어는 새로운 칼럼을 추가하거나 삭제 또는 데이터 형을 변경하고자 할 때 사용하는 명령어이다.

 

 

 

데이터를 조회하는 명령

테이블 안에있는 데이터를 조회하기 위한 명령이다.

select * from tblRegister;

현재 테이블의 속성만 만들었지 테이블은 만들지 않았기때문에 비었다고 나온다

 

 

데이터 입력 명령

테이블에 실제 데이터를 입력하기 위한 명령이다.

VALUES 절 안에 문자(문자열)의 경우는 ' ' 형식으로 감싸야하고, 숫자형의 경우는 ' '로 감싸면 안된다.

INSERT INTO 
tblRegister(ID, PWD, NAME, NUM1, NUM2, EMAIL, PHONE, 
ZIPCODE, ADDRESS, JOB) 
VALUES('rorod', '1234', '이경미', '123457', '123456', 
'rorod@jspstudy.co.kr', '010-1111-1111', '1234' , '부산 연제구', '프로그래머');

 INSERT 명령을 통해서 필요한 데이터를 입력하고, 다시 테이블에 있는 데이터를 조회하기위해 SELECT 명령을 사용한다. 또, 데이터를 입력할때 ID가 프라이머리 키 이므로 중복되는 값이되면 안된다.

Maria는 각 명령어가 끝나면 뒤에 ;(세미콜론) 를 붙여서 명령의 끝을 알려줘야 한다.

 

 

 

데이터 변경 명령

ID가 'rorod'인 행에서 PWD 칼럼의 값을 '4321'로 변경한다는 뜻의 명령어이다.

update tblRegister SET PWD = '4321'
WHERE Id = 'rorod';

select문으로 id, pwd가 변경됬는지 확인

 

 

 

데이터 삭제 명령

삭제할 필요가있는 데이터를 삭제하는 명령어이다.

DELETE FROM tblRegister WHERE ID = 'rorod';

tblRegister라는 테이블에 id가 'rorod'인 행을 삭제한다는 뜻이다.

 

 

 

파이썬과 Maria 데이터베이스 서버 Connection

라즈베리파이에 설치한 Maria 데이터베이스 서버와 파이썬을 연결하고 tblRegister에 입력한 레코드를 출력하는 예제를 해보자.

 

파이썬으로 PyMySQL 설치

python3 -m pip install PyMySQL

 

 

 파이썬과 Maria 연결에 필요한 설정

 먼저 mysql 데이터베이스에 있는 user 테이블에 root 계정의 plugin 값을 그림과 같이 수정을 해야한다.

이렇게 빈값으로해야 파이썬에서 연결 가능하기 때문이다.

user 테이블이 mysql 데이터베이스 안에 있는 테이블이기 때문에 먼저 use mysql을 실행하고 UPDATE를 해야한다.

update user set plugin='';
FLUSH PRIVILEGES;

 

 외부에서 접속하려면 root 비밀번호가 필요하다. Maria 데이터베이스 서버 설치시 root 계정의 비밀번호는 빈값으로 설정되어있다. 그러나 파이썬 코드에서는 반드시 비밀번호가 입력되어야하므로 root 계정의 비밀번호를 설정해주고 변경된 사항들을 저장해준다.(암호암호암호 부분에 본인의 패스워드를 입력해주면된다)

update user set password=password('암호암호암호암호암호') where user='root';

root 계정 비밀번호 변경

 

비밀번호를 입력했으면 다시 flush를 해준다.

이때 비밀번호를 바꿨기 때문에 mysql을 접속할때 -P암호암호암호   를 입력해야 접속할 수 있다.

 

 

 

 

다음과 같이 코드를 작성하고 저장한다.

import pymysql

db = pymysql.connect(host='localhost', user='root', password='암호암호암호', 
db = 'mydb', charset='utf8')
cur = db.cursor()
cur.execute("SELECT*FROM tblRegister")
rows = cur.fetchall()
print(rows)
db.close()

 

파이썬으로 실행해보자

 

오늘 라즈베리파이의 마무리로 아래의 코드를 쳐보고 실행해보자.

webapps

    -ch07

      -mariaConnection.py

vi mariaConnection.py
import pymysql

db = pymysql.connect(host='localhost', user='root', password='1234', 
db = 'mydb', charset='utf8')
cur = db.cursor()
cur.execute("SELECT*FROM tblRegister")
rows = cur.fetchall()
for temp in rows:
	print(temp)
print()
print('=========================')
print()
cur.execute("SELECT id, pwd FROM tblRegister")
rows = cur.fetchall()
for temp in rows:
	print(temp)
print()
print('=========================')
print()
cur.execute("desc tblRegister")
rows = cur.fetchall()
for temp in rows:
	print(temp)
print(rows)
db.close()

 

 

파이썬 실행 화면

 

 

 

 

반응형