2009년 10월 13일 화요일

MySQL Query(쿼리)문

출처 : 퇴근5분전 ( http://blog.naearu.com/2982704 )



AUTO_INCREMENT 리셋하기
ALTER TABLE `테이블명` PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0 AUTO_INCREMENT=1

데이터베이스 또는 테이블 보기
SHOW DATABASES;
SHOW TABLES;


데이터베이스 생성하기
CREATE DATABASE 데이터베이스명;


테이블 생성하기
CREATE TABLE 테이블명 (컬럼명1, 컬럼명2, 컬럼명3, ..., 컬럼명N);


데이터베이스 사용
USE 데이터베이스명;


데이터베이스 삭제하기
DROP DATABASE 데이터베이스명;


테이블 삭제하기
DROP TABLE 테이블명;


테이블에 새로운 컬럼 추가하기
ALTER TABLE 테이블명 ADD 컬럼명 자료형;


데이블의 특정 컬럼을 변경하기
ALTER TABLE 테이블명 CHANGE 변경전명 변경후명 자료형;


테이블에 특정 컬럼을 삭제하기
ALTER TABLE 테이블명 DROP 컬럼명;


테이블에 데이터 추가하기
INSERT INTO 테이블명 (컬럼1, 컬럼2, ..., 컬럼N) VALUES (데이터1, 데이터2, ..., 데이터N);


테이블 구조 살펴보기
DESCRIBE 테이블명;


원하는 항목 표시하기 ->
SELECT * FROM 테이블이름;
SELECT 컬럼1, 컬럼2, ...컬럼N FROM 테이블이름;


조건하에 항목 표시하기
SELECT id, name, email FROM memo WHERE sex = 'M' AND math > '70';


순서대로 표시하기
// 오름차순
SELECT name, phone FROM memo ORDER BY 컬럼명 ASC;
// 내림차순
SELECT name, phone FROM memo ORDER BY 컬럼명 DESC;


원하는 갯수만큼 가져오기
// 위에서 4개만 가져온다.
SELECT * FROM memo LIMIT 4;
// 3번부터 4개를 가져온다.
SELECT * FROM memo LIMIT 2, 4;


데이터 개수 알아내기

SELECT COUNT(*) FROM data;

특정조건에 해당되는 데이터 갯수 구하기.

SELECT COUNT(*) FROM data WHERE sex = 'F';


검색을 통해 데이터 가져오기

SELECT * FROM student WHERE name LIKE '인민%';


자료 업데이트 하기

UPDATE 테이블명 SET 컬럼 = 값, ... WHERE 조건문


자료 삭제하기

DELETE FROM 테이블명 WHERE 조건문;






*count
mysql> SELECT COUNT(*) FROM table_name;
해당 테이블의 전체 리스트 개수를 표시해준다.

count의 조건을 걸때는 뒤에 WHERE 조건; 을 해주면 된다.
ex) SELECT COUNT(*) FROM table_name WHERE sex='남';


* DISTINCT
mysql> SELECT DISTINCT address FROM table_name;
해당 테이블의 address값을 출력하되, 중복 되는 내용은 피한다.

응용>> SELECT COUNT(DISTINCT address) FROM table_name;


* GROUP BY
mysql> SELECT sex, COUNT(*) FROM table_name GROUP BY sex;
성별에 따라 그룹으로 묶어서 출력조건에 맞춰서 출력한다.

응용>> SELECT MONTH(birth) AS '월', MONTHNAME(birth) AS '월이름',
           COUNT(*) AS '개수'
           FROM table_name GROUP BY '월이름' ORDER BY '월';

변형>> SELECT MONTH(birth) AS '월', MONTHNAME(birth) AS '월이름',
           COUNT(*) AS '개수'
           FROM table_name GROUP BY 2 ORDER BY 1;
 -> 출력되는 순서를 번호로 매겨 사용할 수 있다.


* LIMIT
mysql> SELECT address FROM table_name GROUP BY 1 DESC LIMIT 3;
해당 테이블의 주소를 출력하되 최대 3개만 출력한다.


* MIN, MAX, SUM, AVG
mysql> SELECT MIN(marks) FROM table_name;
해당 테이블의 점수(marks)의 최소값을 구한다.
MAX = 최대값
SUM = 합한값
AVG = 평균값

댓글 없음:

댓글 쓰기