블로그 이미지

내 인생의 가장 젊은 날

내 인생에 있어서 가장 젊은 날, 젊기에 고민이 즐겁다. by 하늘치


'db'에 해당되는 글 3건

  1. 2008.01.17 MySQL : php와 DB의 연결 2(1)
  2. 2008.01.10 MySQL : select, update, delete (DML)
  3. 2008.01.09 MySQL : 시작, DDL

MySQL : php와 DB의 연결 2


1. php_exam 이라는 DB에 member 라는 테이블 생성
==================================================================

mysql> show databases;
+----------+
| Database |
+----------+
| company  |
| mysql    |
| onepiece |
| php_exam |
+----------+
4 rows in set (0.00 sec)


mysql> use php_exam;
Database changed


mysql> show tables;
+--------------------+
| Tables_in_php_exam |
+--------------------+
| php_tbl            |
+--------------------+
1 row in set (0.00 sec)


mysql> create table member(name varchar(10), phone varchar(15), sex varchar(4), address varchar(50), age varchar(4));
Query OK, 0 rows affected (0.08 sec)


mysql> show tables;
+--------------------+
| Tables_in_php_exam |
+--------------------+
| member             |
| php_tbl            |
+--------------------+
2 rows in set (0.00 sec)





2. 생성된 테이블에 내용을 입력하기 위한 php 페이지 작성.
==================================================================

1) 회원등록과 회원검색을 위한 페이지를 만든다.
-> m_main.php

2) 웹상에서 입력할 수 있게 하는 form 양식의 페이지를 만들고,
-> m_form.php

3) 먼저 MySQL에 접속, 그리고 원하는 DB에 접속할 수 있게 하는 파일을 다른 어느 페이지에서든 include 할 수 있게끔 따로 만들어 놓은 후, 
-> dbinfo.inc

4) 폼에서 입력한 내용을 데이타베이스(DB)에 저장(insert)시키는 페이지를 만든다. 여기에 dbinfo.inc를 include 시킨다.
-> m_insert.php


1)m_main.php
<HTML>
<HEAD></HEAD>

<BODY>
<h3>간단한 회원 등록 및 검색 서비스</h3>
1. <a href="m_regist.php">회원 등록</a><br>
2. <a href="m_search.php">회원 검색</a><br>
</BODY>

</HTML>


2)m_form.php
<form name=f1 method=post action=m_insert.php>

<table>
    <tr>
        <td>회원이름 : </td>
        <td><input type=text name=name></td>
    </tr>

    <tr>
        <td>전화번호 : </td>
        <td><input type=text name=phone></td>
    </tr>

    <tr>
        <td>남녀성별 : </td>
        <td><input type=radio name=sex value=male>남자
              <input type=radio name=sex value=female>여자</td>
    </tr>

    <tr>
        <td>주소 : </td>
        <td><select name=address1 size=1>
                <option value="서울">서울</option>
                <option value="경기">경기</option>
                <option value="강원">강원</option>
                <option value="충북">충북</option>
                <option value="충남">충남</option>
                <option value="경북">경북</option>
                <option value="경남">경남</option>
                <option value="전남">전남</option>
                <option value="전북">전북</option>
                <option value="제주">제주</option>
            </select>
            <input type=text size=50 name=address2></td>
    </tr>

    <tr>
        <td>나이 : </td>
        <td><input type=text name=age></td>
    </tr>

    <tr>
        <td colspan=2>
            <input type=submit value=입력>
            <input type=reset value=취소>
        </td>
    </tr>

</table>
</form>


3)dbinfo.inc
<?php

$host="localhost";
$user="root";
$password="apmsetup";

$conn=mysql_connect($host, $user, $password);        //mysql 연결 설정
mysql_select_db("php_exam", $conn);                        //DB에 접속


/*
연결 확인
if($conn) echo "db연결";
else echo "db연결 실패";
*/

?>


4)m_insert.php
<?php

include 'dbinfo.inc';            //설정파일 불러오기

if($sex==male)                   //성별 결정
    $sex="남자";
else if($sex==female)
    $sex="여자";

$address=$address1. " " .$address2;    //주소 완성


/* insert 구문 */
$sql="insert into member values('$name', '$phone', '$sex', '$address', '$age')";
mysql_query($sql, $conn);        //sql 질의 수행.

mysql_close($conn);                //db 연결 종료. ram 에서 삭제.

