Mysql 자료실
Vote Reply Modify Delete Forward Prev Next List

  작성자   : 조성환 [ ladmin ] 추천: 2207, 조회: 6883, 줄수: 395, 분류: Etc.
MySQL 서버 기초 (강추)

출처 : http://www.tunelinux.pe.kr/bbs/read.php?table=study&no=35




★★★★★★★★★★★★★★★★★★★★★★★★★★
    윈도우용 SQL 이해 및 MySQL 서버 기초
★★★★★★★★★★★★★★★★★★★★★★★★★★



/*
  조금이라도 MySQL 공부에 도움이 되었으면 하는 마음에 ^.^

  허접 번역 작성 & 추가 : 투덜즈   suhoi at naver.com
  2000 년 6월 05일    - 투덜이 PHP 강좌
  http://myhome.naver.com/suhoi
*/

MySQL 서버는 게시판 이나 방명록 등의 데이터 베이스 저장 장치로 사용된다. MySQL
서버의 명령은 모든 플랫폼에 거의 90% 이상 동일한 명령이 실행된다.




1.데이터베이스를 만들고 구조 살펴보기

시작버튼의 프로그램의 MS-DOS 창을 열어라.
열면 보통의 경우 디렉토리는 윈도우 아래 이다.
c:\windows> cd ..
c:\>cd mysql
c:\mysql>



2.MySQL 서버 구조 살펴보기 ★★★

MySQL < Database < Table < Record < Datatype

MySQL 서버안에 여러 데이터 베이스가 있고 , 디비안에 테이블 들이 있으며,
테이블안에는 레코드(가로줄)  가 있고 , 그안에는 데이터형(정수형,문자형,날짜형)
으로 구성된다.

테이블을 만들기 위해서는 반드시 디비를 선택하거나 , 디비를 만들어야 한다.

데이터 값이 저장 되는 것은 테이블 이며 , 테이블을 생성하기 위해서는 반드시 먼저
디비를 만들어야 한다.


2.MySQL 에 새로운 데이터베이스 만들기

새로운 데이터 베이스는 c:\mysql\data 아래 저장 된다.

C:\mysql>bin\mysqladmin create db01
Database "db01" created.  
db01 이란 데이터베이스를 만든것이다.

데이터베이스를 만들경우는 반드시 root 이어야 하며,
mysqladmin create 디비명     으로 만든다.

C:\mysql>



3.MySQL 를 시작하라

C:\mysql>bin\mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22 to server version: 3.21.29a-gamma-debug

Type 'help' for help.

mysql>


3.MySQL 서버의 기본 데이터 베이스 보기
mysql> show databases;
+-------------+
| Database    |
+-------------+
| mysql       |
| test        |
| db01        |
+-------------+
3 rows in set (0.06 sec)

MySQL 서버를 인스톨하면 기본적으로 2개의 디비가 있다. mysql 디비와 test 디비 가
있다.
mysql 은 MySQL 도 서버 이기때문에 서버안의 일반계정 과 디비와의 관계를 나타내는
왕초 디비 이고,
test 는 말그대로 test 를 하라는 디비 이다.

★★ mysql 왕초 디비에 관해서는 다음편에 자세히 설명 하겠다.
mysql 디비안에서 계정을 부여하며, 디비와 계정 과의 관계를 만들어 주어야
하는것이다. 각각의 디비는 소유주가 따로 있다는것으 명심하길 바란다.


4.사용할 데이터베이스 를 선택하라. db01 를 만들었으니 db01 를 선택한다.
mysql> use db01
Database changed


5.디비 안의 테이블을 만들어라. tb01 이란 테이블을 만든것이다.
mysql> create table tb01 (number integer,name char(10));
Query OK, 0 rows affected (0.00 sec)

테이블을 만드는 명령은 다음과 같다.
create table 테이블명 ( 칼럼1 데이터형,칼럼2 데이터형);
number integer 은 number 은 정수형 데이터 란 뜻이다.
name char(10) 은 name 는 문자열(char) 이며 자리수는 10 자리 안으로 제한한다.

한글은 1문자에 2바이트 므로 , char(10) 이면 5자리 이름밖에 들어가지 못한다.
실전에서 테이블을 구성시는 char(20) 정도로 하는 것이 좋다.


