본문 바로가기

MySQL

기본

여기서는 mysql을 다루는 것을 기본으로 한다.

 

 SQL - DDL(데이터 정의<create,alter,drop>) , DML(데이터 조작<select,insert,update,delete>) , DCL(데이터 제어<grant,revoke>)

 

 DB에 접속하기 : >>mysql -u'사용자아이디' -p'비밀번호'

 

 DB에 접속한 후

 데이타 베이스 보기  :  show databases;

 데이타 베이스 생성  :  create database '데이타베이스이름';

 데이타 베이스 이용하기 :  use '데이타베이스이름';

 데이타 베이스 삭제하기 : drop databaes '데이타베이스이름';

 

데이타 베이스 안에서

 테이블 생성하기

 

   create table 테이블명(

   컬럼이름 타입 필요속성,

   컬럼이름 타입 필요속성,

   ...

   );
   속성으로는 NULL값 유무, primary key 설정, foreign key설정 등이 있는데, NULL값이 있어도 되는경우에는 지정해주지 않아도 되지만, NULL값이 있으면 안되는 경우에는 지정을 해주어야 한다. 이렇게 "NOT NULL" 띄어쓰기 주의하고 쌍따옴표는 안쓰고 내용만 쓴다. 기본키일 경우에는 "PRIMARY KEY"라고 입력, 참조키일때는

"REFERENCES" 라고 써준뒤에 참조하는 테이블과 컬럼명을 써주면 된다. 이렇게 "참조테이블(컬럼명)" 이렇게 속성값을 다 넣은 테이블 생성예제를 보여주겠다.

ex>

create table Member(
memberID varchar(32) NOT NULL PRIMARY KEY,
name varchar(32),
address varchar(50),
phoneNum varchar(32) REFERENCES order(phoneNum),
dateJoined varchar(10)
);

이런식으로 쓰면 된다.

이외에 auto_increment의 속성이 있는데 똑같이 써주면 된다. '_' 언더바 빼먹지 말것.

 

 만든 테이블의 설정값들을 보고 싶으면

   desc '테이블이름';

 

 생성된 테이블에 새로운 컬럼 추가

   alter table '테이블이름'

   add '컬럼명' '컬럼타입';

ex>> 새로운 컬럼추가하는데 그 컬럼타입이 참조키일 경우..

 

alter table contact

add constraint char(15) foreign key(principalid) references principal(id);

 

ex>> 컬럼추가하고 값세팅하기 (날짜 입력 컬럼 만들고 오늘로 날짜 세팅하기

alter table member add regdate date;

update member set regdate = now();

 

 테이블에 기존의 컬럼 삭제

alter table '테이블이름'

drop column '컬럼명';

 

ex>> alter table member drop column regdate;

 

 만든 테이블을 지우고 싶으면

   drop table '테이블이름';

 

 만든 테이블에 데이터 값 넣어주기

inset into '테이블명(컬럼명,컬럼명,)'

values (값들);

ex>>

위에서 만든 member테이블로 예를 들어보면, 테이블의 튜플에 모든 값을 넣을 때는 열의 이름을 안써주어도 되며, 값도 순서대로 들어가지만,

수정을 편하게 하고 가독성을 높여주기 위해서 써주는 것이 좋다.

insert into member(memberID, name, address, phoneNum, datejoined)

values('kjins','hyung-jin Kim','Sangdo','01041979959','20091202');

 

  테이블에 넣은 테이터를 보기 위해서

select 문을 사용한다.

>>select '보고자하는컬럼'

    from '테이블명'

    where '조건';

모두 보고 싶으면 '*'을 이용한다. member 테이블로 예를 들어보면

>> select * from member;

이렇게 하면 member테이블의 모든 테이터를 볼수 있다.

만약 memberID와 name 만 보고 싶을경우

>>select memberID, name from member;

이렇게 하면 member테이블의 id와 이름을 모두 볼수 있다.

그럼 where는 모냐..

조건이다. 테이블의 내용중에 자신에게 필요한 조건을 충족시키는 테이터만을 보고 싶을 때 이용한다.

만약 테이터에서 김씨 성을 가진 사람만 보고 싶다거나 가입한 날짜가 2009년 이후의 사람만 보고 싶다거나 할때 where문을 사용한다.

이때 where문에서 같이 사용해주는 키워드가 like가 있고 '%'와'_'가 있다. %는 0~무제한의 글자를 나타내며 _는 한글자만을 나타낸다.

즉, 김% 이렇게 치면 김자가 들어가있는 글자의 수에 상관없는 모든 데이터를 가리키며, 김_ 이면 두글자를 찾는데 앞글자가 김인 데이터를 찾는 것이다.

그럼 member테이블에서 나를 찾고자 할때는 '김%' 이나 '김__' 이렇게 치면 될것이다. 이런 형식을 이용할려면 like 를 써주어야 한다.

>>

select memberID, name

from member

where name like 김%;

조건에 이름컬럼에서 김으로 시작하는 모든 테이터를 찾는 것이다.

 

 update문

update 'table'

set '컬럼명'='데이터'or'산술식'

where '조건'

>>

update member

set phoneNum = 0112223333

where name=김형진;

다른예제

update items

set price = price*1.1

where cost>100;

 

 delete문

테이블안의 내용을 삭제

delete

from '테이블명'

where '조건';

>>

delete

from items

where order_num=100;

 

 order by

화면에 뿌려주는 순서를 정하는 방식

sql 문장끝에

order by '컬럼명' desc' or 'asc';

를 쓰면 선택한 컬럼명의 내림차순이나 오른차순으로 데이터를 보여준다.

컬럼명을 두개 이상쓰면 첫번째걸로 정렬하다가 같은 것이 나오면 두번째 컬럼명의 순서대로 정렬하여 뿌려준다.

'MySQL' 카테고리의 다른 글

오라클 계정관리(잠금,풀기,암호만료)  (0) 2016.05.18
현재시간  (0) 2013.03.04