MySQL 시작, 특징과 SQL 개념

MySQL 시작, 특징, 계정생성, 권한부여 , DML, DDL, DCL

Posted by iheese on March 22, 2022 · 4 mins read

*모든 과정은 window 기준입니다.

  1. MySQL 에서 MySQL 설치
    • root 사용자의 비밀번호 잊지 않기
  2. 시스템 환경 변수 편집 - 고급 - 설정
    • Path 에 C:\Program Files\MySQL\MySQL Server 5.7\bin 새로 만들기 (자신의 MySQL 버전과 경로 확인)
  3. 실행
    • 서비스 (데스크톱 앱)의 MySQL5.7 오른쪽 클릭, 속성 내에서 실행, 종료 가능
    • 수동으로 설정시 시작, 종료를 매번 해줘야 MySQL서버 실행


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 등


데이터베이스 생성하기

  • mysql –uroot -p : 관리자 계정인 root로 데이터베이스 접속
  • Enter password: 설정했던 패스워드 입력, 엔터

  • mysql> create database connectdb; : connectdb라는 DB이름으로 데이터베이스 생성


데이터베이스 사용자 생성과 권한 주기

  • 데이터베이스를 생성했다면 해당 데이터베이스를 사용하는 계정을 생성하고 권한을 주어야 한다.

이는 MySQL5.7에서 적용된다.

  • grant all privileges on db이름.* to 계정이름@'%' identified by '암호’;
  • grant all privileges on db이름.* to 계정이름@'localhost' identified by '암호’;
  • flush privileges;
  • db이름. *은 모든 권한을 의미한다.
  • @’%’는 어떤 클라이언트에서든 접근이 가능함을 의미하고, @’lacalhost’는 해당 컴퓨터에서만 접근가능하다는 의미이다.
  • flush privileges는 DBMS에게 적용하라는 의미이다.
  • grant all privileges on connectdb.* to connectuser@'%' identified by 'connect123!@#';
  • grant all privileges on connectdb.* to connectuser@'localhost' identified by 'connect123!@#';
  • flush privileges;
  • 데이터베이스 이름은 ‘connectdb’, 사용자 계정이름은 ‘connectuser’, 암호는 ‘connect123!@#’로 설정했다.


MySQL8.0에서 적용되는 명령어

  • 위와 같은 이름으로 계정 생성과 DB 권한 부여하기
  • 계성 생성과 DB 권한 부여를 각각 해줘야 한다.
  • create user connectuser@'%' identified by 'connect123!@#';
  • grant all privileges on connectdb.* to connectuser@'%' with grant option;
  • flush privileges;


데이터베이스에 접속하기

  • root 계정 접속
    • mysql -u root -p
    • Enter password: 패스워드 입력
  • 데이터베이스 바로 접속(권한 존재 확인)
    • mysql –h호스트명 –uDB계정명 –p 데이터베이스이름
    • mysql –h127.0.0.1 –uconnectuser –p connectdb
    • Enter password: 계정의 비밀번호 입력(대소문자 구분)

데이터베이스 연결 끊기

  • QUIT, exit
  • Bye 라고 뜨면 연결 끊기 성공


MySQL 특징

  • SQL은 쿼리(query)라고 읽는다
  • 모든 쿼리 마지막은 ;(세미콜론)으로 끝난다.
  • 쿼리는 대소문자를 구별하지 않습니다.
  • 계산식 결과도 구할 수 있다.
    • select 5+5;
  • 여러 문장을 한 줄에 연속으로 붙여서 실행가능하다.
  • 세미콜론으로 구분해주면 된다.
  • 아래는 MySQL 버전과 현재 시간, 현재 날짜를 보여주는 쿼리이다.
    • select version(); select now(); select current_date;
  • 여러 줄로 입력이 가능하다.
    • mysql> SELECT -> USER() -> , -> CURRENT_DATE;
  • SQL을 입력하는 도중 취소하기는 \c이다.
  • show databases; : 서버 내 존재하는 데이터 베이스를 확인할 수 있다.
  • use connectdb(데이터베이스 이름); : 사용 중인 데이터베이스 전환하기


SQL 데이터베이스 내 테이블 생성 및 조회

  1. sql 파일을 다운로드한다. (실습에서는 examples.sql 파일을 이용)
  2. 터미널에서 examples.sql이 존재하는 폴더로 이동( cd 파일주소 [엔터])
  3. mysql -uconnectuser -p connectdb < examples.sql 입력 후 암호 입력
  4. mysql –uconnectuser -p connectdb connectdb 접속
  • show tables; : 테이블 목록을 보는 쿼리문
  • desc employee; : (desc 테이블이름;) 테이블 구조 확인


Reference: