Fogeaters, Light The World.

19

2017-Jul

[MySQL] 설치 및 기초명령어

작성자: title: MoonBlonix IP ADRESS: *.64.228.3 조회 수: 1009

참고 :

http://luckyyowu.tistory.com/184

http://link2me.tistory.com/431    >> 사용자DB 권한설정 관련




당연히 관리자 권한으로 진행


apt-get update

apt-get upgrade

apt-get install mysql-server


순서대로 진행


service mysql start

mysql -u root -p


참고 : mysql -h 호스트명 -u 아이디 -p

-p 옵션은 비밀번호 물어보는거

설치시 입력했던 패스워드 ㄱ


show databases;

현재 사용가능한 DB 목록이 뜬다.


use mysql;

mysql DB는 mysql 관리용 DB다. 사용할 DB를 선택하는작업.


1) create user '니하고싶은ID';

2) create user '니하고싶은ID' identified by '니하고싶은password';

3) create user '니하고싶은ID'@'%' identified by '니하고싶은password';

첫번째는 비밀번호 없는 유저가 생긴다.

두번째는 비밀번호까지 동시에 생기고,

세번째는 비밀번호와 호스트까지 부여한다. ('%'는 외부접근 호스트를 의미)

좀 더 힘들게 만들려면 아래 방법을 쓸 수도 있다.

4) insert into user (host, user, password) values ('localhost', '아이디', password('비번'));

5) insert into user (host, user, password) values ('%', '아이디', password('비번'));

위에서 insert, update, delete 구문을 이용한 경우에는 아래 구문을 실행해야만 한다. (4, 5번)

flush privileges;


혹시 사용자를 삭제할 필요가 있다면 아래 구문을 이용한다.

1) drop user '니아이디';

2) delete from user where user = '니아이디';

2번을 쓴 경우 flush privileges;

호스트 지정이 필요하다면 drop user '니아이디'@'%'; 또는 drop user '니아이디'@'localhost'; 도 가능하다.


혹시 특정 요소를 변경할 필요가 있다면 아래 update 구문을 이용한다.

UPDATE 테이블명

SET 수정되어야 할 컬럼명 = 수정되기를 원하는 새로운 값

WHERE 변경 데이터 조건 컬럼 = 선택 조건 값;


show tables;

DB의 전체 테이블을 출력한다.


desc user;

user 테이블의 구조를 출력한다.


select host, user, password from user;

user 테이블이 가진 모든 요소를 host, user, password 항목에 대해 출력한다.

이때 비밀번호는 암호화된 것을 볼 수 있다. 위에 사용자 만들때 4,5번에서 password('비번') 한게 암호화 함수다.


create database testdb;

testdb라는 이름의 데이터베이스를 생성한다.

삭제는 drop database 어쩌구저쩌구 다.


grant all privileges on testdb.* to 니아이디@니호스트;

를 통해 testdb의 모든 테이블 모든 요소에 접근권한을 줄 수 있다. all 대신 딴거하면 요소제한됨.

뒤에 identified by '비번' 붙이면 비밀번호 변경도 가능

flush privileges;


show grants for 니아이디@니호스트;

통해서 권한 준 걸 확인할 수 있다.

참고로 권한 제거는 grant 대신 revoke, to 대신 from 이다.


\q

나간다.


mysql -u 새로운유저id -p

비밀번호 입력하고 들어간다.


show databases;

해보면 아까 만든 데이터베이스가 뜬다.


use testdb;

show tables;

해보면 비어있을거다.


create table guestbook(

id int unsigned not null auto_increment primary key,

name varchar(20),

home varchar(40),

comment text,

reg_date datetime

);

테이블을 작성한다. 이름은 guestbook이다.

id 는 unsigned int이고 null이 아니며, 자동으로 증가하고 각 컬럼(데이터)를 구분하는 고유값(primary key)이다.

사실 primary key 붙으면 not null은 자동으로 따라와서 안붙여도 된다.

varchar는 가변길이 사용으로 남는 공간을 반환해 용량확보에 유리하나 속도가 느리다.

datetime 은 시간 날짜 변수형이다.

