Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

Leeyanggoo

[MySQL] MySQL에 대해 알아보자!! 본문

2023/MySQL

[MySQL] MySQL에 대해 알아보자!!

Leeyanggoo 2023. 3. 13. 22:01

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다.

MySQL은 다양한 운영 체제에서 사용할 수 있으며, 대부분의 웹 응용 프로그램에서 데이터베이스 시스템으로 많이 사용됩니다. MySQL은 클라이언트/서버 모델을 기반으로합니다. 이것은 MySQL 서버가 데이터베이스를 호스팅하고, 클라이언트 애플리케이션이 서버에 연결하여 데이터베이스에 액세스할 수 있도록 합니다. MySQL은 다양한 클라이언트 프로그램 및 API를 지원하여, 여러 다른 프로그래밍 언어로 쉽게 데이터베이스를 사용할 수 있습니다.

MySQL은 다양한 기능을 제공합니다. 이 중 일부 기능은 다음과 같습니다.

 

  1. 데이터의 저장과 검색: MySQL은 테이블로 구성된 데이터베이스에서 데이터를 저장하고 검색할 수 있습니다.
  2. 데이터의 백업과 복원: MySQL은 데이터베이스를 백업하고 복원하는 기능을 제공합니다.
  3. 보안: MySQL은 데이터베이스 보안을 위한 다양한 기능을 제공합니다.
  4. 병행성 제어: MySQL은 여러 사용자가 동시에 데이터베이스에 액세스하는 것을 허용하며, 이를 위해 병행성 제어 기능을 제공합니다.
  5. 트랜잭션 처리: MySQL은 트랜잭션 처리를 지원하며, 데이터베이스의 일관성과 무결성을 유지할 수 있습니다.

MySQL은 다양한 용도로 사용됩니다. 대표적으로 웹 응용 프로그램, 데이터 분석, 사무실 자동화 등에서 사용됩니다. MySQL은 또한 다른 데이터베이스 시스템과 함께 사용될 수 있으며, 다양한 플러그인 및 확장 기능을 제공합니다.

MySQL은 PHP 스크립트 언어와 상호 연동이 잘되는, 오픈소스로 개발된 무료 프로그램입니다. 그래서 홈페이지나 쇼핑몰(워드프레스, Cafe24, 그누보드, 제로보드) 등의 웹 개발에 일반적으로 널리 사용하고 있습니다.

 

MySQL 설치

MAMP란 웹사이트를 개발할 때 쓰이는 기술 스택인 macOS, Apache, MySQL, PHP의 약어이자 솔루션 스택입니다.

https://www.mamp.info/en/downloads/

 

 

위의 링크를 클릭하고 들어간 뒤에 자신의 운영체제에 맞는 MAMP를 다운로드 받아서 설치합니다.

 

 

설치를 하고 MAMP를 켜면 방화벽을 허용해 달라고 나오는데 방화벽 허용을 해줘야 합니다!!

그렇게 설정을 하고 나면 우측 하단에 보이는 Servers가 활성화됩니다.

 

MySQL 실행

 

MySQL을 실행하기 위해선 먼저 "명령 프롬프트(Command Prompt, cmd.exe)" 창을 켜야 합니다.

윈도우는 작업표시줄 하단의 돋보기나 실행 창에 cmd를 입력해서 키도록 합시다!

 

 

윈도우 : cd c:\/MAMP/bin/mysql/bin
로그인 : mysql -uroot -proot

맥 : cd /Applications/MAMP/Library/bin
로그인 : ./mysql -uroot -proot
c:\MAMP\bin\mysql\bin>mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

 

이제 명령 프롬프트(cmd)에 하단의 텍스트를 입력하여 MySQL에 들어가서 로그인을 해봅시다.

"uroot"는 user를 뜻하고, "proot"는 password를 뜻합니다.

프롬프트의 명령어는 항상 세미콜론(;)으로 마무리 짓습니다.

만약 세미콜론 없이 엔터를 치게 되면 다음 줄로 넘어가기 때문에 주의해야 합니다!!

 

데이터베이스

데이터베이스 보기

show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)    //현재 데이터베이스 목록

 