echo "등록 완료. 축하드립니다. <br>";
echo ("<a href='m_main.php'>초기화면으로</a>");

?>


*** 지금까지의 결과... ***
사용자 삽입 이미지







사용자 삽입 이미지





5)m_list.php

<?php

include 'dbinfo.inc';  //db연결부분.

$sql="select * from member order by name"; //선택 질의
$sql_result=mysql_query($sql, $conn);  //질의 수행.

$count=mysql_num_rows($sql_result);  //행의 개수


//레코드 출력부분.
echo ("<table border=1 width=500>
 <tr>
  <td>회원명</td>
  <td>전화번호</td>
  <td>성별</td>
  <td>주소</td>
  <td>나이</td>
     </tr>");  
 


for($i=0; $i<$count; $i++)
{


/*  //첫번째 방법

 $name=mysql_result($sql_result, $i, name);
 $phone=mysql_result($sql_result, $i, phone);
 $sex=mysql_result($sql_result, $i, sex);
 $address=mysql_result($sql_result, $i, address);
 $age=mysql_result($sql_result, $i, age);

echo ("<tr>
    <td>$name</td>
    <td>$phone</td>
    <td>$sex</td>
    <td>$address</td>
    <td>$age</td>
 </tr>");  // 한 레코드씩 찍어주는 부분.

*/



/*  //두번째 방법 */

$result_array=mysql_fetch_array($sql_result);
echo("<tr>
   <td>$result_array[name]</td>
   <td>$result_array[phone]</td>
   <td>$result_array[sex]</td>
   <td>$result_array[address]</td>
   <td>$result_array[age]</td>
  </tr>");  


}

echo ("</table>");
echo ("<br><a href='m_main.php'>초기화면으로</a>");


?>



*** 지금까지의 결과보기. ***
* 웹에서 등록해보기



* 등록한 후, 입력.
사용자 삽입 이미지


* 입력한 내용을 확인할 수 있다.
사용자 삽입 이미지


* 입력한 내용을 MySQL에서도 확인.


Comment 1 Trackback 0
  1. Favicon of https://blog.openuri.net 하늘치 2008.01.19 11:15 신고 address edit & delete reply

    윽; 태안은 충남인데;;

Top

MySQL : select, update, delete (DML)

###### select 문 계속.. #######

주의!!!
where 문에서 둘 이상의 조건(필드)을 줄 때,
앞쪽에 primary 값의 조건을 써줘야한다!



1. 소나타이면서 배기량이 2000cc인 차량을 판매한 사원의 사번과 판매량을 검색하시오.

select sale.sno, sale.qty from sale, car
where car.cno=sale.cno and car.cname="소나타" and car.cc=2000;

or

select s.sno, s.qty from sale s, car  c
where c.cno=s.cno and c.cname="소나타" and c.cc=2000;

----------------------------------------------------------------------------------
mysql> select sale.sno, sale.qty from sale, car
    -> where car.cno=sale.cno and car.cname="소나타" and car.cc=2000;
+------+------+
| sno  | qty  |
+------+------+
| s123 |   12 |
| s202 |   14 |
| s134 |   21 |
| s241 |   30 |
+------+------+
4 rows in set (0.00 sec)

mysql>



2. 소나타 차량을 판매한 사원의 이름.

select salesman.sname from car, salesman, sale
where car.cno=sale.cno and salesman.sno=sale.sno and car.cname="소나타";

----------------------------------------------------------------------------------
mysql> select salesman.sname from car, salesman, sale
    -> where car.cno=sale.cno and salesman.sno=sale.sno and car.cname="소나타";
+--------+
| sname  |
+--------+
| 기필호 |
| 기필호 |
| 김두환 |
| 김두환 |
| 박성식 |
| 임흥석 |
+--------+
6 rows in set (0.00 sec)

mysql>



3. 차량번호 c1을 판매한 영업사원의 이름을 검색

select salesman.sname from salesman, sale
where salesman.sno=sale.sno and sale.cno='c1';

또는

select s.sname from salesman s, sale s1
where s.sno=s1.sno and s1.cno='c1';

----------------------------------------------------------------------------------
mysql> select s.sname from salesman s, sale s1
    -> where s.sno=s1.sno and s1.cno='c1';
+--------+
| sname  |
+--------+
| 기필호 |
| 김두환 |
+--------+
2 rows in set (0.02 sec)

mysql>



4. 차량번호 c5를 판매한 영업사원의 이름, 실적, 지점명을 검색하시오

select s.sname, s.point, s.branch from salesman s, sale s1
where s.sno=s1.sno and s1.cno='c5';

----------------------------------------------------------------------------------
mysql> select s.sname, s.point, s.branch from salesman s, sale s1
    -> where s.sno=s1.sno and s1.cno='c5';
+--------+-------+--------+
| sname  | point | branch |
+--------+-------+--------+
| 기필호 |   200 | 인천   |
| 임흥석 |   300 | 부산   |
+--------+-------+--------+
2 rows in set (0.00 sec)

mysql>



* 내맘대로 만든 문제... ㅋ
20대 이상 판매한 차량의 차이름과 출고지, 판매사원과 판매량을 검색하라.

select c.cname, c.outlet, s.sname, s1.qty from salesman s, car c, sale s1
where c.cno=s1.cno and s.sno=s1.sno and s1.qty>=20;

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

mysql> select c.cname, c.outlet, s.sname, s1.qty from salesman s, car c, sale s1
    -> where c.cno=s1.cno and s.sno=s1.sno and s1.qty>=20;
+--------+--------+--------+------+
| cname  | outlet | sname  | qty  |
+--------+--------+--------+------+
| 레조   | 인천   | 기필호 |   42 |
| SM5    | 부산   | 기필호 |   20 |
| 소나타 | 서울   | 김두환 |   34 |
| 소나타 | 서울   | 박성식 |   21 |
| 소나타 | 서울   | 임흥석 |   30 |
| 레조   | 인천   | 임흥석 |   31 |
+--------+--------+--------+------+
6 rows in set (0.00 sec)

mysql>




5. 차량이 소나타인 사번과 출고지를 검색하라.

select s.sno, c.outlet from sale s, car c
where c.cno=s.cno and c.cname='소나타';

----------------------------------------------------------------------------------
mysql> select s.sno, c.outlet from sale s, car c
    -> where c.cno=s.cno and c.cname='소나타';
+------+--------+
| sno  | outlet |
+------+--------+
| s123 | 서울   |
| s123 | 서울   |
| s202 | 서울   |
| s202 | 서울   |
| s134 | 서울   |
| s241 | 서울   |
+------+--------+
6 rows in set (0.00 sec)

mysql>












############################## Update ##############################

update 테이블명 set 필드명=필드값(갱신하고자 하는 값) where 조건



1. 사번이 s123인 사원의 실적을 100점 증가시켜라

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.03 sec)

mysql>

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> update salesman set point=point+100 where sno='s123';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql>




2.출고지가 인천인 차량에 대해서 배기량을 200 증가시켜라

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1500 |   1100 | 인천   |
| c4  | 레조   | 2000 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql>


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> update car set cc=cc+200 where outlet='인천';
Query OK, 2 rows affected (0.06 sec)
Rows matched: 2  Changed: 2  Warnings: 0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1700 |   1100 | 인천   |
| c4  | 레조   | 2200 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql>




3. 모든 사원의 실적을 100점 감소시켜라

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.02 sec)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> update salesman set point=point-100;
Query OK, 6 rows affected (0.05 sec)
Rows matched: 8  Changed: 6  Warnings: 0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 박성식 | 2002-03-01 |     0 | 서울   |
| s202 | 김두환 | 2000-05-03 |   300 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   100 | 인천   |
| s357 | 길동이 | 2000-10-12 |   100 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql>




