최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

■ Database ■/MySQL

SQL의 기초

serpiko 2013. 10. 15. 11:49
SQL문이란 : DBMS에서 자료를 요청하는 언어.

핵심만 뽑아낸 10개의 챕터로 기초를 마무리 지어보자.




1. 사용할 데이터베이스 접속 방법

(윈도우의 apmsetup설치시 비번도 apmsetup이다.)

ㄱ. mysql -h호스트 주소 -u사용자ID -p비밀번호 DB명  //으로 직접 로그인과 동시에 DB에 접속이 가능하다.

ㄴ.mysql - h호스트 주소 -u사용자ID -p비밀번호  
    mysql> use DB명

으로 해도된다. 

ㄷ.c:\> mysql -h호스트주소 -u사용자ID -p비밀번호 //내 컴퓨터에 있는 mysql서버일경우 -h 옵션은 사용하지 않아도 된다.

접속후에는 MySQL에서 DB를 일단 생성하고 DB선택및 table을 조회해 본다.

mysql> create database myDB;
mysql> use DB명
mysql> use myDB
mysq>  show tables
mysql> quit


2. 계정생성과 변경


로그인


c:\> mysql -uroot -pampsetup mysql  //마지막의 mysql은 기본생성 DB이다. 동작과 정보파일이 있으므로 조심하자.


계성생성과 DB사용권한 셋팅


mysql> create database myDB; //1번에서 myDB를 생성했다면 패스

문법 : grant all privileges on DB명. * to ID identified by '비밀번호' with grant option;

사용 : grant all privileges on myDB. * to USER identified by '1234' with grant option;


DB에 바로 반영 명령


mysql> flush privileges;


종료 


mysql> quit


로그인확인


c:\> mysql -uUSER -p1234 myDB


비밀번호 변경


일반사용자일 경우 자신의 비밀번호만 바꿈 : set password = password('새로운 비밀번호');

root권한의 관리자 계정을 경우 모든 비밀번호 바꿀수 있음.

c:\> mysql -uUSER -p1234 mysql
mysql> update user set password = password('새로운비번') where user='ID';
mysql> flush privileges;
mysql> quit

확인해보자

c:\> mysql -uUSER -p새로운비번 myDB


3. 데이터 베이스

생성

create database DB명;
create database myDB;

> show database;

삭제

drop database DB명;
drop database myDB;



4. 테이블

생성.

create table 테이블명(
필드명 타입,
필드명 타입
primary key(필드명)
);

create table myTable(
num        int            not null,
name     char(10),
tel         char(20),
phone    char(20),
primary key(num)
);

반드시 입력되어야 하는 숫자형 not null 필드, 나머지는 문자열이고 각각 10, 20, 20이다.
프라이머리 키는 num 필드로 저장.

테이블의 구조 살펴보기.
desc 테이블명;
desc name;  

삭제

drop table 테이블명;
drop table myTable;



5.테이블의 데이터 추가

insert into 테이블명 (필드명, 필드명...)
           -> values   (필드값, 필드값...);

mysql> insert into myTable (num, name, tel, phone)
-> values (1, '홍길동', '123-456', '010-123-456');

축약형

mysql) insert into myTable values(2, '누자베스', '777', '010-999-3333');


6. 선택

select 필드명,필드명 from 테이블명;
select name, tel from myTable;

모든 필드의 선택은

select * from myTable;

필드의 특정값을 조회해서 가져올때

select 필드명,필드명 from 테이블명 where 조건식;
select num,name from myTable where tel='123-456';

select * from myTable where num>=1 and num<=10; //myTable의 num 값이 1부터 10까지인 필드


7. 수정

update 테이블명 set 필드명=필드값 [where 조건식];
update myTable set name='세르피코' where num=1;

주의

update myTable set name="세르피코'; //myTable에서 모든 레코드의 name필드값을 세르피코로 바꾼다.


8. 삭제

delete from myTable [where 조건식];
delete from myTable where phone='010-123-456';
delete from myTable where num=1;

주의

delete from myTable; // myTable 의 모든 레코드를 삭제한다.



7.batch파일

긴 테이블 생성 쿼리를 일일이 입력해서 실행해야 하는 작업을 줄이기위해 batch파일을 작성해보자.

일단 에디터로 다음을 입력

create table myTable(
num int not null,
name char(10),
addr char(20),
tel char(10),
primary key(num)
);

myTable.sql 로 저장 하고 찾기 쉽도록 하기 위해 일단 c:\>에 저장.

c:\> mysql -uUSER -p1234 USER_DB < myTable.sql //"DB < myTable.sql" 을 DB쪽으로 실행 한다고 이해하면 쉽다.

잘 실행되었는지 테이블을 살펴보자.

c:\> mysql -uUSER -p1234 USER_DB
mysql> show tables;
mysql> desc myTable;





10. 백업

데이터 베이스백업은 "mysqldump"라는 mysql에 포함되어있는 유틸을 사용한다.

mysql mysqldump -h서버 -uID -p비밀번호 DB명 > 백업파일명
mysql mysqldump -uUSER -p1234 myDB > backup.sql //"myDB backup.sql" 을 DB에서 sql쪽으로 실행 한다고 이해하면 쉽다.

.sql문서는 create table과 insert쿼리로 구성. 실행하기만 하면 원본의 DB가 그대로 복원됨.

복원은 DB에 입력하는 7번의 배치 명령어와 완전히 동일하다. (그냥 입력하는 거니까)

mysql -h서버 -uID -p비밀번호 DB명 < 백업파일명
mysql -uUSER -p1234 myDB < backup.sql


작성 : serpiko     인용 : 필요한것만 공부하는 PHP프로그래밍 (이성욱, 장종준 공저)


'■ Database ■ > MySQL' 카테고리의 다른 글

DB 데이터타입 지정의 예  (0) 2014.10.21
mysql DELETE문  (0) 2013.10.16
mysql에서 UPDATE문  (0) 2013.10.16
데이터타입2  (0) 2013.10.16
MySQL 기본 명령어 정리  (0) 2013.10.16
댓글