noname02
쿼리 본문
- 문자열 값은 작은따옴표나 큰따옴표로 묶어서 작성한다.
- 여러개의 칼럼이나 값을 넣는 경우 괄호로 묶고 콤마로 구분해준다.
CREATE DATABASE dbname;
2. 데이터베이스 목록 확인
SHOW DATABASES;
3. 데이터베이스 지정
USE dbname;
4. 현재 사용중인 데이터베이스 표시
SELECT DATABASE();
5. 테이블 만들기
CREATE TABLE tbname (column_name1 dataformat, column_name2 dataformat ...);
6. 모든 테이블 표시
SHOW TABLES;
7. 테이블 칼럼구조 표시하기
DESC tbname;
8-1. 데이터 추가하기(칼럼 순서대로)
INSERT INTO tbname VALUES (data1, data2 ...);
8-2. 데이터 추가하기(칼럼 이름을 지정하여)
INSERT INTO tbname (column_name1, column_name2 ...) VALUES (data1, data2 ...);
8-3. 데이터 추가하기(여러개의 데이터 입력)
INSERT INTO tbname (column_name1, column_name2 ...) VALUES (data1-1, data1-2 ...), (data2-1, data2-2 ...);
9. 칼럼별 데이터 표시
SELECT column_name1, column_name2 FROM tbname;
10. 모든 데이터 표시
SELECT * FROM tbname;
11. 테이블 복사하기 (ctbname 테이블의 내용을 ptbname으로 복사)
CREATE TABLE ptbname SELECT * FROM ctbname;
12. 칼럼 자료형 변경
ALTER TABLE tbname MODIFY column_name dataformat;
13-1. 칼럼 추가하기 (맨 뒤로)
ALTER TABLE tbname ADD column_name dataformat;
13-2. 칼럼 추가하기 (맨 앞으로)
ALTER TABLE tbname ADD column_name dataformat FIRST;
13-3. 칼럼 추가하기 (acolumn_name 뒤에 column_name을 추가)
ALTER TABLE tbname ADD column_name dataformat AFTER acolumn_name;
14-1. 칼럼 위치 맨 앞으로 변경하기
ALTER TABLE tbname MODIFY column_name dataformat FIRST;
14-2. 칼럼 위치 변경하기 (acolumn_name 뒤로 column_name 옮기기)
ALTER TABLE tbname MODIFY column_name dataformat AFTER acolumn_name;
15. 칼럼 이름, 자료형, 위치 변경하기
ALTER TABLE tbname CHANGE before_column_name after_column_name after_dataformat;
16. 칼럼 삭제하기
ALTER TABLE tbname DROP column_name;
17-1. 기본키 속성을 갖는 테이블 만들기(중복 (X), NULL (X))
CREATE TABLE tbname (column_name dataformat PRIMARY KEY, ...);
17-2. 고유키 속성을 갖는 테이블 만들기(중복 (X), NULL (O))
CREATE TABLE tbname (column_name dataformat UNIQUE KEY, ...);
18. 연속 번호가 자동으로 입력되는 칼럼 만들기
- 자료형은 정수형이어야 한다.
- AUTO_INCREMENT 선언한다.
- PRIMARY KEY 등으로 유일하게 설정한다.
- 데이터 추가시 연속 번호가 입력되는 칼럼에 아무값도 입력하지 않거나 0을 입력하면 순서대로 입력이 된다.
CREATE TABLE tbname (column_name dataformat AUTO_INCREMENT PRIMARY KEY, ...);
19. 연속 번호의 초깃값 설정하기
- 데이터를 모두 지운 뒤, 데이터를 새로 추가하면 기존에 있던 번호에 +1이 되어 입력이 된다.
- 이러한 경우 연속 번호를 1부터 다시 입력하게 하려면 초기화를 해야 한다.
20. 기본값이 있는 칼럼 만들기
CREATE TABLE tbname (column_name dataformat DEFAULT default_value, ...);
21. 색인 설정하기
CREATE INDEX name ON tbname (column_name);
22. 색인 표시하기
SHOW INDEX FROM tbname;
23. 색인 삭제하기
DROP INDEX name ON tbname;
ALTER TABLE tbname DROP INDEX index_name;
24-1. 테이블 칼럼 구조와 데이터 복사(속성은 복사되지 않음. KEY, AUTO_INCREMENT 등. 11번과 동일)
CREATE TABLE tbname SELECT * FROM copytbname
24-2. 테이블 칼럼 구조만 복사 (속성까지 복사)
CREATE TABLE tbname LIKE copytbname
24-3. 테이블 데이터만 복사 (동일 칼럼)
INSERT INTO tbname SELECT * FROM copytbname
24-4. 특정 칼럼 데이터만 복사
INSERT INTO tbname (column) SELECT copy_column FROM copytbname;
25-1. 테이블 삭제
DROP TABLE tbname;
25-2. 특정 테이블이 있는 경우 삭제
DROP TABLE IF EXISTS tbname;
26. 데이터베이스 삭제
DROP DATABASE dbname;
27. 데이터 삭제
DELETE FROM tbname;
28. 칼럼 표시
- 칼럼을 중복해서 여러개 표시할 수도 있다. (동일칼럼을 여러번 입력)
- 칼럼 작성 순서대로 표시되므로 순서를 바꿀 수도 있다.
SELECT column1, column2, column3 ... FROM tbname
29. 별명 사용
- 특수문자를 지정할 때에는 큰따옴표로 감싸야 한다.
SELECT column AS name FROM tbname
30. 칼럼 값 계산하여 표시
- 아래의 경우 칼럼에 1만을 곱한 값을 표시한다.
SELECT column * 10000 FROM tbname
31. 함수 사용
- 아래의 경우 column의 평균값을 표시한다.
SELECT AVG(column) FROM tbname
32. 각종 정보 출력
SELECT VERSION() : MySQL버전 표시
SELECT DATABASE() : 현재 사용중인 데이터베이스 표시
SELECT USER() : 현재 사용자 표시
SELECT CHARSET("string") : 문자코드 표시
33. 문자열 조작 함수
- column의 오른쪽 2개의 문자 표시
SELECT RIGHT(column, 2) FROM tbname;
- column의 왼쪽 2개의 문자 표시
SELECT LEFT(column, 2) FROM tbname;
- column의 2번째 문자부터 3개의 문자 표시
SELECT SUBSTRING(column, 2, 3) FROM tbname;
- column의 수만큼 string 표시
SELECT REPEAT(column, "string") FROM tbname;
- column의 문자열을 거꾸로 표시
SELECT REVERSE(column) FROM tbname;
- column1, column2의 문자열을 붙이고 "님"이라는 문자열도 붙임
34. 레코드 수를 제한해서 표시
SELECT column FROM tbname LIMIT number;
35. WHERE 조건
- 작다
- 아니다 ( <> )
- 사이에 있다 (a 이상 b 이하)
- 사이에 없다 (a 미만 b 초과)
- ~중에 있다
- 문자열 조건
37. 조건에 NULL 사용
- NULL인 경우
- NULL이 아닌 경우
38. 중복데이터 제외하고 추출
SELECT DISTINCT column FROM tbname;
39. 조건 설정
SELECT * FROM tbname WHERE column1>=50 AND(OR) column2>=50
40. CASE WHEN
SELECT column1, ...
CASE
WHEN column_a > 10 THEN "string1"
WHEN column_b > 10 THEN "string2"
...
ELSE "string10"
END AS "end_column" FROM tbname
41. 오름/내림차순 정렬
SELECT * FROM tbname ORDER BY column ASC/DESC
42. n+1번째 부터 표시
SELECT * FROM tbname OFFSET n
43-1. 그룹화 표시
SELECT * FROM tbname GROUP BY column
43-2.