* 명령어는 소문자, 대문자 상관없다.
기본 명령어
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
'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 |
댓글