MySQL 데이터베이스 관리 기본

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 데이터베이스에서 다양한 DDL (Data Definition Language, 데이터 정의 언어) 작업을 수행하는 방법을 배우게 됩니다. 데이터베이스를 생성하고, 테이블을 만들고, 테이블 구조를 수정하고, 데이터를 삭제하고, 테이블과 데이터베이스를 삭제하는 방법을 배우게 됩니다.

👀 미리보기

MySQL DDL operations preview
MySQL table structure modification
MySQL table structure modification

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • sudo 명령을 사용하여 MySQL 서비스를 시작하고 데이터베이스에 접근하는 방법
  • 특정 문자 집합 (character set) 으로 데이터베이스를 생성하는 방법
  • 다양한 데이터 유형과 기본 키 (primary key) 를 사용하여 테이블을 생성하는 방법
  • 기본 키를 자동 증가 (auto-incremented) 시키는 등 테이블 구조를 수정하는 방법
  • DELETETRUNCATE를 사용하여 테이블에서 데이터를 삭제하는 방법
  • 테이블과 데이터베이스를 삭제하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • MySQL 에서 기본적인 DDL 작업을 이해할 수 있습니다.
  • 데이터베이스와 테이블을 생성하고 관리할 수 있습니다.
  • 필요에 따라 테이블 구조를 수정할 수 있습니다.
  • 테이블에서 데이터를 효율적으로 삭제할 수 있습니다.
  • 필요할 때 테이블과 데이터베이스를 삭제할 수 있습니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 88%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

MySQL 시작 및 데이터베이스 접속

이 단계에서는 sudo 명령을 사용하여 비밀번호 없이 MySQL 서비스를 시작하고 데이터베이스에 접근하는 방법을 배우게 됩니다.

  1. 다음 명령을 사용하여 MySQL 서비스를 시작합니다:
sudo service mysql start
  1. 비밀번호 없이 sudo 명령을 사용하여 MySQL 데이터베이스에 접근합니다:
sudo mysql

이제 다음 단계로 진행할 준비가 되었습니다.

✨ 솔루션 확인 및 연습

데이터베이스 및 테이블 생성

이 단계에서는 utf8mb4로 지정된 문자 집합 (character set) 을 사용하여 testddl 데이터베이스를 생성한 다음, 데이터베이스 내에 empdept 테이블을 생성하는 방법을 배우게 됩니다.

  1. utf8mb4로 지정된 문자 집합을 사용하여 testddl 데이터베이스를 생성합니다:
CREATE DATABASE IF NOT EXISTS `testddl` DEFAULT CHARACTER SET utf8mb4;
  1. testddl 데이터베이스를 사용합니다:
USE `testddl`;
  1. 다음 구조로 emp 테이블을 생성합니다:
