CTRL+ ENTER

명령어 예시 의미
SHOW DATABASES SHOW DATABASES 현재 서버에 어떤 DB가 있는지 보기
USE USE database_name database_name의 DB를 사용하겠다.
SHOW TABLES   DB에 있는 테이블 리스트를 보여줘
SHOW TABLE STATUS   DB에 있는 테이블 상세리스트를 보여줘를 상세히 보여줘
DESCRIBE(DESC) DESCRIBE table_name table_name 테이블의 정보를 보여줘
SELECT   데이터를 가져와
SELECT FROM SELECT * FROM table_name table_name 테이블에 있는 전체 정보를 보여줘
  SELECT colum_name FROM table_name table_name 테이블에 colum_name의 colum만 보여줘
  SELECT colum_name_1, colum_name_2 FROM table_name table_name 테이블에 colum_name_1과 colum_name_2의 colum만 보여줘
SELECT FROM WHERE SELECT * FROM table_name
WHERE 조건_1
※ 예) colum_name_1>10
※ OR, AND, NOT, =, <, >, <=, >=, <>, != 등 사용가능
table_name 테이블에 조건1에 맞는 행들만 보여줘
예) colum_name_1이 10보다 큰 행들만 보여줘
  SLEECT * FROM table_name
WHERE 조건_1 AND 조건2
table_name 테이블에 조건1과 조건2를 동시에 만족하는 행등만 보여줘
SELECT FROM WHERE
BETWEEN
SELECT * FROM table_name
WHERE colum_name BETWEEN 10 AND 100
colum_name이 10 이상 100이하인 데이터
SELECT FROM WHERE
IN
SELECT * FROM table_name
WHERE colum_name
IN('value_1', 'value_2', 'value_3')
colum_name이 value_1이거나 value_2이거나 value_3인 데이터
SELECT FROM WHERE
LIKE
SELECT * FROM table_name
WHERE colum_name
LIKE 'ABC_'
※_는 1글자 대체
ABC로 시작하는 네글자가 단어가있는 모든 데이터
  SELECT * FROM table_name
WHERE colum_name
LIKE 'ABC%'
※%는 2글자 이상 대체
ABC로 시작하는 단어가있는 모든 데이터
(SUB QUERY) SELECT * FROM table_name
WHERE colum_name = ( 
SELECT coum_name FROM table_name WHERE 조건)
쿼리문 안에 또다른 쿼리문이 있는 것
※ 서브 쿼리의 결과가 둘 이상이 되면 에러 발생
ANY (SUB QUERY) WHERE colum_name > ANY (SUB QUERY) 서브쿼리의 여러개의 결과 중 한가지만 만족해도 가능
※ =ANY 는 IN 과 동일한 의미
ANY는 SOME과 동일한 의미
ALL (SUB QUERY) WHERE colum_name > ALL (SUB QUERY) 서브쿼리의 모든 결과를 모두 만족해야 함
SELECT FROM ORDER BY SELECT * FROM table_name ORDER BY colum_name (ASC) colum_name을 기준으로 오름차순 정렬
  SELECT * FROM table_name ORDER BY colum_name DESC colum_name을 기준으로 내림차순 정렬
  SELECT * FROM table_name ORDER BY colum_name_1 ASC, colum_name_2 DESC Colum_name_1을 기준으로 오름차순 정렬
Colum_name_2을 기준으로 내림차순 정렬 
SELECT FROM WHERE ORDER BY    
 DISTINCT SELECT DISTINCT colum_name
FROM table_name
colum_name의 중복된 것은 1개씩만 보여주면서 출력 
 LIMIT SELECT * FROM table_name
