mysql 기본 사용법

· 17년 전 · 2775

mysql 기본 사용법


1. Mysql 기본 사용법

 

->Mysql 데이터베이스 접속하기

# mysql -u root mysql

 

-> mysql 관리자 root 패스워드 설정하기

# mysql -u root mysql

mysql> update user set password = password('shcm0816') where user = ' root';

 

-> 빠져나간후 데이터베이스를 재시작

# mysqladmin -u root reload

 

->패스워드 입력

# mysql -u root -p mysql

 

< 여러가지 관련 명령어 >

 

->데이터베이스 확인

mysql> show databases;

 

->테이블 확인

msyql> show databases;

msyql> desc user =>동일한 결과

 

2. 데이터베이스 생성 및 삭제

 

->데이터베이스 생성

① 첫번째 방법

# mysql -u root -p mysqlll

    msyql> create database TESTDB;

    msyql> show databases;

 

② 두번째 방법

# ./mysqladmin -u root -p create testdb2

Enter password:

# ./mysql -u root -p mysql

Enter passwor

 

cd /

msyql> show databases;

msyql> exit

Bye

#

 

->데이타 베이스 삭제

# ./mysqladmin -u root -p drop testdb2

Enter password:

 

mysql> drop database testdb2

 

# ./mysql -u root -p mysql

msyql> show databases;

 

3. 새로 생성한 데이터베이스 등록하기

-> 데이터베이스를 새로 생성한 후에는 mysql 이라는 관리용 데이터베이스에 등록

->mysql 이라는 데이터베이스의 db라는 테이블에 TESTDB를 등록한 것

