RHCE : 데이터베이스 서비스 – 간단한 데이터베이스 스키마 생성

RHCE 주제입니다. CertDepot 사이트를 번역 및 내용 추가하였으며, 컨텐츠 관련 모든 권리는 CertDepot에 있습니다.

시작하기 전에

데이터베이스 스키마는 다음으로 구성된다.

사전 준비사항

먼저, MariaDB 데이터베이스 설치를 하여야 한다.

실습

1. 이전에 생성한 비밀번호로 데이터베이스 서버에 접속한다.
[root@server2 ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
2. 그 다음 데이터베이스(test라 가정한다)를 생성한다.
MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> 

노트: DROP DATABASE 커맨드를 데이터베이스를 삭제하는데 사용할 수 있다.

3. user라는 사용자에게 권한을 주도록 한다.
MariaDB [(none)]> grant all on test.* to user@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

노트: 서버 설치 과정에서 필요한 root 계정과 관련된 비밀번호가 있다. 그리고, 데이터베이스 소유자(여기서는 *user**라 가정)와 관련된 비밀번호가 있다. 두 비밀번호를 같게 하는게 훨씬 쉬울 것이다.

4. MariaDB 커맨드 라인을 종료한다.
MariaDB [(none)]> quit
Bye
[root@server2 ~]# 
5. 그 다음, 사용자의 직접 데이터베이스를 접근해본다.
[root@server2 ~]# mysql -u user -p test
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [test]> 
6. 사용 가능한 데이터베이스들의 목록을 보려면 다음과 같이 입력한다.
MariaDB [test]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [test]> 

노트: use커맨드를 통해 데이터베이스에 들어갈 수 있다. 예를 들어, use test;를 입력하면 이전 과정에서 생성한 데이터베이스에 들어갈 수 있다.

7. addresses라는 이름의 테이블을 다음과 같이 생성해보자.
MariaDB [test]> create table addresses(id int(10) unsigned, name varchar(20), address varchar (40));
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> 

노트: DROP TABLE커맨드를 이용하여 테이블을 삭제할 수 있다.

8. 데이터베이스에 생성한 테이블들의 목록을 출력받고 싶다면 다음과 같이 입력한다.
MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| addresses      |
+----------------+
1 row in set (0.01 sec)

MariaDB [test]> 
9. 특정 테이블(여기서는 addresses로 가정)의 정의를 얻고 싶다면 다음과 같이 입력한다.
MariaDB [test]> desc addresses;
+---------+------------------+------+-----+---------+-------+
| Field   | Type             | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+-------+
| id      | int(10) unsigned | YES  |     | NULL    |       |
| name    | varchar(20)      | YES  |     | NULL    |       |
| address | varchar(40)      | YES  |     | NULL    |       |
+---------+------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

MariaDB [test]> 
10. addresses테이블과 연관된 create table 구문을 얻고 싶으면 다음과 같이 입력한다.
MariaDB [test]> show create table addresses;
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                                                                    |
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| addresses | CREATE TABLE `addresses` (
  `id` int(10) unsigned DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

MariaDB [test]> 

유용한 팁

MariaDB 프롬프트에서, help커맨드를 통해 문법과 관련된 여러가지 정보를 얻을 수 있다.

MariaDB [test]> help drop table
Name: 'DROP TABLE'
Description:
Syntax:
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE removes one or more tables. You must have the DROP privilege
for each table. All table data and the table definition are removed, so
be careful with this statement! If any of the tables named in the
argument list do not exist, MySQL returns an error indicating by name
which nonexisting tables it was unable to drop, but it also drops all
of the tables in the list that do exist.

*Important*: When a table is dropped, user privileges on the table are
not automatically dropped. See [HELP GRANT].

Note that for a partitioned table, DROP TABLE permanently removes the
table definition, all of its partitions, and all of the data which was
stored in those partitions. It also removes the partitioning definition
(.par) file associated with the dropped table.

Use IF EXISTS to prevent an error from occurring for tables that do not
exist. A NOTE is generated for each nonexistent table when using IF
EXISTS. See [HELP SHOW WARNINGS].

RESTRICT and CASCADE are permitted to make porting easier. In MySQL
5.5, they do nothing.

*Note*: DROP TABLE automatically commits the current active
transaction, unless you use the TEMPORARY keyword.

URL: http://dev.mysql.com/doc/refman/5.5/en/drop-table.html


MariaDB [test]> 

추가 자료

at4am의 프로필 이미지

at4am

2016년 04월 30일

글쓴이의 더 많은 글 읽어보기