SQL 문장의 마지막은 ; 를 붙여서 명령을 실행하라고 시킨다.
; 를 안넣어도 실행하는 명령 도 있기는 하다. 예> use 명령, quit 명령


6. db01 디비 안에 어떤 테이블이 존재하는지 보자.

mysql> show tables;
+----------------------+
| Tables in database01 |
+----------------------+
| tb01                 |
+----------------------+

show tables; 는 디비안의 테이블 리스트를 보여준다.



7.테이블 안의 항목을 보자.

mysql> show columns from tb01;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| number  | int(11)  | YES  |     | NULL    |       |
| name    | char(10) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+

NULL 값은 값이 없다 라는 의미이며 , 지정해 주지 않는한 null 값으로 들어간다.
값이 없어도 된다 라는 의미이다.

아래 명령도 같은 작동을 한다.
mysql> desc tb01;



8 . tb01 테이블 안에 데이터 를 넣어라.
mysql> insert into tb01 (number,name) values (1,'suhoi');
Query OK, 1 row affected (0.00 sec)

테이블 안에 데이터를 저장 하기 위해서는 insert 명령을 사용한다.
insert into 테이블명 (칼럼1,칼럼2) values (칼럼1의값,'칼럼2의값');
number 은 1 , name 는 suhoi 란 값을 tb01 테이블에 넣은것이다.

숫자는 ' ' 를 사용하지 않고 , 문자열은 반드시 ' ' 안에 넣어야 한다.




9. tb01 테이블 안에 모든 레코드를 보자

mysql> select * from tb01;
+---------+---------+
| number  | name    |
+---------+---------+
|       1 | suhoi   |
+---------+---------+





★필드 추가하기


10.테이블 안에 필드 추가하기

tb01 테이블 안에 address 필드 를 추가해보자.

mysql> alter table tb01 add column address char(20);
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

alter table 테이블명 add column 필드명 데이터형;


11. 1번에 두개의 필드를 추가하자
mysql> alter table tb01 add column wdate date,add column wtime time;
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

wdate date 란것은 wdate 는 날짜 데이터 형이고
wtime time 란것은 wtime 는 시간 데이터 형이라는 뜻이다.


잘 추가 되었는지 확인해보자
mysql> select * from tb01;
+---------+---------+---------+---------+---------+
| number  | name    | address | wdate   | wtime   |
+---------+---------+---------+---------+---------+
|       1 | first   | NULL    | NULL    | NULL    |
+---------+---------+---------+---------+---------+





12. 다중입력

MySQL 은 한 라인에 모든 것을 넣을 수도 있지만 여러줄에 넣을 수도 있다.
여러줄에 넣을 려면 ; 를 마지막 줄에만 넣어야 한다. 예제를 바로 보면서 이해하라.
아래 두개의 다른폼은 같은 동작을 취한다.


한 라인 입력
mysql> create table table33 (number integer,name char(30));

다중 입력 1
mysql> create table table33
   -> (number
   -> integer,
   -> name
   -> char(30));

다중입력 2
mysql> create table table33
   -> (number integer,
   -> name char(30));

다중입력 1과 다중입력 2는 같은 동작을 취하며 ,아래는 잘못 만든 예 이다.
mysql> create table table33
   -> (field01 inte
   -> ger,
   -> field02
   -> char(30));