msyql> insert into db  values('%','TESTDB','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

msyql> select host, db, user from db

 

4.  Mysql 사용자등록(데이터베이스 소유자)

->mysql 을 사용할 사용자는 반드시 user 라는 테이블에 등록을 해줘야함

msyql> insert into user (host, user, password) values('localhost', 'sspark', password('shcm0816'));

 

->정상적인 등록여부 확인

msyql> select host, user, password from user;

 

->sspark이라는 사용자로 mysql 데이터베이스로 접속

msyql> mysql -u sspark -p

Enter password:

 

->새로운 데이터베이스를 생성하거나 새로운 사용자를 생성한 후에는 반드시 reload를 해줘야함

# mysqladmin -u root -p reload

Enter password:

 

5. 테이블 생성 및 삭제

msyql> create table testtable (

         ->uid mediumint(4) unsigned DEFAULT '0' NOT NULL auto_increment,

         -> name varchar(12) DEFAULT "" NOT NULL,

         -> email varchar (20) DEFAULT "" NOT NULL,

         -> PRIMARY KEY (uid)

         -> );

Query OK, 0 rows affected (0.00 sec)

msyql>show tables;

 

-> 필드 구조가 정의한 필드구조로 생성되었는지 확인

msyql> desc testtable;

 

-> 삭제

msyql> drop table testtable;

mysql> show tables;

 

6. 테이블속성 및 구조변경법

ALTER TABLE 테이블명 CHANGE[COLUMN] 필드명 필드타입

-> 기존 테이블에 필드 추가하기

 

mysql> alter table testtable add column homepage varchar(30);

mysql> desc testtable;

 

-> 기존에 필드 속성 변경하기

ALTER TABLE 테이블명 CHANGE[COLUMN] 기존필드명 새필드명 필드타입

mysql> alter table testtable change column homepage home varchar(50);

 

-> 기존에 필드 삭제

ALTER TABLE 테이블명 DROP [COLUMN] 필드명

mysql> alter table testtable drop column home;

mysql> desc testtable;

 

-> 기존의 테이블삭제하기

mysql> create table sampletable

mysql> show tables;

mysql> drop table sampletable;

mysql> show tables;

 

7. 데이터 입력하기

mysql> insert into testtable (uid, name, email) values ('', 'parksungsoo', 'sspark09@soback.kornet.net');

-> 주의: uid라는 필드는 auto_increment 라는 속성으로 생성했기 때문에 이 속성을 가진 필드들은 실제로 데이터값을 주지 않아도 자동적으로 1씩 증가.

 

->삽입할 필드는 생략가능

mysql> insert into testtable values('','sontaesoo','shutterbug@orgio.net');

 

->특정 필드에만 데이터를 입력할 경우에는 입력할 필드이름만을 나열 그에 해당하는 데이터 입력

mysql> insert into testtable (uid,name) values('','junwooki');

->정상적으로 입력되었는지 확인

mysql> select * from testtable;

 

8. 데이터 검색

SELECT(데이터검색하기)

->데이터검색의 일반적인 방법

 

-> 테이블의 모든 테이터를 검색

mysql> select * from testtable;

 

-> uid와 name 필드만을 조회

mysql> select uid, name from testtable;

->where문을 사용하여 특정 조건에 맞는 데이터만을 검색

mysql> select * from testtable where name = "sontaesoo";

 

->출력 결과 레코드의 중복제거하기(DISTINCT)

SELECT DISTINCT sex FROM testtable

 

->다양한 검색 방법

 

->'soo'라는 문자가 포함된 데이터를 모두 검색

->SELECT name FROM testtable WHERE name LIKE '%soo%'

mysql> select name from testtable where name LIKE '%soo%';

 

->특정한  한 문자로 시작하는 데이터만을 출력할 때에 사용하는 조회형식

SELECT name FROM testable WHERE name LIKE 'park%'

mysql> select name from testtable where name LIKE 'park%';

 

->특정 필드에 데이터가 NULL 인 경우를 조회한것

SELECT uid, name FROM testtable WHERE age IS NULL

mysql>select uid, name from testtable where age IS NULL;

 

-> 특정 필드의 데이터가 NULL이 아닌 경우

SELECT uid, name FROM testtable WHERE age IS NULL

 mysql>select uid, name from testtable where age IS NOT NULL;

 

-> SELECT name, uid, email FROM testtable WHERE savem > 5000 AND sex='M'

-> SELECT name, uid, savem FROM testtable WHERE savem >= 5000 ORDER BY savem  

     DESC

-> SELECT count(*) FROM testtable WHERE sex='M'

-> SELECT avg(savem) FROM testtable WHERE sex='M'

 

9. 데이터 수정하기

->UPDATE 테이블명 SET 필드명=필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}*[WHERE

   검색조건]

mysql> select * from testtable;

 

->uid 4 번의 데이터에 name 값과 email을 입력해 봄

mysql> update testtable set name = 'junyangmi' where age = 23;

mysql> update testtable set email = 'jym@superuser.co.kr' where age = 23;

mysql> select * from testtable;

 

-> uid 1 인 사람 (parksungsoo)의 나이를 25살로 수정

mysql> update testtable set age= 25 where uid =1;

 

->uid 2인 사람의 나이를 30살로 수정

mysql> update testtable set age = 30 where uid =2;

mysql> update testtable set age = 41 where uid=3;

 

-> 한해가 지났으므로 모든 사람의 나이를 한 살씩 증가

mysql> update testtable set age = age + 1;

mysql> select * from testtable;

 

10. 데이터 삭제하기(delete)

->Delete FROM 테이블명 [WHERE 검색조건]

mysql> select * from testtable;

mysql> delete from testtable where uid = 3;

 

11. 새로운 사용자 등록

-> Mysql 에 root로 접속

./mysql -u root -p

->Mysql DB 선택

mysql> use mysql;

mysql> show tables;

 

->새로운 DB 생성

mysql> create database xlare;

 

-> user 테이블에 입력 (user 라는 테이블에 새로운 사용자의 계정이름과 권한설정을 할 차례)

-> 호스팅사용자에 대한 설정 user테이블에 현재 사용장0ㅔ 대한 권한들을 모두 'N'로 설정

mysql> insert into user valuses('localhost', 'xlare', password('123'),'Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N');

 