ORDER BY colum_name
LIMIT 10
상위의 N개만 출력
※서버의 처리량을 줄이도록함
GROUP BY
(집계함수를 같이 사용
 ex. AVG, MIN, MAX, COUNT, COUNT(DISTINCT), STDEV, VARIANCE
SELECT colum_name_1
MAX(colum_name_2)
FROM table_name
GROUP BY colum_name_1
colum_name_1 기준으로 그룹화하는데 그중에서 colum_name_2가 가장 큰 데이터만 출력한다. 
GROUP BY AS SELECT colum_name_1
AVG(colum_name_2)
AS 'Average'
FROM table_name
GROUP BY colum_name_1
colum_name_1 기준으로 그룹화하는데 그중에서 colum_name_2의 평균값을 출력한다.
평균값 데이터의 colum_name은 Average로 표기한다.

  SELECT COUNT(*)
FROM table_name
 
  SELECT AVG(colum_name)
FROM table_name
 
Having   WHERE과 비슷한 개념으로 조건 제한
집계 함수에 대해서 조건 제한하는 편리한 개념
HAVING 절은 반드시 GROUP BY 절 다음에 나와야함
  SELECT colum_name_1,
MAX(colum_name_2)
FROM table_name
GROUP BY colum_name_1
HAVING MAX (colum_name_2) > 10
 
 ROLLUP   총합 또는 중간합계가 필요할 경우 사용
GROUP BY 절과 함께 WITH ROLUP 문으로 사용 
  SELECT colum_name_1,
Name,
SUM(colum_name_2)
FROM table_name
GROUP BY colum_name_1,
Name WITH ROLLUP
묶인 그룹의 총합을 각 그룹의 마지막 행에 출력한다.
JOIN SELECT *
FROM table_name_1
JOIN table_name_2
ON table_name1.colum = table_name2.colum
여러테이블에서 가져온 레크드롤 조합하여 하나의 테이블이나 결과 집합으로 표현
ON 뒤에는 합칠 조건
  SELECT *
FROM table_name_1
JOIN table_name_2
ON table_name1.colum = table_name2.colum
JOIN table_name_3
ON table_name_1.colum = table_name_3.colum
세개의 테이블 합칠경우
명령어 의미
LENGTH() SELECT LENGTH('ABC') 문자열 길이
CONCAT() SELECT CONCAT('A', 'B', 'C') 문자열 세개를 합쳐서 저장
※ 문자열 중 하나라도 NULL이 있으면 NULL 을 반환한다.
LOCATE() SELECT LOCATE('ABC', 'ABABBCABCABC') ->7 반환 문자열처음 나타나는 위치 찾기 (1부터)
찾는 문자열이 문자열 내에 존재하지 않으면 0을 반환
LEFT() SELECT LEFT('ABCD',3) -> ABC반환 문자열의 왼쪽부터 지정한 개수만큼 문자 반환
RIGHT() SELECT RIGHT('ABCD',3) ->BCD반환  
LOWER() SELECT LOWER('ABC') -> abc  
UPPER() SELECT UPPER('abc') ->ABC  
REPLACE() SELECT REPLACE('ABCDE', 'ABC', 'AAA') -> AAADE  
TRIM() SELECT TRIM(' 문자열 양쪽모두에 있는 특정문자를 제거
BOTH : 기본설정
제거할 문자를 명시하지 않으면 자동으로 "공백"을 제거 
TRIM(LEADING) SLECT TRIM(LEADING '@' FROM '@gmail.com@')
전달받은 문자열 앞에 존재하는 특정 문자를 제거
TRIM(TRAILING) SLECT TRIM(TRAILING '@' FROM '@gmail.com@') 전달받은 문자열 뒤에 존재하는 특정 문자를 제거
FORMAT SELECT FORMAT(숫자, 소숫점자리수) 숫자타입의 데이터를 세자리마다 쉼표 형식으로 변환
#,###,###.##
※ 반환되는 데이터 형식은 문자열 타입
※ 두번째 인수는 반올림할 소수 부분의 자릿수
FLOOR   내림
CEIL   올림
ROUND   반올림
SQRT   양의 제곱근
POW POW(밑수,지수) 거듭제곱
EXP EXP(지수) e의 거듭제곱
LOG   자연로그값
SIN, COS, TAN SIN(PI()/2)  
ABS   절대값
RAND ROUND(RAND()*100,0) 0.0보다 크거나 같고 1.0보다 작은 하나의 실수를 무작위로 생성
NOW   YYYY-MM-DD HH:MM:SS또는 
YYYYMMDDHHMMSS 형태로 반환
CURDATE   YYYY-MM-DD 또는 YYYYMMDD 반환
CURTIME   HH:MM:SS 또는 HHMMSS형태로 반환
DATE, MONTH, DAY, HOUR, MINUTE, SECOND    
MONTHNAME, DAYNAME    
DAYOFWEEK, DAYOFMONTH,
DAYOFYEAR
  WEEK : 일 = 1, 토 = 7
MONTH : 0~31
YEAR : 1~366
DATE_FORMAT DATE_FORMAT(NOW(), '%D %y %a %d %m %n %j') 형식에 맞춰 날짜와 시간을 반환
명령어 예제 의미
CREATE TABLE AS SELECT CREATE TABLE new_table_name
AS SELECT * FROM table_name
table_name 과 똑같은 new_table_name을 만든다
CREATE DATABASE CREATE DATABASE database_name database_name의 새로운 DB를 만든다.
CREATE TABLE CREATE TABLE table_name(
id INT NOT NULL PRIMARY KEY,
col1 INT NULL
col2 INT NULL
col3 INT NULL
)
colum 개수/속성을 정하면서 테이블 만듬
ALTER TABLE    
ALTER TABLE ADD ALTER TABLE table_name
ADD col4 INT NULL;
colum 추가
ALTER TABLE MODIFY ALTER TABLE table_name
MODIFY col4 VARCHAR(20) NULL;
colum 수정
ALTER TABLE DROP ALTER TABLE table_name
DROP col4;
colum 삭제
INDEX    
SHOW INDEX    
CREATE INDEX    
CREATE UNIQUE INDEX    
FULLTEXT INDEX    
ALTER TABLE INDEX    
DROP INDEX    
VIEW    
CREAT VIEW CREATE VEIW view_name AS
SELECT col1, col2
FROM table;
 
ALTER VIEW ALTER VEIW view_name AS
SELECT col1, col2, col3
FROM table;
 
DROP VIEW DROP VIEW view_name  
INSERT INSERT INTO table_name
VALUE(val_1, val_2, val_3);
table_name에 행을 추가함
INSERT INTO SELECT INSERT INTO table_name_1
SELECT * FROM table_name_2
table_name_2에 있는 행들을 table_name_1에 삽입
UPDATE UPDATE table_name
SET col1=1, col2=1, col3=1
기존에 있는 값 변경
※WHERE 안쓰면 설정한 값으로 모든 행 변경한다.
UPDATE WHERE UPDATE table_name
SET col1=1, col2=1, col3=1
WHERE colum_name = 1
colum_name이 1인 행의 값을 
1, 1, 1로 바꾼다.
DELETE DELETE FROM table_name 모든 행 다 없앰
※데이터는 지워지지만 테이블 용량은 줄어들지 않음
※삭제 후 잘못 삭제한 것은 되돌릴 수 있음
DELETE WHERE DELETE FROM table_name
WHERE colum_name = 1
colum_name이 1인 행을 없앰
TRUNCATE TRUNCATE TABLE table_name 모든 행 다 없앰
※ 용량 줄어들고, 인덱스 모두삭제
※ 테이블 삭제 않고 데이터만 삭제
※ 한꺼번에 다 지워야함
※ 삭제 후 되돌릴 수 없음
DROP TABLE DROP TABLE table_name table 완전삭제
DROP DATABASE DROP DATABASE database_name database 완전삭제

 

+ Recent posts