MySQL
MySQL의 구조
- 표 (table)
- 글을 저정하는 표, 댓글을 저장하는 표 등 많은 표가 생기면 표들을 정리정돈할 필요성이 생긴다.
- 데이터베이스 (database)
- MySQL에서는 서로 연관된 표들을 그룹핑해서 연관되어 있지 않는 표들과 분리하여 사용하는 파일의 폴더같은 것이 있다. 그것이 바로 데이터베이스이다.
- MySQL에서는 데이터베이스라는 표현과 함께 스키마라는 표현을 같이 쓴다.
- 스키마(schema) : 연관된 표들을 서로 그룹핑할 때 사용하는 일종의 폴더라고 생각하자
- 데이터베이스 서버 (database server)
- 이렇게 많아진 스키마들을 저장하는 곳이 바로 데이터베이스 서버이다.
- MySQL이라는 프로그램을 설치한 것은 데이터베이스 서버라는 프로그램을 설치한 것이다.
- 그 프로그램이 갖고있는 기능성을 이용하여 우리는 여러 가지 작업을 하는 것이다.
- 표 < 데이터베이스 == 스키마 < 데이터베이스 서버
데이터베이스로 얻을 수 있는 효용
- 데이터베이스는 자체적인 보안 체계를 가지고 있기 때문에 좀 더 안전하게 데이터를 보관할 수 있다는 장점이 있다.
- 그 외에도 권한 기능이 있어서 MySQL 에 여러 사람을 등록할 수 있다.
- ex) hyerim : 이 스키마에 대해 읽기 쓰기 수정 삭제를 모두 할 수 있는 권한을 가지고 있다.
younghee : 하나의 테이블만을 제어할 수 있는 권한을 가지고 있다.
- 이처럼 사용자마다 차등적으로 권한을 부여할 수 있다.
서버 접속
mysql 서버 접속
mysql -u root -p
- mysql 서버 접속
- 명령어를 친다음 비밀번호를 입력하면 된다.
데이터베이스 생성
mysql> CREATE DATABASE opentutorials;
Query OK, 1 row affected (0.03 sec)
- CREATE DATABASE 데이터베이스이름;
- 위의 명령을 통해 데이터베이스를 생성할 수 있다.
- 명령 맨 뒤에는 세미콜론(;)을 붙여주자
데이터베이스 삭제
mysql> DROP DATABASE opentutorials;
Query OK, 0 row affected (0.02 sec)
- DROP DATABASE 데이터베이스이름;
- 위의 명령을 통해 데이터베이스를 삭제할 수 있다.
데이터베이스 조회
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| 23th_jjang |
| information_schema |
| mysql |
| opentutorials |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.01 sec)
- SHOW DATABASES;
- 위 명령을 통해 생성한 데이터베이스들을 볼 수 있다.
데이터베이스 사용
mysql> USE opentutorials;
Database changed
- USE 데이터베이스 이름;
- 지금부터 내가 내리는 명령은 opentutorials 라는 스키마의 표를 대상으로 한 명령이다!
SQL
- Structured Query Language
- Structured
- 구조화하다
- 관계형 데이터 베이스는 기본적으로 표의 형태로 데이터를 정리정돈(구조화)한다.
- Query
- 데이터베이스에게 요청한다, 질의한다는 뜻
- 데이터베이스에게 데이터를 읽어줘! 삭제해줘! 넣어줘!
- Language
- 데이터베이스에게 아무렇게나 요청해도 들어주는 것이 아니다.
- 데이터베이스와 인간이 모두 이해할 수 있는 공통의 약속에 따라 데이터베이스 서버에게 요청해야 한다.
- 그 때 사용하는 언어가 SQL Language이다.
SQL의 특징
- 어떤 컴퓨터 언어보다도 쉽다!
- 중요하다!
- 압도적인 다수의 데이터베이스 프로그램들이 SQL 을 통해 동작한다.
- 하루에도 나도 모르게 SQL에 의한 수많은 정보 서비스들을 이용하고 있다.
- 가성비가 뛰어나다 ^_^
SQL 용어
- 표 == table
- 행 == row, record
- 열 == column