디폴트값은 default 0 과 같이 설정할 수 있다.

auto_increment 값이 있을 경우 디폴트값을 설정 못한다. (최근버전)

DB엔진이나 문자인코딩 등도 테이블을 만들 때 지정할 수 있는데, 마지막에 괄호 닫을 때 아래처럼 하면 된다.

)Engine-='InnoDB' default charset='utf8';

참고 : http://blog.naver.com/poohnuna/50082208273




insert : 테이블에 하나의 행을 삽입(DML)

형식)

insert into 테이블이름(컬럼 이름) values(데이터,데이터);

예)

insert into person(name, age, gender, grade) values('YoWu', '24', '남', '3');

insert into person(name, age, gender, grade) values('hsg', '25', '남', '4');

특정 컬럼에만 값을 넣을 경우 컬럼 이름을 넣어주면 된다. 컬럼명 미기재시 모든 컬럼에 순차적으로 데이터가 입력된다.


select : 테이블 데이터 조회(DML)

예)

select * from person; : person 테이블의 모든 데이터 조회

select * from person where age=24; : person의 데이터중 age의 값이 24인 데이터만 조회

select name from person where gender='남'; : person의 데이터 중 gender의 값이 '남'인 데이터의 name 값 조회

select name, age from person where gender='남' and age>20;: person의 데이터 중 gender의 값이 '남'이면서 age가 20이상 데이터의 name, age 값 조회



UPDATE [테이블] SET [] = '변경할값' WHERE [조건]


자주 쓰이는 자료형

  • char : 문자열
  • varchar : 가변 문자열
  • text : 텍스트
  • int : 정수
  • double : 실수
  • date : 날짜
  • datetime : 날짜 + 시간

char와 varchar의 차이
  • char(100) : 고정 크기, 읽어올 때 100byte 모두를 읽어온다.
  • varchar(100) : 가변 크기, 읽어올 때 저장된 크기 만큼만 읽어온다. 하지만 느리다.
  • profile
    List of Articles
    번호 제목 글쓴이 날짜 조회 수
    공지 [Web] 클라우드 IDE + 2 title: MoonBlonix 2017-06-25 15128
    91 [web] 제로보드처럼 url 줄이기 + 1 title: MoonBlonix 2017-08-04 1656
    90 [php] 환경변수 $_SERVER title: MoonBlonix 2017-08-04 1687
    89 [mysql] 테이블 수정 title: MoonBlonix 2017-08-04 1614
    88 [Javascript] 섬세한 뒤로가기 구현 title: MoonBlonix 2017-08-01 1498
    87 [php] 쿠키 사용하기 title: MoonBlonix 2017-08-01 1743
    86 [javascript] POST 전송하기 title: MoonBlonix 2017-07-31 1607
    85 [Web]다국적 웹사이트 제작 title: MoonBlonix 2017-07-27 1927
    84 [php] 5 -> 7 변경점 정리 title: MoonBlonix 2017-07-23 1343
    83 [php/mysqli] 설치 및 연동 + 2 title: MoonBlonix 2017-07-23 1692
    » [MySQL] 설치 및 기초명령어 title: MoonBlonix 2017-07-19 1009
    81 [Web] JQuery 설치 title: MoonBlonix 2017-07-04 1675
    80 [CSS] Toggle Switch Examples title: MoonBlonix 2017-07-01 1833
    79 [CSS] Input Text Styles title: MoonBlonix 2017-07-01 1693
    78 [Web] CSS 프론트엔드 워크프레임 소개 title: MoonBlonix 2017-06-25 1444
    77 [C++] 코딩시 좋은 습관들 : 스타일 title: MoonBlonix 2017-06-11 1577
    76 [PHP] 강좌 모음 + 1 title: MoonBlonix 2017-06-08 1908
    75 [Arduino] 아두이노로 GPS(위치) 추적기(GPS Tracker)를 만들어 보았다 + 1 2N 2017-03-06 1425
    74 [AI]딥러닝 공부 가이드 (SW 준비편) title: MoonBlonix 2017-01-15 1502
    73 [C++ STL] std::vector + 2 title: MoonBlonix 2016-12-14 1738