Mysql

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2022년 10월 21일 (금) 10:32 판 (→‎유저 관련)
둘러보기로 이동 검색으로 이동


개요

데이터베이스 중 하나.

어째서인지 CREATE UNIQUE INDEX IF NOT EXISTS time ON coin_{} (time)과 같은 명령이 안먹는다. 정신건강을 위해 MariaDB를 쓰자. MariaDB를 쓸 때 HeidiSQL 같은 편의기능도 함께 설치되어 편하다.

설치

설치할 때 root의 비밀번호를 설정한다. 잊지 않게끔 잘 기억해두자.

설치

운영체제 설명 방법
리눅스 sudo apt-get install mysql-server
윈도우

열기

운영체제 설명 방법
우분투 루트권한으로 접근해야 사용할 수 있다.

sudo mysql 을 치면 MySQL모니터에 접근한다.

윈도우 cmd로 설치파일이 있는 경로로 이동한 후 명령 실행. mysql.exe -u root -p

시스템 재부팅

기본명령

MySQL 모니터 안에서 사용하는 명령이다.

명령의 마지막엔 ; 이 붙어야 함에 유의하자.

(대문자, 소문자 구분을 안하던데, 왜 대문자로 치는지 모르겠네;;)

의도 설명 방법
데이터베이스 보기 모니터 안에서. show DATABASES;
DB생성 CREATE DATABASE 데이터베이스이름;
DB삭제 DROP DATABASE 데이터베이스명;
DB사용 use 데이터베이스명;
테이블 보기 SHOW TABLES;

테이블 만들기

의도 설명 방법
테이블 만들기 IF NOT EXISTS 조건을 걸어 테이블의 종류를 최신화하는 것도 가능하다. CREATE TABLE IF NOT EXISTS 테이블명(변수 타입, 변수2 타입2 제한조건, ....)
테이블 이름 제한 실수하기 쉬운 순서대로 나열해 보았다.
  1. 반드시 문자로 시작.(많은 사람들이 숫자로 시작하는 테이블을 만드는 실수를 한다.)
  2. 오라클에서 사용되는 예약어나 다른 객체명과 중복불가(TRUE 같은 것들은 사용 불가.)
  3. 1~30자 까지 가능함.
  4. A~Z까지의 대소문자와 0~9까지의 숫자, 특수기호는 (_, $, #)만 포함할 수 있음.
  5. 공백허용 안됨.
테이블 데이터형 종류
변수타입 설명
longtext 여러 글자 텍스트.
DATETIME 시간 데이터.
FLOAT 실수
INT 정수

데이터 입력, 제거

의도 설명 방법
테이블 안에 데이터 입력 해당값은 따옴표, 쌍따옴표로 둘러 기입해준다. insert into 테이블명 values('값', '값2', ...)
테이블 안의 행 제거 delete from 테이블명 where '필드명' = '거를 필드';
테이블 안의 행 전체삭제 delete from 테이블명


이외 팁

백업과 복원

DB백업

sql 파일로 백업한다.

mysqldump -u 사용자계정 -p 백업할DB명 > 저장할파일명.sql

'액세스가 거부되었습니다.'라는 문구가 나온다면 일반적으로 해당 경로에 저장이 불가하다는 의미. C:\Users\유저명\Downloads\파일명.sql 따위의 경로를 지정하자.

정상적으로 명령이 기입되면 패스워드를 입력하는 란이 나오고 백업이 진행된다.(용량이 큰 경우 멈춘 것처럼 보인다. 프롬프트 커서는 깜빡이고 있다.)

상황 방법
전체 DB를 한번에 저장하고자 할 때 DB이름을 넣는 대신 -A옵션을 준다.

--extended-insert

DB복구

복구할 때 복구할 DB가 미리 만들어져 있어야 한다.

mysql -u 사용자계정 -p 복구할DB명 < 저장한파일명.sql

정상적으로 명령이 기입되면 백업 때와 동일하게 진행된다. 기존 데이터는 삭제된다.

자잘 팁

sql 직관적으로 보기

HeidiSQL 등의 프로그램을 사용하면 엑셀과 같은 화면으로도 볼 수 있다.

엑셀로 sql 내용물 보기