4. 차량명이 소나타이면서 배기량이 2000cc인 차량의 출고지를 당산으로 바꾸시오

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1700 |   1100 | 인천   |
| c4  | 레조   | 2200 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql>



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
update car set outlet='당산' where cname='소나타' and cc=2000;

mysql> update car set outlet='당산' where cname='소나타' and cc=2000;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 당산   |
| c3  | 레조   | 1700 |   1100 | 인천   |
| c4  | 레조   | 2200 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql>




5. 출고지가 인천인 차량의 이름을 SM7으로 바꾸고 차중량을 200 증가시키시오
update car set cname='SM7', weight=weight+200 where outlet='인천';

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 당산   |
| c3  | 레조   | 1700 |   1100 | 인천   |
| c4  | 레조   | 2200 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)



mysql> update car set cname='SM7', weight=weight+200 where outlet='인천';
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0



mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 당산   |
| c3  | SM7    | 1700 |   1300 | 인천   |
| c4  | SM7    | 2200 |   1400 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql>



6. 입사일이 2004년이면서 실적이 없는 사원의 이름을 황길동으로 변경하시오.
update salesman set sname='황길동' where year(hire)=2004 and point is null;

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 박성식 | 2002-03-01 |     0 | 서울   |
| s202 | 김두환 | 2000-05-03 |   300 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   100 | 인천   |
| s357 | 길동이 | 2000-10-12 |   100 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)



