Pages

Saturday, February 20, 2010

MySQL 쿼리 정리

[+MySQL 쿼리 정리]

//--데이터베이스 만들고 사용 선언하기
- CREATE DATABASE gamedata;
- SHOW DATABASES;
- USE gamedata;

//--테이블 만들고 보기
- CREATE TABLE playerinfo (
id INT AUTO_INCREMENT,
name VARCHAR(30),
xpos INT,
ypos INT,
exp INT,
PRIMARY KEY(id));
- SHOW TABLE; //만들어진 모든 테이블보기
- DESCRIBE playerinfo; //특정테이블 보기

//--테이블에 데이터 넣기
- INSERT INTO playerinfo VALUE
(NULL,LeeSangRyul,14,35,1431); //NULL 은 자동할당이기 때문
- INSERT INTO playerinfo VALUE
(NULL,Kim,14,35,1431),
(NULL,Park,14,35,22222),
(NULL,Bea,14,33,33333); //콤마로 연속해서 입력 가능

//--테이블에 특정 데이터 보기(선택)
- SELECT * FROM playerinfo; //전부 선택
- SELECT name,exp FROM playerinfo;
- SELECT * FROM playerinfo WHERE exp > 1000;
- SELECT id,name FROM playerinfo WHERE ypos = 86;
- SELECT id,xpos,ypos FROM playerinfo WHERE name = "LeeSangRyul";
- SELECT * FROM playerinfo WHERE name LIKE "Lee%"; //시작이 Lee 모든것
- SELECT * FROM playerinfo WHERE name LIKE "%Sang%"; //어디든 Sang이 있는 모든것
- SELECT * FROM playerinfo WHERE xpos > 10 AND xpos < 20;

//--테이블에 추가 필드 삽입,수정
- ALTER TABLE playerinfo ADD lastlogin TIMESTAMP; (필드이름, 필드타잎)
- ALTER TABLE playerinfo MODIFY name VARCHAR(50); //타잎 수정

//--필드 데이터 업데이트
- UPDATE playerinfo SET lastlogin = NULL WHERE name = "Lee Sang Ryul";
- UPDATE playerinfo SET exp = 1000 WHERE name LIKE "J%";
- UPDATE playerinfo SET exp = 500 WHERE xpos > 10 AND xpos < 20;

//--출력 순서정하기
- SELECT * FROM playerinfo ORDER BY name;
- SELECT * FROM playerinfo ORDER BY name DESC; //내림차순
- SELECT * FROM playerinfo ORDER BY exp,xpos;

//--입력된 데이터구하기
- SELECT @maxid:=MAX(id) FROM playerinfo; //@는 변수 MAX 함수는 가장 큰값얻는 함수
- SELECT * FROM playerinfo WHERE id = @maxid;

- SELECT @lastlogin:=MAX(lastlogin) FROM playerinfo;
- SELECT * FROM playerinfo WHERE lastlogin = @lastlogin;

//--출력갯수 제한
- SELECT * FROM playerinfo WHERE name LIKE "J%" LIMIT 2;

//--테이블에서 데이터 삭제
- DELETE FROM playerinfo WHERE name = "Lee Sang Ryul";
- DELETE FROM playerinfo WHERE id = 3;
- DELETE FROM playerinfo; //다지우기

//--테이블 및 데이터베이스 삭제
- DROP TABLE playerinfo;
- DROP DATABASE gamedata;


[+관계형 데이터베이스]

- id 관계를 잘 정리하면 된다. ㅎㅎ


[+텍스트 파일 입력]

- 각항목 사이 탭을 넣어주고, 엔터치기전에 탭 한번 더 넣어줌
- MySQL bin 디렉토리에 복사
- 엑셀에서 데이터를 입력하고 txt로 세이브하면 똑같이 된다.

- LOAD DATA LOCAL INFILE "player.txt" INTO TABLE playerdata;
- SELECT * FROM playerdata ORDER BY id;


[+데이터베이스 백업 및 복원]

//--onlinegame 이라는 데이터베이스를 backup.sql 파일로 백업
- mysqldump onlinegame > backup.sql // 커맨드 모드에서 즉 sql 빠져나와서)

//--복원
- CREATE DATABASE onlinegame;
- mysql onlinegame < backup.sql // 커맨드 모드에서 즉 sql 빠져나와서)


출처 : http://envygame.com/~blog/Zeus0423/tag/mysql+php

No comments: