글자 크고, 컬러 이미지, 필요한 핵심 기본 내용만 간결하게 설명하고
함수, 데이터 타입등은 표로 정리해두어서 빠르게 내용을 읽고, 실습해볼 수 있는 교재 ^^ (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 |