<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 |