CREATE TABLE `emp` (
  `eid` int(5) NOT NULL,
  `ename` varchar(50),
  `sal` DECIMAL,
  `deptno` int(5),
  PRIMARY KEY (`eid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. 다음 구조로 dept 테이블을 생성합니다:
CREATE TABLE `dept` (
  `did` int(5) NOT NULL,
  `dname` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`did`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

이제 testddl 데이터베이스와 empdept 테이블을 생성했습니다. 다음 단계로 넘어가겠습니다.

✨ 솔루션 확인 및 연습

테이블 수정

이 단계에서는 empdept 테이블의 기본 키 (primary key) 를 10 부터 시작하는 자동 증가 (auto-increment) 로 수정하는 방법을 배우게 됩니다. 또한 emp 테이블의 sal 필드의 데이터 유형 (data type) 을 정수형 (integer) 으로 수정합니다.

  1. emp 테이블의 기본 키를 10 부터 시작하는 자동 증가로 수정합니다:
ALTER TABLE `emp` AUTO_INCREMENT=10;
  1. dept 테이블의 기본 키를 10 부터 시작하는 자동 증가로 수정합니다:
ALTER TABLE `dept` AUTO_INCREMENT=10;
  1. emp 테이블의 sal 필드의 데이터 유형을 정수형으로 수정합니다:
ALTER TABLE `emp` MODIFY `sal` INT(5);

이제 empdept 테이블의 기본 키는 10 부터 시작하는 자동 증가로 설정되었으며, emp 테이블의 sal 필드의 데이터 유형은 정수형으로 수정되었습니다.

✨ 솔루션 확인 및 연습

테이블에서 데이터 삭제

이 단계에서는 empdept 테이블에서 모든 데이터를 삭제하는 방법을 배우게 됩니다.

  1. DELETE 문을 사용하여 emp 테이블에서 모든 데이터를 삭제합니다:
DELETE FROM `emp`;
  1. TRUNCATE 문을 사용하여 dept 테이블에서 모든 데이터를 삭제합니다:
TRUNCATE TABLE `dept`;

이제 empdept 테이블은 비어 있습니다.

✨ 솔루션 확인 및 연습

테이블 및 데이터베이스 삭제

이 마지막 단계에서는 emp 테이블과 testddl 데이터베이스를 삭제하는 방법을 배우게 됩니다.

  1. emp 테이블을 삭제합니다:
DROP TABLE `emp`;
  1. testddl 데이터베이스를 삭제합니다:
DROP DATABASE `testddl`;

다음 출력을 참조할 수 있습니다:

MariaDB [(none)]> USE `testddl`;
Database changed
MariaDB [testddl]> CREATE TABLE `emp` (
    ->   `eid` int(5) NOT NULL,
    ->   `ename` varchar(50),
    ->   `sal` DECIMAL,
    ->   `deptno` int(5),
    ->   PRIMARY KEY (`eid`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.005 sec)

MariaDB [testddl]> CREATE TABLE `dept` (
    ->   `did` int(5) NOT NULL,
    ->   `dname` varchar(50) DEFAULT NULL,
    ->   PRIMARY KEY (`did`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.004 sec)

MariaDB [testddl]> desc emp;
+--------+---------------+------+-----+---------+-------+
| Field  | Type          | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| eid    | int(5)        | NO   | PRI | NULL    |       |
| ename  | varchar(50)   | YES  |     | NULL    |       |
| sal    | decimal(10,0) | YES  |     | NULL    |       |
| deptno | int(5)        | YES  |     | NULL    |       |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.001 sec)

MariaDB [testddl]> ALTER TABLE `emp` AUTO_INCREMENT=10;
Query OK, 0 rows affected (0.005 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> ALTER TABLE `dept` AUTO_INCREMENT=10;
Query OK, 0 rows affected (0.003 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> ALTER TABLE `emp` MODIFY `sal` INT(5);
Query OK, 0 rows affected (0.006 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> desc emp;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| eid    | int(5)      | NO   | PRI | NULL    |       |
| ename  | varchar(50) | YES  |     | NULL    |       |
| sal    | int(5)      | YES  |     | NULL    |       |
| deptno | int(5)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.001 sec)

MariaDB [testddl]> DELETE FROM `emp`;
Query OK, 0 rows affected (0.000 sec)

MariaDB [testddl]> TRUNCATE TABLE `dept`;
Query OK, 0 rows affected (0.003 sec)

MariaDB [testddl]> show tables;
+-------------------+
| Tables_in_testddl |
+-------------------+
| dept              |
| emp               |
+-------------------+
2 rows in set (0.000 sec)

MariaDB [testddl]> DROP TABLE `emp`;
Query OK, 0 rows affected (0.002 sec)

MariaDB [testddl]> show tables;
+-------------------+
| Tables_in_testddl |
+-------------------+
| dept              |
+-------------------+
1 row in set (0.000 sec)

MariaDB [testddl]> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testddl            |
+--------------------+
5 rows in set (0.000 sec)

MariaDB [testddl]> DROP DATABASE `testddl`;
Query OK, 1 row affected (0.004 sec)

MariaDB [(none)]> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.000 sec)

축하합니다! DDL 종합 챌린지를 완료했습니다. 데이터베이스 생성, 테이블 생성, 테이블 구조 수정, 테이블에서 데이터 삭제, 테이블 및 데이터베이스 삭제 방법을 배웠습니다.********

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.