728x90

MySQL

 

-데이터베이스 생성

mysql > create database haksa;

 


 

++ show databases; 는 데이터베이스를 모두 보여준다.

++ ; 이 명령문의 끝에 사용되어서 명령문이 길어질 경우 엔터치고 사용할 수 있다.

 

-데이터베이스 사용

mysql > use haksa;

 


 

-테이블 만들기

 

++쿼리문 만들때, 메모장에서 작업 후에 cmd창에서 하는 것이 나중에 오타가 났을 경우 고치기 쉽다!

 

<insa 테이블  생성>

create table insa(

bunho int(1) auto_increment,

name char(8) not null,

e_name char(4) not null,

town char(6) not null,

primary key(bunho)

); // 이거 작성하는데도 오타나서 고쳤네요 ㅋㅋㅋ


결과는,                                                                                                            테이블 결과 값을 보면 아래와 같습니다.

                                            

<create table 테이블명();>                                                                                         <show tables;>

 


<desc 테이블명;> -> 테이블 구조를 보여줍니다.

 

명령어를 정리해보면

mysql > create table 테이블명(); ->테이블 만들기

mysql > show tables; -> 테이블 모두 보여주기

mysql > desc 테이블명; -> 테이블 속성 보여주기

 

-데이터 입력(insert)

 

ex>

insert into insa values('1','홍길동','Hong','순천');

insert into insa values('2','제갈공명','Je','여수');

insert into insa values('3','순자','Soon','부산');

insert into insa values('4','이순신','Lee','여수');

insert into insa values('5','니얼굴','NII','내마음');                      

 

오른쪽과 같이 적용됩니다.

 

insert 문법은

 

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)] 
    [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

Or:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)]
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

Or:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)] 
    [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

 

이렇다고 합니다. (이렇게 보니까 더 어렵게 느껴지지만 여러가지 방법이 있으니 좋은거죠 ㅎㅎ)

 

insert 한 데이터를 확인해봅시다.

 

mysql > select * from insa;

 

select 문은 데이터를 가져올때 쓰이는데, *의 의미는 '모두'

from insa 는 insa 테이블에서 가져오겠다 라는 의미입니다.     

 

 

 

 

-자료 수정(update)

mysql > update insa

->set town = '한산도'

->where bunho = 4;

                          이순신 장군님 town 값이 여수 -> 한산도가 됬습니다.

 

++ Autocommit 에 대한 부분

autocommit은 자료를 입력하고 수정하고 삭제하는 것이 실제로 데이터가 반영되는것을 설정하는 값인데,

autocommit = 1  이면 자동적으로 반영되는 것이고,

autocommit = 0  이면 메모리상에서만 반영되고 commit 하면 실제로 데이터가 저장됩니다.

데이터를 저장하고 싶지 않고 원 상태로 돌리려면 rollback 하면 데이터가 복구 됩니다.

 

화면을 보면,

autocommit=0



                            다시 접속합니다.

 


                        적용이 되지 않았습니다.

여기서 바꾸고 나서 commit 하면 적용(홍길동으로 저장됨)이 되고 rollback하면 원래 "최길동"으로 돌아갑니다.

 

 

savepoint & truncate

savepoint는 rollback 시점을 정해주는 것.

mysql > savepoint aa;

mysql > rollback to aa; -> aa 지점으로 롤백합니다.

 

truncate 는 테이블의 삭제 처리(모든 행이 삭제 처리됨)

->autocommit 상관없이 다 지워버림(실제로 적용됨)

->돌이킬수 없다.

->위험하다.

->기억에서 지우자

 

 

 

 


Posted by 앗뜨거
,