본문 바로가기
DB & SQL

MariaDB 스타터 (완전 초보를 위한 책)

by akasha.park 2024. 1. 6.

 

글자 크고, 컬러 이미지,  필요한 핵심 기본 내용만 간결하게 설명하고

함수, 데이터 타입등은  표로 정리해두어서 빠르게 내용을 읽고, 실습해볼 수 있는 교재 ^^ (DB 초보에게 Good!!!!!)

_____________________________________________________________________________________________

 

show databases;
--DB 서버 안에 존재하는 모든 DB를 조회

CREATE DATABASE <데이터베이스 이름>
--새로운 DB 생성

USE <데이터베이스 이름>
--사용할 DB 선택, 이후에 사용하는 모든 질의어는 지정된 DB에만 영향을 미치게 된다

SHOW TABLES
--선택한 DB 안에 있는 모든 테이블의 정보를 조회

CREATE TABLE <테이블이름>
( 필드명  자료형(크기),
  .....
);

SHOW TABLES FROM <DB 이름>;
--현재 선택된 DB가 아닌 다른 DB의 테이블목록을 조회

SHOW  COLUMNS  FROM <테이블 이름>;
--선택한 테이블을 컬럼 구조(컬럼명, 순서, 데이터타입, DEFAULT 여부, PRIMARY KEY 여부, NOT NULL여부) 조회

DROP DATABASE <DB 이름>;
-- DB 삭제


DROP TABLE <테이블이름>;
-- 테이블 삭제

RENAME TABLE <테이블의 현재 이름> TO <테이블의 새이름>;

ALTER TABLE <테이블이름> ADD <열이름> <자료형>;
ALTER TABLE <테이블이름> DROP COLUMN <열이름>;
ALTER TABLE <테이블이름> MODIFY COLUMN <열이름> <자료형>;
ALTER TABLE <테이블이름> CHANGE COLUMN <현재열이름>  <새 열이름> <자료형>;; 
_________________________________________________________________________________________________________
#문자형 함수
CHARACTER_LENGTH (문자(열)) : 지정한 문자(열)가 몇 글자인지 계산하여 반환
CHAR_LENGTH : CHARACTER_LENGTH (문자(열))와 같은 구문과 기능을 수행
LENGTH  (문자(열)):  지정한 문자(열)가 몇 바이트인지 계산하여 반환
CONCAT(열이름1, 열이름2, 열이름2, ...) : 두 개 이상의 문자(열)이나 표현식을 하나로 묶어준다.
CONCAT_WS (구분자, 열이름1, 열이름2, 열이름2, ...) : 두 개 이상의 문자(열)이나 표현식을 구분자를 이용하여 하나의 문자열로 묶어준다.
LCASE  (문자(열) | 열이름):  지정한 문자(열)를 소문자로 변환한다.
LOWER :  LCASE 와 같은 구문과 기능을 수행
UCASE   (문자(열) | 열이름):  지정한 문자(열)를 대문자로 변환한다.
UPPER :  UCASE와 같은 구문과 기능을 수행
LEFT (문자(열) | 열이름 | 추출문자수):  문자열에서 지정한 수만큼의 문자를 추출한다(왼쪽부터)
RIGHT (문자(열) | 열이름 | 추출문자수):  문자열에서 지정한 수만큼의 문자를 추출한다(오른쪽부터)
SUBSTRING (문자(열) | 열이름, 시작 위치, 길이 ): 지정한 문자열에서 지정한 위치부터 지정한 길이의 문자를 추출한다
SUBSTR : SUBSTRING와 같은 구문과 기능을 수행
______________________________________________________________________________________________
#숫자형 함수
ABS
AVG
COUNT
MODE
DIV
MAX
MIN
POWER
POW
RAND
FLOOR
CEILING
CEIL
ROUND
SQRT
SUM
FORMAT
TRUNCATE

________________________________________________________________________________________________
#날짜형 함수
CURRENT_DATE() : 현재의 날짜를 yyyy-mm-dd 형태로 반환한다.
CURDATE()  :  CURRENT_DATE() 와 같은 구문과 기능을 수행
CURRENT_TIME() : 현재의 시간을  hh:mm:ss 형태로 반환한다.
CURTIME() :  CURRENT_TIME() 와 같은 구문과 기능을 수행
SYSDATE() :  현재의 날짜 시간을  yyyy-mm-dd hh:mm:ss 형태로 반환한다.
LOCALTIME :  SYSDATE() 와 같은 구문과 기능을 수행
NOW : SYSDATE() 와 같은 구문과 기능을 수행
DATE(표현식) : DATETIME 표현식에서 년월일 저보만 추출하여 반환한다
TIME (표현식): DATETIME 표현식에서 시간 정보만 추출하여 반환한다
ADDDATE(시간, INTERVAL 더하고자 하는 숫자) : 주어진 날짜 정보에 지정한 만큼의 시간과 날짜를 더한 값을 반환한다
DATE_ADD : ADDDATE()  와 같은 구문과 기능을 수행
DATE_SUB (시간, INTERVAL 더하고자 하는 숫자) : 주어진 날짜 정보에 지정한 만큼의 시간과 날짜를 뺀 값을 반환한다
DATEDIFF (날짜1, 날짜2) : 주어진 두 날짜가 며칠 차이인지를 계산하여 반환한다.
DATE_FORMAT (날짜, "양식") : 날짜를 표현하는 formatdmf wlwjddgkf tn dlTek
DAYNAME (날짜) : 주어진 날짜에 해당하는 요일 이름을 반환한다
MONTHNAME (날짜) : 주어진 날짜에 해당하는 달의 이름을 반환한다
DAYOFYEAR (날짜) : 주어진 날짜에 해당하는 연도의 몇 번째 날인지 계산하여 결과를 반환한다
WEEKOFYEAR (날짜) : 주어진 날짜에 해당하는 연도의 몇 번째 주인지 계산하여 결과를 반환한다