->user  테이블에 입력확인

mysql> select * from user where user = 'xlare' ;

 

-> db 테이블에 입력

mysql> insert into db values('localhost', 'xlare', 'xlare', 'Y','Y','Y','Y','Y','N','N','N','N','N',);

 

-> db 테이블에 입력 확인

mysql> select * from db where db = 'xlare';

 

-> 새로운 설정을 바로 적용키위해 mysqladmin 이라는 관리자명령어로 mysql 을 재시작

->reload를 해주지 않으면 생성했던 것들이 적용이 되지 않음

# ./mysqladmin -u root -p reload;

 

12. 일반사용자 권한설정(보안사항)

#./mysql -u root -p mysql

Enter password:

mysql> show tables;

--------------------

tables in mysql

--------------------

columns_priv

db

func

host

tables_priv

user

----------------------

 

->columns_priv 테이블

* 모든 특정 DB 의 특정 User 에 대한 특정 테이블의 각 컬럼에 대한 select, insert, update,

   reference 권한을 설정

mysql> desc columns_priv;

->db 테이블

* db라는 테이블에는 특정 DB에 대한 user들의 여러가지 권한들을 설정하는 테이블

mysql> desc db;

-> kebia 라는 데이터베이스의 소유자와 그 권한에 대해서 알아보고자 함.

-> kebia라는 데이터베이스의 소유자는 hyung 이라는 mysqkl 사용자이며 이 hyung 이라는 사용자

     는 이 kebia 라는 데이터베이스에 대한 각종 권한을 볼수 있음.

mysql> select * from db where db = 'kebia';

| localhost | kebia | hyung | Y  |   - - - - - ...........

------------------------

 

->tables_priv테이블

* columns_priv 테이블처럼 각 데이터베이스와 사용자 및 그 테이블에 대한 권한 설정

mysql > desc tables_priv;

---------------------

 

->user 테이블 : 새로운 사용자를 생성할때 이 테이블에 등록

-> 특정 사용자에 대한 Mysql에 존재하는 모든 데이터베이스에 대한 권한설정

-> 특정 사용자의 어떤권한에 대한 사항은 특정 데이터베이스가 아니라 Mysql에 존재하는 모든 데

     이터베이스에 권한이 주어짐.

-> host와 user, password 항목을 제외한 나머지 권한들은 모두 'N"로 설정

->특정한 사용자에 대한 특정한 데이터베이스에 대한 권한을 주려면 위에서 보았던 db라는 테이블

    에서 그 권한설정을 하는것이 안전함

 

13 .Mysql root 암호 변경하기

-> 방법 1:  mysqladmin 이라는 명령어 사용

# ./mysqladmin -u root -p password 12345

 

->방법 2: mysql의 set 이란 명령어로 root 암호 변경

# ./mysql -u root -p mysql

mysql> set password for root=passwd('12345678');

 

-> 방법 3: mysql 데이터베이스로 접속하여 update문을 사용하는 방법

# ./mysql -u root -p mysql

