Spring Boot(JSP,Mybatis)

데이터베이스, 테이블 생성 작업

작성자
vita
작성일
2023-11-19 23:09
조회
153

데이터베이스, 테이블 생성 작업

 

1. HeidiSQL 실행

콘솔에서 명령어를 입력하여 MariaDB 를 사용할 수도 있지만 편리한 툴들이 많이 있습니다.  여기서는 MariaDB 를 설치할 때 함께 설치된 HeidiSQL 툴을 사용하겠습니다.

 

HeidiSQL 을 처음 실행하면 세션 관리자 화면이 출력됩니다.

신규 버튼을 누릅니다.





 

세션 이름은 root 라고 하겠습니다.  세션 이름은 나중에 바꿀 수 있으니 별로 중요하지 않습니다.

 

암호에 root 계정의 암호인 1234를 입력하고 저장 버튼을 누릅니다.  그리고 열기 버튼을 누릅니다.





 

 

2. 데이터베이스 생성

데이터베이스 관리시스템에 자료를 저장하기 위해서는 먼저 database를 만들고 그 안에 table을 만들어야 합니다.  

엑셀로 비유를 하겠습니다.  엑셀을 잘 사용하시는 분들은 데이터베이스도 잘 사용하시는 편입니다.  1개의 엑셀 파일에는 여러 개의 워크시트가 있습니다.  database를 엑셀 파일이라고 생각하시고 table을 워크시트라고 생각하시면 될 것 같습니다.

HeidiSQL의 쿼리 탭을 누르면 SQL 명령어를 입력할 수 있는 에디터가 열립니다.  

SQL은 Structured Query Language의 약자로 구조화된 질의 언어라는 뜻입니다.

데이터베이스에 저장된 자료를 읽고 쓰기 위한 명령어의 집합이라고 생각하시면 됩니다.





 

아래의 명령어를 입력합니다.

 


CREATE DATABASE web;


 

web이라는 이름의 database를 생성합니다.

 

해당 명령어를 마우스로 선택하고 우클릭하여 선택 실행을 클릭합니다. 단축키 Ctrl+F9를 사용하면 더 편리합니다.





 

 

3. 사용자 계정 생성

기본적으로 설치되어 있는 root 계정을 사용하여 자료를 관리하는 것도 가능합니다.

그런데 root 계정은 관리자 계정이므로 비밀번호가 노출되면 보안상 위험합니다.  그래서 일반사용자 계정을 별도로 만들어서 사용하는 것이 안전한 방법입니다.

 

사용자 계정을 만드는 방법은 아래와 같습니다.

 

create user '아이디'@'호스트' identified by '비밀번호';

 

아이디가 user 이고 비밀번호가 1234 인 계정을 만들겠습니다.

아래의 명령어를 입력하고 실행합니다.

 


create user 'user'@'%' identified by '1234';

create user 'user'@'localhost' identified by '1234';

flush privileges;


 

[해설]

 

'user'@'%' 계정은 호스트에 %를 사용했으므로 모든 ip에서 접근 가능한 계정입니다.  

'user'@'localhost' 계정은 localhost 에서만 접근 가능한 계정입니다.

사용자 계정을 만든 후 flush privileges 명령어를 입력해서 사용권한 관련 정보를 업데이트해야 작업이 완료됩니다.

 

 

4. 사용 권한 부여

사용자 계정을 만든 후에는 사용 권한을 부여해야 합니다.  사용권한을 부여하는 명령어는 아래와 같은 형식으로 입력합니다.

 

grant 사용권한 on 데이터베이스.테이블 to '아이디'@'호스트';

 

아래의 명령어를 입력하고 실행합니다.

 


grant all privileges on web.* to 'user'@'%';

grant all privileges on web.* to 'user'@'localhost';


 

[해설]

 

grant all privileges : 모든 권한을 부여합니다.

on web.* : web 데이터베이스의 모든 테이블들을 대상으로 합니다.

