MySQL 명령어

2017년 03월 15일

DATABASE –>여러 개의 TABLE -> 여러 개의 필드;

명령어들

 

-DATABASES-

*SHOW  DATABASES;                                   <현재 있는 데이터 베이스 이름을 본다.>

*USE  데이터베이스이름;                                   <데이터베이스이름를 사용한다.>

*CREATE  DATABASE 데이터베이스이름;      <데이터베이스이름으로 데이터베이스를 만듬.>

*DROP  DATABASE 데이터베이스이름;           <데이터베이스이름의 데이터베이스를 삭제>

 

-DATABASE- :USE 데이터베이스이름; 명령으로 사용할 데이터베이스 선택해야함

*CREATE  TABLE 테이블이름(구조)               <데이터베이스안에 테이블를 만든다.>

Ex) CREATE TABLE aa(id INT AUTO_INCREMENT, name VARCHAR(30), old INT, exp INT, PRIMARY KEY(id));

-> 변수 선언할 때 (변수이름 변수형, ….. )

-> AUTO_INCREMENT 자동추가로 값을 입력할 때 NULL를 넣으면 자동 증가된다.

-> PRIMARY KEY(id) 명령은 테이블 내의 특정 변수를 검색하는데 있어서 데이터베이스를 최적화 하는데 사용된다. 뒤에 in는 가장 처음 선언한 변수로써 id를 가장 많이 검색하게 될 것이므로 id를 테이블의 primary key로 설정했다..

 

*SHOW  TABLES;                                      <데이터베이스안에 선언한 테이블 이름이 출력.>

*DESC  테이블이름;                                         <데이터베이스안의 테이블이름의 구조를 본다.>

Ex) DESC aa; 라고 하면 aa라는 테이블 구조가 출력된다.

*INSERT INTO 테이블이름 VALUES (테이블 변수값);

Ex) INSERT INTO aa VALUES (NULL, ‘잭’, 14, 1431), (NULL, ‘룬’, 20, 14342) ;

 ->문자열 입력할때는 ‘룬’ 처럼 ‘ ‘ 안에 넣도록

 

*DROP  TABLE  aa;

데이터베이스 안의 aa 데이블 자체를 지운다.

<SELECT 테이블 데이타 검색>

*SELECT  *  FROM  테이블이름             <데이터베이스안의 테이블이름 모든 내용 값출력.>

*SELECT  찾는테이블변수이름  FROM  테이블이름   

                                            <데이터베이스안의 검색테이블변수이름에 대한 모든 값을 출력>

Ex) SELECT name,exp FROM aa;                              aa테이블 안의 name과 exp 부분값만 출력

*SELECT  *  FROM  테이블이름  WHERE 조건;       테이블안에 조건에 맞는 필드만 출력

Ex) SELECT *FROM aa WHERE exp > 1000;               aa테이블 안의 exp부분값이 1000이상일것만 출력

확장 => SELECT id,name FROM aa WHERE old = 86;   aa테이블 안의 old값이 86인것만 id과 name를 출력

          => SELECT * FROM aa WHERE old > 86 AND old<20;  AND 명령어로 조건을 추가할 수 있다.

*SELECT * FROM aa WHERE name LIKE “J%”;   <aa테이블의 name내용중 “J”로 시작하는 필드들 출력

 =>LIKE는 부분 속하는것이다. 만약 LIKE “%S%” 로 검색하면 S문자가 포함된 모든 값들을 출력한다.

 

* SELECT * FROM aa WHERE name LIKE “J%” LIMIT 2;                            =제한.

<aa테이블의 name내용중 “J”로 시작하는 필드를 출력하는데 2개만 출력한다.>

 

<DELETE FROM 테이블에 필드 삭제. >

*DELETE FROM aa WHERE name = “Jeff”;

<aa테이블에서 이름이 Jeff인 필드를 삭제한다>

*DELETE FROM aa;

<aa테이블 안의 모든 필드를 지운다.>

 

<ALTER 테이블에 다른 필드 추가. >

*ALTER  TABLE  aa  ADD  lastTime  TIMESTAMP;  

<aa의 테이블안에 lastTime라는 이름에 TIMESTAMP 속성의 필드가 추가된다.>

즉 aa가 (id INT, name VARCHAR(30), old INT, exp INT); 였다면

위 명령실행후

Aa는 (id INT, name VARCHAR(30), old INT, exp INT, lastTime TIMESTAMP) 로 된다는 것이다.

 

*ALTER  TABLE  aa  MODIFY  name  VARCHAR(50);

<aa의 테이블 안에 있는 name 변수를 VARCHAR(50)으로 속성을 바꾼다.>

 

<UPDATE 필드의 데이터 업데이트>

*UPDATA aa SET lasttime =NULL WHERE name = “Jeff”;

<aa의 테이블 안에 있는 name이 “Jeff”이 lasttime 속성의 값을 현재시간으로 업데이트한다.>

(TIMESTAMP는 NULL입력하면 현재시간으로 된다.)>

(만약 직접 입력하고 싶다면 NULL대신 20090722002000 처럼 입력하면된다. 앞에서부터 2009년 07월 22일 00시20분 00초 이다,)

확장 => 마지막에 LIKE 명령어로 해당 값이 들어간 모든 것에 수정할수 있다.

           *UPDATA aa SET lasttime =NULL WHERE name LIKE “J%”;

           ->이름이 J시작하는 lasttime를 현재시간으로 업데이트한다.

 

<ORDER BY 출력 순서 정하기 > -기본이 오름차순이다.

*SELECT * FROM aa ORDER BY name;         <aa테이블에서 name를 값중심으로 오름차순 정렬한다>

내림차순으로하려면 => *SELECT * FROM aa ORDER BY name DESC;      

같은값이 나올 때 또다른 순서 => (ex) old 나이가 같은사람은 다음 경험치로 순서를 정하려면)

                                            *SELECT * FROM aa ORDER BY old,exp;

 

<마지막 입력된데이터 구하기

1. SELECT @maxid:=MAX(id) FROM aa;

 - @명령어로 maxid 이름을 변수를 선언하여 id필드로부터 가장 큰 값을 얻어 저장한다.

2. SELECT *FROM aa WHERE id = @maxid;

 - 테이블 aa에서 id값이 maxid에 저장되 최대값인 필드만 출력한다.

 

*가장 늦은 시간값 구하는 방법

1. 마지막 시간을 가져온다.

 SELECT @lastTime:=MAX(lastTime) FROM aa;

2.그 시간을 가지고 검색해서 가져온다.

 SELECT * FROM aa WHERE lastTime =@lastTime;

이때 같은 이름을 했지만 지역 변수로 되어 중복되는 것이 아니다.

 

-기타.

*DB 백업하기 backup.sql 파일 만들기

콘솔화면에서 mysqldump 파일 있는 경로로 가서(보통 sql이 설치된  bin에 있다)

Mysqldump –u root –p DB데이타 이름 > 저장이름.sql

Ex) Mysqldump –u root –p gamedata > gamedata.sql

 

*gamedata.sql 파일 복원

컨솔화면에서 mysql –u root 넣을데이타베이스이름 < 넣을데이타.sql;

Ex) mysql –u root gamedata <gamedata.sql

중요한건 넣기전에 새로운DB가 없으면 안되니. CREATE DATABASE gamedata; 만들어줄것!

 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기