mysql> update salesman set sname='황길동'
    -> where year(hire)=2004 and point is null;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0



mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 박성식 | 2002-03-01 |     0 | 서울   |
| s202 | 김두환 | 2000-05-03 |   300 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   100 | 인천   |
| s357 | 길동이 | 2000-10-12 |   100 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql>



7. 입사월이 3월이면서 지점명이 서울인 사원의 사원명을 당산동으로 변경하시오.
update salesman set sname='당산동' where month(hire)=03 and branch='서울';

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 박성식 | 2002-03-01 |     0 | 서울   |
| s202 | 김두환 | 2000-05-03 |   300 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   100 | 인천   |
| s357 | 길동이 | 2000-10-12 |   100 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql> update salesman set sname='당산동'
    -> where month(hire)=03 and branch='서울';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s134 | 당산동 | 2002-03-01 |     0 | 서울   |
| s202 | 김두환 | 2000-05-03 |   300 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   100 | 인천   |
| s357 | 길동이 | 2000-10-12 |   100 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql>



8. 입사일이 1일이면서 실적점수가 200점 이상인 사원의 사원명을 당산역으로 변경.
update salesman set sname='당산역' where day(hire)=01 and point>=200;

+++++++++++++++++++++++++++++++++++++++++++++++++
mysql> update salesman set point=point+100;
Query OK, 6 rows affected (0.05 sec)
Rows matched: 8  Changed: 6  Warnings: 0

-> 앞에서 포인트를 100점씩 빼준 상태라,
다시 100점씩 더해줌.
+++++++++++++++++++++++++++++++++++++++++++++++++

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s134 | 당산동 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql> update salesman set sname='당산역'
    -> where day(hire)=01 and point>=200;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s134 | 당산동 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 당산역 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)















################## delete #########################

delete from 테이블명 where 조건



1. 사번이 's134'인 사원의 레코드 삭제
delete from salesman where sno='s134';

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s134 | 당산동 | 2002-03-01 |   100 | 서울   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 당산역 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql> delete from salesman where sno='s134';
Query OK, 1 row affected (0.03 sec)

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 당산역 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)

mysql>




2. 출고지가 '당산'인 레코드를 삭제하시오.
delete from car where outlet='당산';

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 당산   |
| c3  | SM7    | 1700 |   1300 | 인천   |
| c4  | SM7    | 2200 |   1400 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql> delete from car where outlet='당산';
Query OK, 1 row affected (0.03 sec)

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c3  | SM7    | 1700 |   1300 | 인천   |
| c4  | SM7    | 2200 |   1400 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
6 rows in set (0.00 sec)

mysql>



3. 입사일이 1일인 레코드 모두 삭제.
delete from salesman where day(hire)=01;

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 당산역 | 2004-03-01 |   200 | 인천   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s444 | 황길동 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)

mysql> delete from salesman where day(hire)=01;
Query OK, 2 rows affected (0.03 sec)

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   300 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s357 | 길동이 | 2000-10-12 |   200 | 인천   |
| s555 | 홍길동 | 2008-01-08 |  NULL | 인천   |
+------+--------+------------+-------+--------+
5 rows in set (0.00 sec)

mysql>




4. 차량명이 SM7이거나 배기량이 1800 이상인 레코드 삭제
delete from car where cname='SM7' or cc>=1800;

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c3  | SM7    | 1700 |   1300 | 인천   |
| c4  | SM7    | 2200 |   1400 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
6 rows in set (0.00 sec)


mysql> delete from car where cname='SM7' or cc>=1800;
Query OK, 6 rows affected (0.03 sec)

mysql> select * from car;
Empty set (0.02 sec)

mysql>











######### root password 바꾸기 ############