"show databases;"는 내가 현재 위치한 곳의 데이터베이스 목록을 보여주는 명령어입니다.

목록을 보는 명령어는 복수형(-s or -es)을 씁니다.

Database 하단의 목록이 데이터입니다.

 

데이터베이스 만들기

create database 데이터베이스 이름;
mysql> create database sample01;
Query OK, 1 row affected (0.01 sec)     //"sample01" 데이터 생성

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sample01           |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

 

"create database 데이터베이스 이름;"을 치면 새로운 데이터베이스를 만들 수 있습니다.

저는 예제로 만들기 위해 "sample01"로 만들었습니다!

 

데이터베이스 사용

use 데이터베이스 이름;
mysql> use sample01;
Database changed        //use로 데이터베이스 사용

 

"use 데이터베이스 이름;"은 사용할 데이터베이스를 선택할 때 사용합니다.

저는 만든 "sample01"을 사용한다고 했습니다.

 

데이터베이스 삭제

drop database 데이터베이스 이름;
mysql> drop database sample01;
Query OK, 0 rows affected (0.03 sec)    //drop으로 삭제

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)    //목록에서 sample01 없어진 걸 확인

 

생성한 데이터베이스를 삭제하기 위해선 "drop" 명령어를 사용합니다.

"drop database" 후에 삭제할 데이터베이스의 이름을 적고 세미콜론(;)으로 마무리한 뒤 엔터를 하면 됩니다.

"show databases"로 데이터베이스가 삭제됐는지 확인할 수 있습니다.

 

테이블

테이블 만들기

create table 테이블 이름;
create table member (
    myMemberID int(10) unsigned auto_increment,
    youEmail varchar(40) NOT NULL,
    youName varchar(20) NOT NULL,
    youPass varchar(20) NOT NULL,
    youBirth int(20) NOT NULL,
    youAge int(5) NOT NULL,
    regTime int(20) NOT NULL,
    PRIMARY KEY (myMemberID)
) charset=utf8;

 

테이블은 데이터가 모여서 정리된 엑셀의 표라고 생각하시면 이해하기 쉽습니다.

데이터베이스를 만들었던 것처럼, 테이블은 "create table" 후에 만들 테이블 이름을 적으면 됩니다.

저는 예제로 쓸 member table을 입력했습니다.

 

테이블 전체 보기

show tables;
mysql> show tables;
    +--------------------+
    | Tables_in_sample01 |
    +--------------------+
    | member             |
    +--------------------+
    1 row in set (0.00 sec)    

 

"show tables;"는 만든 테이블의 목록을 볼 때 사용합니다.

이전의 데이터베이스의 목록을 볼 때 "show databases;"를 사용했던 것처럼 말이죠!

목록을 보는 명령어는 복수형(-s or -es)을 씁니다.

 

테이블 보기

desc 테이블 이름;
mysql> desc member;
    +------------+------------------+------+-----+---------+----------------+
    | Field      | Type             | Null | Key | Default | Extra          |
    +------------+------------------+------+-----+---------+----------------+
    | myMemberID | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
    | youEmail   | varchar(40)      | NO   |     | NULL    |                |
    | youName    | varchar(20)      | NO   |     | NULL    |                |
    | youPass    | varchar(20)      | NO   |     | NULL    |                |
    | youBirth   | int(20)          | NO   |     | NULL    |                |
    | youAge     | int(5)           | NO   |     | NULL    |                |
    | regTime    | int(20)          | NO   |     | NULL    |                |
    +------------+------------------+------+-----+---------+----------------+
    7 rows in set (0.00 sec)

 

테이블의 내용을 보고 싶다면 "desc" 명령어를 이용합니다.

"desc 테이블 이름;"을 치면 테이블 속에 들어있는 데이터를 볼 수 있습니다.

 

테이블 삭제

drop table 테이블 이름;
mysql> drop table member;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
Empty set (0.00 sec)

 

만든 테이블을 삭제하는 것 또한 데이터베이스 삭제 방법과 동일합니다.

"drop" 명령어를 이용하는 것입니다.

항상 생성 혹은 삭제 후에는 "show databases/tables"를 이용해 확인하면서 진행하도록 합시다!!