mysql> update user set password=password('12345' where user = 'root';

mysql> flush privileges;

 

->flush-privileges: 권한 테이블을 재시작한다. 권한 설정을 변경했을경우 반드시 재시작

mysql> flush privileges;

 

14. root 패스워드를 잊어버렸을 때는 어떻게?

->단계 1: 실행중인 mysql 종료

# ps -ef | grep mysqld

# killall mysqld

 

->단계 2: grant-table 미사용모드로 mysql시작 및 root로 접속

# .safe_mysqld --skip-grant-tables&

 

-> 단계 3: update문으로 root사용자 패스워드 변경

mysql> update user set password=password('12345') where user = 'root';

mysql> flush privileges;

 

-> 단계 4: 실행중인 mysql 다시 종료

# ps -ef | grep mysqld

# killall mysqld

 

-> 단계 5: 일반모드로 Mysql 재시작

# ./safe_mysqld&

# ps -ef | grep mysql

 

15. 특정 테이블의 구조보기(show columns from 테이블)

-> 특정테이블의 필드명 type, 설정값들을 보기 위한 것

-> 특정한 테이블의 칼럼(필드)구조를 보려면 "show columns from 테이블명"

-> 좀더 편리하여 많이 사용되는 명령문 " desc 테이블명"으로 확인

mysql> show columns form user;

 

->특정 테이블의 인덱스 보기

mysql> show index from user;

 

-> 데이타베이스의 설정상태 보기(show status)

mysql> show status;

# ./mysqladmin -u root -p status

 

-> 데이터베이스의 설정환경변수와 값보기(show variables)

mysql> show variables;

# ./mysqladmin -u root -p variables

 

-> 현재 데이터베이스에 연결된 프로세스들 보기(show processlist)

# ./mysqladmin -u root -p processlist

[출저] http://cafe.naver.com/h4c

[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
17년 전 조회 1,648
17년 전 조회 2,974
17년 전 조회 3,376
17년 전 조회 1,468
17년 전 조회 1,566
17년 전 조회 1,374
17년 전 조회 2,128
17년 전 조회 3,048
17년 전 조회 1,393
17년 전 조회 1,383
17년 전 조회 1,382
17년 전 조회 1,247
17년 전 조회 1,438
17년 전 조회 1,494
17년 전 조회 1,307
17년 전 조회 2,587
17년 전 조회 1,338
17년 전 조회 1,600
17년 전 조회 1,478
17년 전 조회 1,786
17년 전 조회 1,804
17년 전 조회 1,821
17년 전 조회 1,876
17년 전 조회 1,536
17년 전 조회 1,615
17년 전 조회 1,531
17년 전 조회 1,869
17년 전 조회 1,774
17년 전 조회 1,576
17년 전 조회 1,755
17년 전 조회 1,417
17년 전 조회 1,651
17년 전 조회 1,970
17년 전 조회 2,803
17년 전 조회 2,011
17년 전 조회 1,415
17년 전 조회 1,971
17년 전 조회 2,430
17년 전 조회 1,586
17년 전 조회 2,339
17년 전 조회 1,772
17년 전 조회 1,477
17년 전 조회 1,334
17년 전 조회 2,005
17년 전 조회 2,905
17년 전 조회 2,526
17년 전 조회 1,540
17년 전 조회 2,894
17년 전 조회 2,425
17년 전 조회 2,776
17년 전 조회 2,788
17년 전 조회 2,561
17년 전 조회 2,381
17년 전 조회 1,735
17년 전 조회 2,473
17년 전 조회 3,966
17년 전 조회 1,844
17년 전 조회 3,931
17년 전 조회 1,857
17년 전 조회 1,750
17년 전 조회 2,090
17년 전 조회 2,488
17년 전 조회 1,443
17년 전 조회 1,790
17년 전 조회 2,356
17년 전 조회 1,828
17년 전 조회 1,770
17년 전 조회 1,559
17년 전 조회 1,407
17년 전 조회 1,359
17년 전 조회 1,170
17년 전 조회 1,164
17년 전 조회 1,191
17년 전 조회 1,197
17년 전 조회 1,614
17년 전 조회 1,693
17년 전 조회 1,835
17년 전 조회 2,969
17년 전 조회 2,112
17년 전 조회 1,780
17년 전 조회 2,116
17년 전 조회 1,833
17년 전 조회 3,366
17년 전 조회 1,549
17년 전 조회 1,673
17년 전 조회 1,386
17년 전 조회 2,199
17년 전 조회 3,146
17년 전 조회 2,285
17년 전 조회 1,743
17년 전 조회 2,996
17년 전 조회 4,447
17년 전 조회 1,759
17년 전 조회 3,255
17년 전 조회 1,581
17년 전 조회 3,498
17년 전 조회 5,853
17년 전 조회 1,434
17년 전 조회 2,170
17년 전 조회 1,801