본문 바로가기
etc

MariaDB 명령어

by wycho 2022. 10. 25.

* 명령어는 소문자, 대문자 상관없다.

 

기본 명령어

SHOW DATABASES;

CREATE DATABASE dbname;
USE dbname;

CREATE TABLE tablename (col1 int(10) col2 char(8));

DESC tablename;

Table related,

SHOW TABLES;
SHOW TABLES LIKE '키워드%';
SHOW TABLES FROM 데이터베이스;
SHOW TABLES FROM 데이터베이스 LIKE '키워드%';
SHOW INDEX FROM 테이블;
SHOW TABLE STATUS;
SHOW TABLE STATUS FROM 데이터베이스;

SHOW CREATE TABLE 테이블;

# 테이블 새이름으로
ALTER TABLE 테이블명 RENAME 새테이블명;
RENAME TABLE 테이블명 TO 새테이블명;

RENAME TABLE 테이블명1 TO 새테이블명1,
             테이블명2 TO 새테이블명2,
             테이블명3 TO 새테이블명3;

# 다른 데이터베이스로 테이블 이동
RENAME TABLE 데이터베이스.테이블명 TO 다른데이터베이스.테이블명;

# 테이블 삭제
DROP TABLE `테이블명`;

# 테이블 합치기
# 테이블1 을 기준으로
SELECT 테이블1.컬럼1-1 as ID, 컬럼1-2, 컬럼2-3 FROM 테이블1 LEFT JOIN 테이블2 ON 테이블1.컬럼1-1 = 테이블2.컬럼2-2;
# 테이블2 를 기준으로
SELECT 테이블2.컬럼2-2 as ID, 컬럼1-2, 컬럼2-3 FROM 테이블1 RIGHT JOIN 테이블2 ON 테이블1.컬럼1-1 = 테이블2.컬럼2-2;
# 전체로 합치려면
(SELECT 테이블1.컬럼1-1 as ID, 컬럼1-2, 컬럼2-3 FROM 테이블1 LEFT JOIN 테이블2 ON 테이블1.컬럼1-1 = 테이블2.컬럼2-2)
UNION
(SELECT 테이블2.컬럼2-2 as ID, 컬럼1-2, 컬럼2-3 FROM 테이블1 RIGHT JOIN 테이블2 ON 테이블1.컬럼1-1 = 테이블2.컬럼2-2);

Column related,

# 컬럼 보기
SHOW COLUMNS FROM 테이블;

# 컬럼 추가
ALTER TABLE `테이블명` ADD `컬럼명` 자료형
ALTER TABLE `테이블명` ADD `새컬럼명` 자료형 FIRST;
ALTER TABLE `테이블명` ADD `새컬럼명` 자료형 AFTER `앞컬럼명`;

# 컬럼 삭제
ALTER TABLE `테이블명` DROP `컬럼명`;

# 컬럼 이동
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 자료형 AFTER 다른컬럼;
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 자료형 FIRST;

# 컬럼 이름, 자료형 변경
ALTER TABLE `테이블명` CHANGE `기존컬럼명` `새컬럼명` 기존자료형;
ALTER TABLE `테이블명` CHANGE `컬럼명` `컬럼명` 새자료형;

# 컬럼 수정
UPDATE 테이블명 SET 컬럼명 = RTRIM(컬럼명); # 컬럼 오른쪽 공백 제거, ps. TRIM, LTRIM
UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명,'-','_'); # -을 _로 변경

Data related

# 데이터 수정
SELECT TRIM(BOTH 's' FROM 'swans') AS TrimmedString; # 'wan'
SELECT TRIM(LEADING 'H' FROM 'Hello World') AS TrimmedString; # 'ello World'
SELECT TRIM(TRAILING 'd' FROM 'Hello World') AS TrimmedString; # 'Hello Worl'

SELECT Department, CONCAT('$ ', FORMAT(SUM(Salary),2)) AS Salary FROM Employee GROUP BY Department;

Search,

SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%';
SELECT 컬럼명1,컬럼명2 FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%';
SELECT COUNT(*) FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%';
SELECT COUNT(*) AS 결과새컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%';

# 테이블1 검색 결과를 테이블2에서 찾기
SELECT * FROM 테이블명2 WHERE 테이블2_컬럼명 = ANY(SELECT * FROM 테이블명1 WHERE 테이블1_컬럼명 LIKE '%keyword%');
SELECT * FROM 테이블명2 WHERE 테이블2_컬럼명 IN (SELECT * FROM 테이블명1 WHERE 테이블1_컬럼명 LIKE '%keyword%');

# Unique 결과 얻기
SELECT DISTINCT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%';

# 정렬
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%' ORDER BY 컬럼명1,컬럼명2;

# 가장 긴 스트링 찾기
SELECT * FROM 테이블명 WHERE LENGTH(컬럼명)=(SELECT MAX(LENGTH(컬럼명)) from 테이블명);

# 결과를 새로운 테이블로 저장
CREATE TABLE 새테이블명 SELECT 컬럼명1, RTRIM(컬럼명2) as 새컬럼명2 FROM 테이블명;

Import

LOAD DATA INFILE 'discounts.csv' 
INTO TABLE discounts 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

In command line,

sudo mariadb 데이터베이스명 -e "SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%keyword%'"
sudo mariadb 데이터베이스명 -e "source /path/command.sql"
sudo mariadb 데이터베이스명 <"/path/command.sql"

From shell script,

#!/bin/sh
sudo mariadb 데이터베이스명 <<QUERY
SELECT * FROM 테이블명
WHERE 컬럼명
LIKE '%keyword%';
QUERY

 

Reference

- http://bigdata.dongguk.ac.kr/lectures/DB/_book/join

'etc' 카테고리의 다른 글

temp  (0) 2024.07.08
English level  (0) 2023.02.26
MariaDB setting  (0) 2022.10.25
바로가기  (1) 2022.10.03
[Excel] 하이퍼링크, 시트정렬  (0) 2022.09.14

댓글