SQL

MYSQL 정리

ture403 2023. 3. 13. 20:48

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

MYSQL

MYSQL

MySQL은 가장 많이 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다.

MySQL은 가장 많이 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. MySQL은 오픈 소스이며, 다양한 운영 체제에서 사용할 수 있습니다. MySQL은 일반적으로 웹 응용 프로그램, 데이터 분석 및 기업 응용 프로그램과 같은 다양한 분야에서 사용됩니다.

MySQL은 SQL(Structured Query Language)을 사용하여 데이터를 관리하며, 데이터를 효율적으로 저장, 검색, 수정 및 삭제할 수 있습니다. MySQL은 다중 사용자, 다중 스레드 및 다중 플랫폼 지원을 제공하여 대규모 응용 프로그램에서도 효과적으로 작동할 수 있습니다.

MySQL은 자유롭게 사용할 수 있으며, 다양한 커뮤니티 및 개발자가 지속적으로 업데이트와 개선을 진행하고 있습니다. MySQL은 또한 라이선스 비용이 없어서 비용 효율적인 데이터베이스 솔루션으로 인기가 있습니다.

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

MYSQL 설치

MAMP란 웹싸이트를 개발할때 쓰이는 기술 스택인 macOS, Apache, MySQL, PHP의 약어이자 솔루션 스택이다.
https://www.mamp.info/en/downloads/

실행

윈도우 : cd c:\/MAMP/bin/mysql/bin
로그인 : mysql -uroot -proot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
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.
맥 : cd /Applications/MAMP/Library/bin
로그인 : ./mysql -uroot -proot

데이터베이스

데이터베이스 보기

명령어 : show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)

데이터베이스 만들기

명령어 : create database 데이터베이스 이름;
mysql> create database sample01;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sample01           |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

데이터베이스 사용

명령어 : use 데이터베이스 이름;
use sample01;
Database changed

데이터베이스 삭제

명령어 : drop database 데이터베이스 이름;
mysql> mysql> drop database sample01;
Query OK, 0 rows affected (0.03 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

테이블

테이블 만들기

명령어 : create table 테이블 이름;
mysql> 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;
Query OK, 0 rows affected (0.05 sec)

테이블 전체보기

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

테이블 보기

명령어 : 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.01 sec)

테이블 삭제

명령어 : drop table 테이블 이름;
mysql> drop table nember;
ERROR 1051 (42S02): Unknown table 'sample01.nember'
mysql> drop table member;
Query OK, 0 rows affected (0.03 sec)

내부스키마란?

내부 스키마는 데이터베이스 내부에서 데이터를 저장하는 방식을 정의하는 스키마입니다. 즉, 데이터베이스 시스템에서 데이터를 어떻게 저장하고 관리할지에 대한 구조를 정의합니다. 이 구조는 데이터베이스 관리 시스템 (DBMS) 내부에서만 사용되며 일반 사용자에게는 보이지 않습니다.

외부스키마란?

외부 스키마는 데이터베이스 사용자가 접근할 수 있는 데이터베이스의 일부분에 대한 구조를 정의합니다. 즉, 사용자가 데이터베이스에 접근할 때 볼 수 있는 데이터의 구조를 말합니다. 각각의 사용자나 응용 프로그램에 대해 다른 외부 스키마를 정의할 수 있으며, 이는 데이터베이스 시스템에서 사용자 또는 응용 프로그램이 필요로 하는 데이터만 볼 수 있도록 하는 것입니다.

 

내부 스키마와 외부 스키마는 데이터베이스의 논리적 구조를 정의하며, 둘 모두 데이터베이스 시스템의 효율적인 운영과 데이터의 무결성을 보장하는 데 중요한 역할을 합니다.

개념스키마란?

개념 스키마는 데이터베이스의 전체적인 논리적 구조를 정의하는 스키마입니다. 즉, 데이터베이스에서 사용되는 모든 데이터와 그들 간의 관계를 포함하는 데이터베이스의 논리적 구조를 정의하는 것입니다.

개념 스키마는 데이터베이스 사용자와 데이터베이스 관리자 간의 인터페이스 역할을 하며, 데이터베이스 시스템의 논리적인 구조를 명확하게 정의합니다. 개념 스키마는 일반적으로 데이터베이스 설계 단계에서 정의되며, 이를 통해 데이터베이스 설계자가 데이터베이스 시스템의 구조를 이해하고, 다양한 사용자 그룹의 요구 사항을 충족시키기 위한 데이터베이스 시스템을 개발할 수 있습니다.