★ 쿼리도중에 명령이 틀렸을 경우 는 \c 를 하면 된다.
mysql> create table table33
   -> (number inte,
   -> \c
mysql>

☆ 관련 도움말을 볼려면 help 를 한다.

mysql> help
help    (\h)    Display this text
?       (\h)    Synonym for `help'
clear   (\c)    Clear command
connect (\r)    Reconnect to the server. Optional arguments are db and host
edit    (\e)    Edit command with $EDITOR
exit    (\)     Exit mysql. Same as quit
go      (\g)    Send command to mysql server
print   (\p)    print current command
quit    (\q)    Quit mysql
rehash  (\#)    Rebuild completion hash
status  (\s)    Get status information from the server
use     (\u)    Use another database. Takes database name as argument

Connection id: 49  (Can be used with mysqladmin kill)

mysql>



13. 레코드 추가하기
mysql> insert into tb01 (number,name,address,wdate,wtime) values
   -> (2,'second','another','1999-10-23','10:30:00');
Query OK, 1 row affected (0.00 sec)

문자형은 (char) 반드시 ' ' 안에 넣어야 한다.

표준 날짜형은 "yyyy-mm-dd" 이다.
표준 시간형은 "hh:mm:ss" 이다.
☆ 날짜형과 시간형도 ' ' 안에 넣어야 한다.
' ' 안에 넣지 않을 경우 yyyymmdd 이런식으로 붙여서 입력 해야 한다. hhmmss 도
마찬가지 이다.




14. 다른 데이터형 추가하기
화살표키 중 ↑를 누르면 전에 버퍼에 저장되어 있던 명령들이 나온다.
그것에서 데이터만 바꾸고 명령을 하면 다른 데이터가 추가 된다.
★ 98 은 되지 않으며, NT 와 2000 만 된다. 리눅스 도 당스 된다.


mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number  | name      | address          | wdate      | wtime    |
+---------+-----------+------------------+------------+----------+
|       1 | suhoi     | NULL             | NULL       | NULL     |
|       2 | suhoi2    | address2         | 1999-10-23 | 10:30:00 |
+---------+-----------+------------------+------------+----------+



이것으로 끝인가?  그렇다, 우리는 이제 다했다 ^^



15. 입력된 데이터 업데이트 하기

하나의 필드 값 수정하기

여기서도 역시 ' ' 를 붙여주어야 한다. 어느곳에? 문자열 에는 반드시 ' ' 를 넣어야
한다.

mysql> update tb01 set address='new add' where number=1;
Query OK, 1 row affected (0.00 sec)

update 테이블명 set 필드명='new add' where 조건
number=1 인 레코드의 address 를 new add 로 수정 하는 명령이다.
number=1 은 조건 이며 가로줄을 선택한다.


16. 한번에 여러 필드 값 수정하기

mysql> update tb01 set wdate=19991022, wtime=062218 where number=1;
Query OK, 1 row affected (0.00 sec)



아래 처럼 보이는가?

mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number  | name      | address          | wdate      | wtime    |
+---------+-----------+------------------+------------+----------+
|       1 | suhoi     | new add          | 1999-10-22 | 06:22:18 |
|       2 | suhoi2    | address2         | 1999-10-23 | 10:30:00 |
+---------+-----------+------------------+------------+----------+


한번 으로 여러개의 필드값 수정하기

mysql> update tb01 set wtime=152901 where wdate>19990101;
Query OK, 3 rows affected (0.00 sec)

날짜가 19990101 이후 인것의 wtime 는 모두 수정하는 것이다.



mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number  | name      | address          | wdate      | wtime    |
+---------+-----------+------------------+------------+----------+
|       1 | suhoi     | new add          | 1999-10-22 | 15:29:01 |
|       2 | suhoi2    | address2         | 1999-10-23 | 15:29:01 |
+---------+-----------+------------------+------------+----------+




17. 레코드 지우기



mysql> delete from tb01 where number=2;
Query OK, 1 row affected (0.01 sec)

delete from 테이블명 where 조건
number=2 인것의 레코드를 지우는 명령이다.레코드는 가로줄이다.


mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number  | name      | address          | wdate      | wtime    |
+---------+-----------+------------------+------------+----------+
|       1 | suhoi     | new add          | 1999-10-22 | 15:29:01 |
+---------+-----------+------------------+------------+----------+



18. 테이블 지우기
mysql> drop table tb01;
Query OK, 0 row affected (0.01 sec)

mysql> show tables;


19. 종료하기
mysql> quit
Bye


반드시 알아야 할 내용 이다. 3-4 번 반복하길 바랍니다..........



이전: database character_set 확인하기
다음: update 명령으로 제로보드5 admin 계정 패스워드 변경 [초기화] 하기 (강추)
2006/11/02(00:08) from 203.234.123.122
CrazyWWWBoard 2000

Vote Reply Modify Delete Forward Prev Next List
(c) Nobreak Technologies, Inc.