BoostCource/MySQL

[MySQL] MySQL 사용하기

칸타탓 2018. 7. 15. 14:20

<2. DB 연결 웹 애플리케이션 - MySQL>

[boostcourse full-stack] http://www.edwith.org/boostcourse-web




* SQL (Structured Query Language)


  • 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어이다.

  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다.

  • DML (Data Manipulation Language): 데이터를 조작하기 위해 사용한다.
    INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당합니다.

  • DDL (Data Definition Language): 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용한다.
    CREATE, DROP, ALTER 등이 여기에 해당한다.

  • DCL (Data Control Language) : 데이터를 제어하는 언어이다.
    권한을 관리하고, 테이터의 보안, 무결성 등을 정의한다. GRANT, REVOKE 등이 여기에 해당한다.







* Mac에서 MySQL 삭제하기



설치가 잘못 되었을 때나, 임시 비밀번호 분실 시


$ sudo rm /usr/local/mysql 

$ sudo rm -rf /usr/local/mysql* 

$ sudo rm -rf /Library/StartupItems/MySQLCOM 

$ sudo rm -rf /Library/PreferencePanes/My* 

$ sudo rm -rf /Library/LaunchDaemons/com.microsoft.office.licensing.helper.plist

$ sudo rm -rf /private/var/db/receipts/*mysql*

$ rm -rf ~/Library/PreferencePanes/My* 

$ sudo rm -rf /Library/Receipts/mysql* 

$ sudo rm -rf /Library/Receipts/MySQL* 

$ sudo rm -rf /var/db/receipts/com.mysql.*


터미널 실행 후 한줄 씩 차례대로 입력한다.

참고) https://gist.github.com/vitorbritto/0555879fe4414d18569d








* Database 생성하기 (brew로 설치했을 때)


MySQL 관리자 계정인 root로 데이터베이스 관리 시스템에 접속하겠다는 것

-p에는 설정해 둔 패스워드를 입력하며, Mac 사용자의 경우에는 패스워드를 치지 않아도 됨!

mysql –uroot  -p


* DMG 파일로 설치했을 경우에는 시스템 환경설정에서 mysql 실행킨 후에,

1. 설지되어 있는 곳으로 경로 진입 => cd /usr/local/mysql/bin

2. root 권한으로 실행 => sudo ./mysql -p


관리자 계정으로 MySQL에 접속한 경우 아래와 같은 명령으로 데이터베이스를 생성한다.

 mysql> create database DB이름;


아래와 같이 뜨면 생성완료!





* Database 사용자 생성과 권한 주기


  • Database를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성해야 하며 해당 계정이 데이터베이스를 이용할 수 있는 권한을 주어야한다.

  • db이름 뒤의 * 는 모든 권한을 주겠다는 뜻 (권한을 선택적으로도 부여할 수 있다.)

  • @’%’는 어떤 클라이언트에서든 다 접근 가능하다는 것

  •  @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미

  • flush privileges는 DBMS에게 적용을 하라는 의미

grant all privileges on db이름.* to 계정이름@'%' identified by '암호’;
grant all privileges on db이름.* to 계정이름@'localhost' identified by '암호’;
flush privileges;


(+) MySQL 8.0 이상을 설치했을 경우에는 아래와 같이 입력해아 한다.

> CREATE USER 'connectuser'@'%' IDENTIFIED BY 'connect123!@#';

> GRANT ALL ON connectdb.* TO 'connectuser'@'%';

> flush privileges;


connectuser(계정), connect123!@#(패스워드), connectdb(db명)에는 각자 설정해둔 값을 입력한다.






* 생성한 Database에 접속하기


mysql –h호스트명 –uDB계정명 –p 데이터베이스이름

db이름이 connectdb, db계정이 connectuser, 암호가 connect123!@# 일 경우 콘솔창에서 다음과 같이 입력

mysql –h127.0.0.1 –uconnectuser –p connectdb [enter]

(+) 8.0이상의 버전에서는 http://igeniusdo.tistory.com/18 여기 참고하여 입력하기!

(./mysql -u connectuser -p connectdb)





* MySQL 연결끊기


mysql> QUIT
mysql> exit

Bye라고 나오면 연결 끊긴 것






* MySQL 사용하기


  • 키워드는 대소문자를 구분하지 않는다. select version() SELECT VERSION()은 같다.

  • 끝에는 ; 붙여야 한다.

  • 쿼리를 이용하여 아래와 같이 계산식의 결과를 구할 수 있다.

mysql> SELECT SIN(PI()/4), (4+1)*5;


  • 하나의 SQL문장을 여러 문장으로 나누어서 입력 가능하다.

mysql> SELECT
    -> USER()
    -> ,
    -> CURRENT_DATE;


  • 입력하는 도중에 취소하고 싶다면 \c를 입력하여 취소할 수 있다.

  • root로 들어온 뒤 use connectdb 를 입력하면 사용 중인 데이터베이스를 바꿀 수 있다. (connectdb에는 각자 설정해둔 db명을 입력)

  • 어떠한 데이터베이스가 존재하는지 확인해보고 싶다면 아래와 같이 입력한다.

mysql> show databases;





* 데이터를 저장하는 공간 테이블(Table)


  • 마이크로소프트의 엑셀(Excel)을 실행하면 표가 나오며 이러한 표에 각종 값을 저장할 수 있다.

  • 데이터베이스도 엑셀의 표와 유사한 테이블을 가질 수 있다.

  • 엑셀과 다른 점은 데이터베이스를 생성해도 테이블은 존재하지 않는다는 것!

  • 테이블을 사용하려면 테이블을 생성하는 SQL을 사용해야 한다.

  • 테이블에 값을 저장하려면 저장하기 위한 SQL을 사용해야 한다.

  • 테이블 : RDBMS의 기본적 저장구조 한 개 이상의 column과 0개 이상의 row로 구성한다.

  • 열(Column) : 테이블 상에서의 단일 종류의 데이터를 나타냄. 특정 데이터 타입 및 크기를 가지고 있다.

  • 행(Row) : Column들의 값의 조합. 레코드라고 불린다. 기본키(PK)에 의해 구분된다. 기본키는 중복을 허용하지 않으며 없어서는 안된다.

  • Field : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있다.








* 데이터베이스에 존재하는 테이블 목록 확인


Database를 선택 후, Database의 전체 테이블 목록을 출력한다.

mysql> show tables;

Empty set (0.02 sec)

“empty set” 은  데이터베이스에 어떤 테이블도 아직 생성되지 않았다는 것



(+) 테이블 구조를 확인하고 싶다면 'desc 테이블명'으로 확인할 수 있다.






'BoostCource > MySQL' 카테고리의 다른 글

[MySQL] 터미널을 통해 SQL 불러오기  (0) 2018.11.24
[MySQL] 데이터 정의어 DDL  (0) 2018.07.15
[MySQL] 데이터 조작어 DML  (0) 2018.07.15