to 'user'@'%' : 모든 ip에서 접속할 수 있는 user 계정에게 합니다.

to 'user'@'localhost' : localhost 에서만 접속할 수 있는 user 계정에게 합니다.

 

 

5. user 계정으로 접속

현재 접속 중인 root 연결을 종료하기 위하여 [선택된 데이터베이스 연결 해제] 아이콘을 누릅니다.





 

user 계정으로 접속하기 위하여 [신규] 버튼을 누릅니다.





 

세션 이름에 user 를 입력합니다.

사용자에 user 를 입력합니다.

암호에 1234 를 입력합니다.

[저장] 버튼을 누릅니다.

[열기] 버튼을 누릅니다.





 

 

6. 테이블 생성 및 레코드 입력

[쿼리] 탭을 누릅니다.





 

아래의 명령어를 입력한 후 마우스로 전체 선택하고 [선택 실행]을 클릭합니다.

 


USE web;

CREATE TABLE product (

product_code INT AUTO_INCREMENT PRIMARY KEY,

product_name VARCHAR(100) NOT NULL,

description VARCHAR(5000),

price INT DEFAULT 0,

filename VARCHAR(500)

);

INSERT INTO product (product_name, description, price) VALUES ('사과', '맛있는 사과입니다.', 5000);

SELECT * FROM product;


 

[해설]

 

테이블을 생성하기 위해서는 먼저 어느 데이터베이스 속에 만들 것인지 정해야 합니다. 먼저 엑셀 파일을 선택하고 그 속에 엑셀 시트를 만드는 것과 비슷합니다.

 

 


USE web;


 

이름이 web인 데이터베이스를 선택합니다.

엑셀 파일에 아래와 같은 시트를 만든다고 하겠습니다.

이렇게 표 형식으로 출력할 수 있는 데이터를 저장하는 객체를 테이블이라고 합니다.

첫 행의 product_code, product_name, description, price, filename 은 컬럼 이름 또는 필드 이름이라고 합니다.

두번째 행부터는 실제 입력되는 데이터입니다.

테이블에 저장되는 한건의 자료를 레코드라고 합니다.





 

테이블을 만드는 문법은 아래와 같습니다.

 

CREATE TABLE 테이블이름 (

필드명 자료형 옵션

);

 

 


CREATE TABLE product


 

테이블 이름은 product입니다.

 

 


product_code INT AUTO_INCREMENT PRIMARY KEY


 

product_code 필드는 정수형입니다.  AUTO_INCREMENT가 붙으면 입력하지 않아도 자동으로 번호가 증가되는 일련번호 필드입니다.

PRIMARY KEY 는 주민등록번호, 휴대폰번호 등 중복되지 않는 필드에 붙입니다.




product_name VARCHAR(100) NOT NULL,


 

상품이름은 가변사이즈 문자열로 100바이트까지 입력이 가능하다는 것입니다.  VARCHAR 자료형은 사이즈가 고정적이지 않은 문자열을 저장하는 자료형입니다.  MariaDB에서는 최대 65535 바이트까지 지정할 수 있습니다.

NOT NULL은 값이 반드시 입력되어야 하는 필드라는 뜻입니다.




price INT DEFAULT 0


 

상품가격은 정수형이며 입력하지 않을 경우 기본값은 0입니다.




INSERT INTO product (product_name, description, price) VALUES ('사과', '맛있는 사과입니다.', 5000);


 

product 테이블에 레코드의 내용을 입력합니다. 상품코드는 일련번호로 자동으로 추가되므로 나머지 필드들만 입력합니다.  product_name, description, price 필드에 '사과', '맛있는 사과입니다.', 5000 값들이 지정한 순서대로 입력됩니다.  문자열은 작은따옴표로 감싸고 숫자는 따옴표를 사용하지 않습니다.




SELECT * FROM product;


 

product 테이블의 모든 레코드의 모든 필드를 조회합니다.

 

 

Scroll to Top