use mysql
update user set password=password(401) where user='root';
// update user set password=password(새로운 비밀번호) where user='root';
flush privileges;



mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| company            |
| mysql              |
| sqltest            |
| test               |
+--------------------+
5 rows in set (0.00 sec)


mysql> use mysql;
Database changed


mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
17 rows in set (0.01 sec)



mysql> update user set password=password(401) where user='root';
Query OK, 2 rows affected (0.11 sec)
Rows matched: 2  Changed: 2  Warnings: 0



mysql> flush privileges;
Query OK, 0 rows affected (0.24 sec)



mysql> quit                        // 새로운 비번으로 접속해보기 위해서 quit !
Bye

C:\Documents and Settings\Administrator>mysql -u root -p
Enter password: ***        // 새로운 비밀번호(401)임을 자리수로 미루어 알 수 있다.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
Comment 0 Trackback 0
Top

MySQL : 시작, DDL

음.. 이걸 뭐라고 하더라;;
암튼, 일반적으로 아래와 같다,고 한다.

PHP + MySQL + Apache Server + Linux
ASP + MS_SQL + WINDOWS 서버계열(IIS)
JSP + ORAQLE + 톰캣 + 여러운영체제..

본인은 첫 번째를 배우는 중이고..
그러므로 이것은 그에 대한 정리이다..


MySQL의 대표적인 명령어.
DDL(Data Define Language)
    - create, drop, alter
DML(Data Manipulation Language)
    - select, insert, delete, update
DCL(Data Control Languge)
    - grant, revoke
DBMS(Data Base Management System)
    - MySQL, 오라클, MS-SQL   (<-> 엑세스)
DBA(DB관리자)


MySQL의 시작
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>mysql -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


아, 그런데 SQL?
Structual Query Language.


일단 MySQL의 번전과 현재 날짜를 확인해보았다. (그렇게 배웠으니까 ^^;)
mysql> select version(), current_date;
+---------------------+--------------+
| version()                  | current_date  |
+---------------------+--------------+
| 5.0.45-community-nt   | 2008-01-09    |
+---------------------+--------------+
1 row in set (0.06 sec)

mysql>


데이타베이스 만들기, 확인
mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database               |
+--------------------+
| information_schema |
| company                |
| mysql                    |
| sqltest                   |
| test                      |
+--------------------+
5 rows in set (0.00 sec)

mysql>


데이타베이스 지우기, 확인
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database               |
+--------------------+
| information_schema |
| company                |
| mysql                    |
| sqltest                   |
+--------------------+
4 rows in set (0.00 sec)

mysql>


데이타베이스 사용하기
/* 다시 test라는 데이타베이스를 만든다... */

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

/* use 라는 명령어로 해당 데이타베이스를 활성화.. (맞나? ㅋ) */
mysql> use test;
Database changed
mysql>
- 이제 test라는 데이타 베이스를 사용해서 작업을 할 수 있다.


해당 데이타베이스에 테이블 만들기 및 확인하기.
mysql> create table salesman(
     -> sno char(4) primary key,
     -> sname char(10) not null,
     -> hire date,
     -> point smallint,
     -> branch char(10)
     -> );
Query OK, 0 rows affected (0.52 sec)


mysql> desc salesman;
+--------+-------------+------+-----+---------+-------+
| Field    | Type            | Null   | Key | Default   | Extra   |
+--------+-------------+------+-----+---------+-------+
| sno      | char(4)        | NO   | PRI  |              |          |
| sname  | char(10)       | NO   |       |              |          |
| hire      | date            | YES  |       | NULL      |          |
| point    | smallint(6)    | YES  |       | NULL      |          |
| branch | char(10)       | YES  |       | NULL      |          |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.05 sec)


mysql> show tables;
+----------------+
| Tables_in_test   |
+----------------+
| salesman       |
+----------------+
1 row in set (0.00 sec)

mysql>




테이블명 수정하기
mysql> alter table salesman rename employee;
Query OK, 0 rows affected (0.16 sec)

mysql> show tables;
+----------------+
| Tables_in_test   |
+----------------+
| employee        |
+----------------+
1 row in set (0.00 sec)


mysql> alter table employee rename salesman;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+----------------+
| Tables_in_test   |
+----------------+
| salesman       |
+----------------+
1 row in set (0.00 sec)

mysql>


일단, 오늘은 여기까지... See you~
Comment 0 Trackback 0
Top

prev 1 next