#ADDDATE()에 사용할 수 있는 단위 :
MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR,...

#DATE_FORMAT()에 사용할 수 있는 양식
%a    요일이름을 축약형으로 보여준다
%w   요일 이름을 보여준다
%D   날의 이름을 서수 형태로 보여준다
%d   날의 이름을 기수 형태로 보여준다
%b   달의 이름을 축약 형태로 보여준다
%M   달의 이름을  보여준다
%m   달의 이름을 기수 형태로 보여준다
%Y    연도를 4자리로 보여준다.
%y    연도를 2자리로 보여준다.
%j     일 년 중 몇 번째 날인지 보여준다.
%u   한 주의 첫날을 월요일로 했을 때, 일년 중 몇 번째 주인지 보여준다 (0~53)
%U   한 주의 첫날을 일요일로 했을 때, 일년 중 몇 번째 주인지 보여준다 (0~53)
%p   오전 오후를 보여준다.
%r   시간을 오전 오후와 함께 12시간 표기법으로 보여준다.
%T   시간을  24시간 표기법으로 보여준다.
%s    초를 보여준다

________________________________________________________________________________________________
#제약조건
NULL
NOT NULL
DEFAULT
UNSIGNED - 부호 없는 수를 사용한다 (양수만 가능하고 음수는 사용할 수 없다)
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
AUTO_INCREMENT
________________________________________________________________________________________________
CREATE USER '<사용자이름'@'<접근위치>' IDENTIFIED BY '<비밀번호>';

GRANT <허용하는 질의어1, 허용하는 질의어2,...> ON <허용DB이름> TO '<사용자이름>' @'<접근위치>';

REVOKE <허용하는 질의어1, 허용하는 질의어2,...> ON <제한하는DB이름> FROM '<사용자이름>' @'<접근위치>';

DROP USER '<사용자이름'@'<접근위치>';

________________________________________________________________________________________________
모든 권한을 부여받은 사용자도 DB의 백업과 복원은 할 수 없다.
오직 root 사용자에게 허락된 권한이다

window에서는 명령프롬프트를 관리자 권한으로 실행해야 배겁과 복원 기능을 사용할 수 있다
MariaDB\bin>MYSQLDUMP -u [관리자 아이디] -p [관리자 비밀번호] [백업형태 선택] > [백업파일의 위치 및 이름]

모든 DB 백업 옵션은  -A 또는 --all-databases
예] mysqldump -u root -p -A  > c:\all_backup.sql
     mysqldump -u root -p  mydb > c:\mydb_backup.sql
-    --여러 DB 백업
     mysqldump -u root -p  mydb  erp  crm  c:\mydb_erp_crm_backup.sql
     --특정 DB의 특정 테이블 백업
     mysqldump -u root -p  mydb test  c:\mydb_test_backup.sql
    --모든 db의 구조만 백업
    mysqldump -u root -p --no-data -A  > c:\alldb_shema_onlyre.sql

#자동 백업
배치파일(.bat)을 따로 만든 뒤에 윈도우의 작업 스케줄러 연동
다음 배치파일(.bat)을  만들고 MariaDB\bin에 저장
ECHO  mariaDB Database Bakup
mysqldump -u [관리자 아이디] -p [관리자 비밀번호]  -A  > [백업파일위치]\Backup_%date%.sql

ECHO Delete the file(s) passed more than 30 days
forfiles /P [백업파일 위치] /S /M *.sql /D -30 /C "cmd /c del #file"

#DB 복원
mysql -u [관리자 아이디] -p [관리자 비밀번호] [DB 이름] < [백업파일의 위치 및 이름]













'DB & SQL' 카테고리의 다른 글

MariaDB  (0) 2024.01.11
업무에 바로 쓰는 (MySQL) SQL 튜닝  (0) 2024.01.07
DB2 data studio에서 실행계획 보기  (0) 2023.12.04
DB2 계층검색 쿼리  (0) 2023.12.04
DB2 Data Studio 설치  (1) 2023.11.24