블로그 이미지

내 인생의 가장 젊은 날

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


'컴퓨터/APM'에 해당되는 글 13건

  1. 2008.01.23 홈페이지 만들어가기 자료.(2)
  2. 2008.01.22 PHP & MySQL
  3. 2008.01.18 MySQL : PHP로 만든 폼에서 입력 및 출력, 확인. another exercise..
  4. 2008.01.17 MySQL : php와 DB의 연결 2(1)
  5. 2008.01.16 MySQL : php와 DB의 연결
  6. 2008.01.15 MySQL : select, update, alter, delete, drop...
  7. 2008.01.14 MySQL : 데이타베이스 실습
  8. 2008.01.11 MySQL : 중간테스트
  9. 2008.01.10 MySQL : select, update, delete (DML)
  10. 2008.01.10 PHP : define, confirm,
  11. 2008.01.09 MySQL : 시작, DDL
  12. 2008.01.09 PHP : do while 연습
  13. 2008.01.08 PHP : JavaScript - prompt() 함수 연습(2)

홈페이지 만들어가기 자료.

1. 홈페이지 만들기 과정(진행중..)
- 로그인, 아이디/비밀번호 찾기, 게시판



2. 세션 설명


Comment 2 Trackback 0
  1. Favicon of http://ggoi.tistory.com 꼬이 2008.01.24 11:14 신고 address edit & delete reply

    핫..홈페이지를 만드는 중이신가요? 아니면 강좌를 올리시는건가요?
    펌이라면 몰라도 그게 아니라면 웹디자이너신가요?
    머리가 아파서 몇번 배우고자 했지만 포기했답니다...지금은 블로그의 편리함에 빠져 아예 손놓고 있지요..^^ 노력은 안하면서 그저 부럽다고 입으로만 중얼댑니다.ㅠ.ㅠ

    • Favicon of https://blog.openuri.net 하늘치 2008.01.24 17:13 신고 address edit & delete

      ^^;
      그냥 배우고 있는 중이랍니다.
      배운 걸 그날 그날 정리하는 게 일단 목표였는데..
      쉽지 않네요;; 따라하기도 급급해서 말이에요. ㅋ

      나중에 블로그 스킨 수정할 때 좀 도움을 받을 것 같긴 합니다. ^^; 새롭게 만들 정도까지는... ㅠ.ㅠ

Top

PHP & MySQL

로그인 페이지 만들기..



Comment 0 Trackback 0
Top

MySQL : PHP로 만든 폼에서 입력 및 출력, 확인. another exercise..

웹에서 데이타 입력하고, 나타내기.


1. 테이블 만들기.

create table jusolist (
no int(11) not null auto_increment,
name varchar(30),
tel varchar(40),
juso varchar(50),
email varchar(30),
primary key (no)
);
 
 
mysql> create table jusolist (
    -> no int(11) not null auto_increment,
    -> name varchar(30),
    -> tel varchar(40),
    -> juso varchar(50),
    -> email varchar(30),
    -> primary key (no)
    -> );
Query OK, 0 rows affected (0.11 sec)
mysql> desc jusolist;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| no    | int(11)     |      | PRI | NULL    | auto_increment |
| name  | varchar(30) | YES  |     | NULL    |                |
| tel   | varchar(40) | YES  |     | NULL    |                |
| juso  | varchar(50) | YES  |     | NULL    |                |
| email | varchar(30) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)


Comment 0 Trackback 0
Top

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 : php와 DB의 연결


=====================================================================
1 번째. 먼저 MySQL에서 'php_exam'이라는 database 를 하나 만든다.
=====================================================================

mysql> create database php_exam;
Query OK, 1 row affected (0.06 sec)

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

mysql> use php_exam;
Database changed

mysql> show tables;
Empty set (0.00 sec)



======================================================================
2번째. 웹에서 테이블을 만들수 있게 하는 php페이지를 작성한다.
======================================================================

<?php
// 1. 연결 : mysql_connect(호스트명, 아이디, 비밀번호)
$conn=mysql_connect('localhost', 'root', 'apmsetup'); //db 연결부분

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

// DB 선택 : mysql_select_db(해당 db명, $conn)
$db=mysql_select_db("php_exam", $conn);
if($db)
 echo "db 연결성공";
else
 echo "db 연결 실패";


// DB에 table 쿼리(query 질의).
$sql="create table php_tbl(num int, name varchar(10))";
//mysql_query($sql, $conn)  db에 질의 수행.
mysql_query($sql, $conn);
?>

// 테이블이 생성되었음을 알려주는 경고창. 물론, 쿼리와 직접적 상관은 없다;
<script>
alert("테이블 생성");
</script>



======================================================================
3번째. 웹에서 만든 테이블을 mysql에서 확인.
======================================================================

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

mysql> desc php_tbl;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| num   | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)


======================================================================
4번째. 이번에는 웹에서 테이블 내용을 입력하게 하는 php 페이지 작성.
======================================================================

<?php

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

$conn=mysql_connect($host, $user, $password);
mysql_select_db("php_exam", $conn);

$sql="insert into php_tbl values(1, '홍길동')";
mysql_query($sql, $conn);

$sql="insert into php_tbl values(2, '루피')";
mysql_query($sql, $conn);

?>

<script>
alert("DB 입력 성공! mysql에서 확인해보세요!");
</script>



======================================================================
5번째. 웹에서 입력한 테이블 내용을 MySQL에서 확인하기.
======================================================================

mysql> select * from php_tbl;
+------+--------+
| num  | name   |
+------+--------+
|    1 | 홍길동 |
|    2 | 루피   |
+------+--------+
2 rows in set (0.02 sec)








======================================================================
special test..  내맘대로 만들어보기.
======================================================================






======================================================================
6 번째. 입력된 내용을 불러와 웹상에서 확인해보기.
======================================================================
http://localhost/db_m/dbselect.php
<?php

$conn=mysql_connect('localhost', 'root', 'apmsetup');     //MySQL 접속 및 설정 저장
mysql_select_db("php_exam", $conn);            //DB 접속

$sql="select * from php_tbl";                         //test 테이블의 레코드를 모두 뽑아오기
$sql_result=mysql_query($sql, $conn);          //질의(위 내용)를 수행하라.


$count=mysql_num_rows($sql_result);          //mysql_num_rows() 함수 : 행의 개수를 세는 함수.
echo $count;     //mysql query 수행 후 반환되는 결과값을 매개변수로 받고 그 레코드의 개수를 반환

echo "<br><br>";




//mysql_result(쿼리실행결과, 행번호, 변수값) : 결과값을 행 단위로 화면에 출력해주는 함수.
/*
for($i=0; $i<$count; $i++)
{
    $num=mysql_result($sql_result, $i, num);
    $name=mysql_result($sql_result, $i, name);
   
    echo "$num : $name <br>";
}
*/



//mysql_fetch_array($sql_result) 배열 형식으로 결과값을 화면상에 출력해주는 역할..
for($i=0; $i<$count; $i++)
{
    $result_array=mysql_fetch_array($sql_result);
    echo "$result_array[num] : $result_array[name] <br>";
}

?>

실행 결과

Comment 0 Trackback 0
Top

MySQL : select, update, alter, delete, drop...


==============================================================
*
select c.customerid, c.name, o.orderid
from customers c, orders o join
orders on c.customerid=o.customerid;

select customers.customerid, customers.name, orders.orderid
from customers left join orders orders on customers.customerid=orders.customerid;




============= left join =================
p.314

left join ... on(where와 비슷한 기능)
left join ... using(사용할 공통항목을 넣어주는 곳.)
-----------------------------------------

mysql> select * from customers;
+------------+-----------------+--------------------+--------------+
| customerid | name            | address            | city         |
+------------+-----------------+--------------------+--------------+
|          3 | Julie Smith     | 25 Oak Street      | Airport West |
|          4 | Alan Wong       | 1/47 Haines Avenue | Box Hill     |
|          5 | Michelle Arthur | 357 North Road     | Yarraville   |
+------------+-----------------+--------------------+--------------+
3 rows in set (0.59 sec)


mysql> select * from orders;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.08 sec)


============ 결과의 차이 ==============

mysql> select customers.customerid, customers.name, orders.orderid
    -> from customers join orders orders on customers.customerid=orders.customerid;
+------------+-----------------+---------+
| customerid | name            | orderid |
+------------+-----------------+---------+
|          5 | Michelle Arthur |       1 |
|          3 | Julie Smith     |       2 |
|          4 | Alan Wong       |       3 |
|          5 | Michelle Arthur |       4 |
+------------+-----------------+---------+
4 rows in set (0.00 sec)


mysql> select customers.customerid, customers.name, orders.orderid
    -> from customers left join orders orders on customers.customerid=orders.customerid;
+------------+-----------------+---------+
| customerid | name            | orderid |
+------------+-----------------+---------+
|          3 | Julie Smith     |       2 |
|          4 | Alan Wong       |       3 |
|          5 | Michelle Arthur |       1 |
|          5 | Michelle Arthur |       4 |
+------------+-----------------+---------+
4 rows in set (0.00 sec)













mysql> select * from orders order by customerid;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       1 |          5 |  69.98 | 2000-04-02 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.00 sec)



mysql> select customerid, avg(amount) from orders
    -> group by customerid;
+------------+-------------+
| customerid | avg(amount) |
+------------+-------------+
|          3 |   49.990002 |
|          4 |   74.980003 |
|          5 |   47.485002 |
+------------+-------------+


mysql> select customerid, avg(amount) from orders
    -> group by customerid
    -> having avg(amount)>=50;
+------------+-------------+
| customerid | avg(amount) |
+------------+-------------+
|          4 |   74.980003 |
+------------+-------------+
1 row in set (0.00 sec)











mysql> select * from orders;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.00 sec)

mysql> select customerid, amount
    -> from orders
    -> where amount = (select max(amount) from orders);
+------------+--------+
| customerid | amount |
+------------+--------+
|          4 |  74.98 |
+------------+--------+
1 row in set (0.00 sec)

=> 이 경우 하위 쿼리에서 단 하나의 값(최대 양)만이 리턴된다. 그 결과는 상위 쿼리에서 비교하기

위해 사용된다. 이런 것은 ANSI SQL의 조인을 사용해서는 멋지게 해낼 수 없는 쿼리이기 때문에 하위

쿼리 예로 좋은 것 같다.


mysql> select customerid, amount
    -> from orders
    -> order by amount desc
    -> limit 1;
+------------+--------+
| customerid | amount |
+------------+--------+
|          4 |  74.98 |
+------------+--------+
1 row in set (0.03 sec)

=> Limit에 의존..
















mysql> select isbn, title from books
    -> where not exists
    -> (select * from order_items where order_items.isbn=books.isbn);
+---------------+-------------+
| isbn          | title       |
+---------------+-------------+
| 0-672-31557-3 | Great Grace |
+---------------+-------------+
1 row in set (0.00 sec)

mysql> select * from books;
+---------------+----------------+---------------------------------------------------+-------+
| isbn          | author         | title                                             | price |
+---------------+----------------+---------------------------------------------------+-------+
| 0-672-31509-2 | Pruitt, et al. | Teach Yourself GIMP in 24 Hours                   | 24.99 |
| 0-672-31557-3 | Philips        | Great Grace                                       | 30.99 |
| 0-672-31697-8 | Michael Morgan | Java 2 for Professional Developers                | 34.99 |
| 0-672-31745-1 | Thomas Down    | Installing Debian GNU/Linux                       | 24.99 |
| 0-672-31769-9 | Thomas Schenk  | Caldera OpenLinux System Administration Unleashed | 49.99 |
+---------------+----------------+---------------------------------------------------+-------+
5 rows in set (0.00 sec)

mysql> select * from order_items;
+---------+---------------+----------+
| orderid | isbn          | quantity |
+---------+---------------+----------+
|       1 | 0-672-31697-8 |        2 |
|       2 | 0-672-31769-9 |        1 |
|       3 | 0-672-31509-2 |        1 |
|       3 | 0-672-31769-9 |        1 |
|       4 | 0-672-31745-1 |        3 |
+---------+---------------+----------+
5 rows in set (0.00 sec)












p.321 하위 쿼리를 임시테이블로 사용하기.

mysql> select * from
    -> (select customerid, name from customers where city='Box Hill')
    -> as box_hill_customers;
+------------+-----------+
| customerid | name      |
+------------+-----------+
|          4 | Alan Wong |
+------------+-----------+
1 row in set (0.03 sec)



mysql> select customerid, name from customers where city='Box Hill';
+------------+-----------+
| customerid | name      |
+------------+-----------+
|          4 | Alan Wong |
+------------+-----------+
1 row in set (0.00 sec)











mysql> select * from books;
+---------------+----------------+---------------------------------------------------+-------+
| isbn          | author         | title                                             | price |
+---------------+----------------+---------------------------------------------------+-------+
| 0-672-31509-2 | Pruitt, et al. | Teach Yourself GIMP in 24 Hours                   | 24.99 |
| 0-672-31557-3 | Philips        | Great Grace                                       | 30.99 |
| 0-672-31697-8 | Michael Morgan | Java 2 for Professional Developers                | 34.99 |
| 0-672-31745-1 | Thomas Down    | Installing Debian GNU/Linux                       | 24.99 |
| 0-672-31769-9 | Thomas Schenk  | Caldera OpenLinux System Administration Unleashed | 49.99 |
+---------------+----------------+---------------------------------------------------+-------+
5 rows in set (0.00 sec)

mysql> update books
    -> set price=price*1.1;
Query OK, 5 rows affected (0.09 sec)
Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from books;
+---------------+----------------+---------------------------------------------------+-------+
| isbn          | author         | title                                             | price |
+---------------+----------------+---------------------------------------------------+-------+
| 0-672-31509-2 | Pruitt, et al. | Teach Yourself GIMP in 24 Hours                   | 27.49 |
| 0-672-31557-3 | Philips        | Great Grace                                       | 34.09 |
| 0-672-31697-8 | Michael Morgan | Java 2 for Professional Developers                | 38.49 |
| 0-672-31745-1 | Thomas Down    | Installing Debian GNU/Linux                       | 27.49 |
| 0-672-31769-9 | Thomas Schenk  | Caldera OpenLinux System Administration Unleashed | 54.99 |
+---------------+----------------+---------------------------------------------------+-------+
5 rows in set (0.00 sec)










=================================================
update customers
set address = '250 Olsens Road'
where customerid = 4;
=================================================

mysql> select * from customers;
+------------+-----------------+--------------------+--------------+
| customerid | name            | address            | city         |
+------------+-----------------+--------------------+--------------+
|          3 | Julie Smith     | 25 Oak Street      | Airport West |
|          4 | Alan Wong       | 1/47 Haines Avenue | Box Hill     |
|          5 | Michelle Arthur | 357 North Road     | Yarraville   |
+------------+-----------------+--------------------+--------------+
3 rows in set (0.00 sec)

mysql> update customers
    -> set address = '250 Olsens Road'
    -> where customerid = 4;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from customers;
+------------+-----------------+-----------------+--------------+
| customerid | name            | address         | city         |
+------------+-----------------+-----------------+--------------+
|          3 | Julie Smith     | 25 Oak Street   | Airport West |
|          4 | Alan Wong       | 250 Olsens Road | Box Hill     |
|          5 | Michelle Arthur | 357 North Road  | Yarraville   |
+------------+-----------------+-----------------+--------------+
3 rows in set (0.00 sec)













p324
=================================================
alter table customers
modify name char(70) not null;
=================================================

mysql> desc customers;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| customerid | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | char(50)         | NO   |     |         |                |
| address    | char(100)        | NO   |     |         |                |
| city       | char(30)         | NO   |     |         |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.09 sec)


mysql> alter table customers
    -> modify name char(70) not null;
Query OK, 3 rows affected (0.47 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> desc customers;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| customerid | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | char(70)         | NO   |     |         |                |
| address    | char(100)        | NO   |     |         |                |
| city       | char(30)         | NO   |     |         |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)








=================================================
alter table orders
add tax float(6.2) after amount;
=================================================


mysql> select * from orders;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.00 sec)


mysql> alter table orders
    -> add tax float(6,2) after amount;
Query OK, 4 rows affected (0.23 sec)
Records: 4  Duplicates: 0  Warnings: 0


mysql> select * from orders;
+---------+------------+--------+------+------------+
| orderid | customerid | amount | tax  | date       |
+---------+------------+--------+------+------------+
|       1 |          5 |  69.98 | NULL | 2000-04-02 |
|       2 |          3 |  49.99 | NULL | 2000-04-15 |
|       3 |          4 |  74.98 | NULL | 2000-04-19 |
|       4 |          5 |  24.99 | NULL | 2000-05-01 |
+---------+------------+--------+------+------------+
4 rows in set (0.00 sec)






삭제
=================================================
delete from 'table명';
ex) delete from customers where customerid=5;

drop table 'table명';

drop database 'database명';
=================================================



mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bookorama          |
| company            |
| mysql              |
| sqltest            |
| test               |
+--------------------+
6 rows in set (0.03 sec)


mysql> drop database bookorama;
Query OK, 5 rows affected (0.27 sec)

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


Comment 0 Trackback 0
Top

MySQL : 데이타베이스 실습


MySQL

p.290
primary key
- 단일키
- 복합키

===================================================

mysql> create database bookorama;
Query OK, 1 row affected (0.20 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bookorama          |
| company            |
| mysql              |
| sqltest            |
| test               |
+--------------------+
6 rows in set (0.20 sec)

mysql> use bookorama;
Database changed

===================================================

mysql> create table customers
    -> (
    -> customerid int unsigned not null auto_increment primary key,
    -> name char(50) not null,
    -> address char(100) not null,
    -> city char(30) not null
    -> );
Query OK, 0 rows affected (0.91 sec)

mysql> desc customers;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| customerid | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | char(50)         | NO   |     |         |                |
| address    | char(100)        | NO   |     |         |                |
| city       | char(30)         | NO   |     |         |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.13 sec)


===================================================


mysql> create table orders
    -> (
    -> orderid int unsigned not null auto_increment primary key,
    -> customerid int unsigned not null,
    -> amount float(6,2),
    -> date date not null
    -> );
Query OK, 0 rows affected (0.22 sec)

mysql> desc orders;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| orderid    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| customerid | int(10) unsigned | NO   |     |         |                |
| amount     | float(6,2)       | YES  |     | NULL    |                |
| date       | date             | NO   |     |         |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)


===================================================


mysql> create table books
    -> (
    -> isbn char(13) not null primary key,
    -> author char(50),
    -> title char(100),
    -> price float(4,2)
    -> );
Query OK, 0 rows affected (0.22 sec)

mysql> desc books;
+--------+------------+------+-----+---------+-------+
| Field  | Type       | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| isbn   | char(13)   | NO   | PRI |         |       |
| author | char(50)   | YES  |     | NULL    |       |
| title  | char(100)  | YES  |     | NULL    |       |
| price  | float(4,2) | YES  |     | NULL    |       |
+--------+------------+------+-----+---------+-------+
4 rows in set (0.06 sec)


===================================================


mysql> create table order_items
    -> (
    -> orderid int unsigned not null,
    -> isbn char(13) not null,
    -> quantity tinyint unsigned,
    ->
    -> primary key (orderid, isbn)
    -> );
Query OK, 0 rows affected (0.14 sec)

mysql> desc order_items;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| orderid  | int(10) unsigned    | NO   | PRI |         |       |
| isbn     | char(13)            | NO   | PRI |         |       |
| quantity | tinyint(3) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)


===================================================


mysql> create table book_reviews
    -> (
    -> isbn char(13) not null primary key,
    -> review text
    -> );
Query OK, 0 rows affected (0.11 sec)

mysql> desc book_reviews;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| isbn   | char(13) | NO   | PRI |         |       |
| review | text     | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
2 rows in set (0.05 sec)


===================================================


mysql> show tables;
+---------------------+
| Tables_in_bookorama |
+---------------------+
| book_reviews        |
| books               |
| customers           |
| order_items         |
| orders              |
+---------------------+
5 rows in set (0.00 sec)




===================================================


mysql> insert into customers values
    ->   (3, "Julie Smith", "25 Oak Street", "Airport West"),
    ->   (4, "Alan Wong", "1/47 Haines Avenue", "Box Hill"),
    ->   (5, "Michelle Arthur", "357 North Road", "Yarraville");
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into orders values
    ->   (NULL, 5, 69.98, "2000-04-02"),
    ->   (NULL, 3, 49.99, "2000-04-15"),
    ->   (NULL, 4, 74.98, "2000-04-19"),
    ->   (NULL, 5, 24.99, "2000-05-01");
Query OK, 4 rows affected (0.09 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> insert into books values
    ->   ("0-672-31697-8", "Michael Morgan", "Java 2 for Professional Developers", 34.99),

    ->   ("0-672-31745-1", "Thomas Down", "Installing Debian GNU/Linux", 24.99),
    ->   ("0-672-31509-2", "Pruitt, et al.", "Teach Yourself GIMP in 24 Hours", 24.99),
    ->   ("0-672-31769-9", "Thomas Schenk", "Caldera OpenLinux System Administration Unleashed", 49.99);
Query OK, 4 rows affected (0.11 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> insert into order_items values
    ->   (1, "0-672-31697-8", 2),
    ->   (2, "0-672-31769-9", 1),
    ->   (3, "0-672-31769-9", 1),
    ->   (3, "0-672-31509-2", 1),
    ->   (4, "0-672-31745-1", 3);
Query OK, 5 rows affected (0.06 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> insert into book_reviews values
    ->   ("0-672-31697-8", "Morgan's book is clearly written and goes well beyond
    ">                      most of the basic Java books out there.");
Query OK, 1 row affected (0.06 sec)

















====================================================================

mysql> select * from orders
    -> where customerid=5;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
2 rows in set (0.05 sec)






mysql> select * from orders where customerid in(3,4);
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
+---------+------------+--------+------------+
2 rows in set (0.03 sec)


mysql> select * from orders where customerid not in(3,4);
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
2 rows in set (0.00 sec)


mysql> select * from orders where customerid=3 or customerid=4;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
+---------+------------+--------+------------+
2 rows in set (0.05 sec)










mysql> select * from customers;
+------------+-----------------+--------------------+--------------+
| customerid | name            | address            | city         |
+------------+-----------------+--------------------+--------------+
|          3 | Julie Smith     | 25 Oak Street      | Airport West |
|          4 | Alan Wong       | 1/47 Haines Avenue | Box Hill     |
|          5 | Michelle Arthur | 357 North Road     | Yarraville   |
+------------+-----------------+--------------------+--------------+
3 rows in set (0.00 sec)

mysql> select * from orders;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.00 sec)

mysql>


mysql> select o.orderid, o.amount, o.date
    -> from customers c, orders o
    -> where c.name= 'Julie Smith'
    -> and c.customerid = o.customerid;
+---------+--------+------------+
| orderid | amount | date       |
+---------+--------+------------+
|       2 |  49.99 | 2000-04-15 |
+---------+--------+------------+
1 row in set (0.11 sec)











Question!


도시가 Box Hill인 데이터의 이름과 가격을 구하시오.
select c.name, o.amount
from customers c, orders o
where c.city='Box Hill' and c.customerid=o.customerid;


mysql> select c.name, o.amount
    -> from customers c, orders o
    -> where c.city='Box Hill' and c.customerid=o.customerid;
+-----------+--------+
| name      | amount |
+-----------+--------+
| Alan Wong |  74.98 |
+-----------+--------+
1 row in set (0.00 sec)






mysql> select c.name
    -> from customers c, orders o, order_items oi, books b
    -> where c.customerid = o.customerid
    -> and o.orderid = oi.orderid
    -> and oi.isbn = b.isbn
    -> and b.title like '%Java%';
+-----------------+
| name            |
+-----------------+
| Michelle Arthur |
+-----------------+
1 row in set (0.16 sec)











===================================================
Linux 문구가 들어간 책의 사람 이름과 도시명을 검색하시오.

mysql> select * from book_reviews;
+---------------+----------------------------------------------------------------------------------------
| isbn          | review
+---------------+----------------------------------------------------------------------------------------
| 0-672-31697-8 | Morgan's book is clearly written and goes well beyond
                     most of the basic Java books out there. |
+---------------+----------------------------------------------------------------------------------------
1 row in set (0.02 sec)

mysql> select * from books;
+---------------+----------------+---------------------------------------------------+-------+
| isbn          | author         | title                                             | price |
+---------------+----------------+---------------------------------------------------+-------+
| 0-672-31509-2 | Pruitt, et al. | Teach Yourself GIMP in 24 Hours                   | 24.99 |
| 0-672-31697-8 | Michael Morgan | Java 2 for Professional Developers                | 34.99 |
| 0-672-31745-1 | Thomas Down    | Installing Debian GNU/Linux                       | 24.99 |
| 0-672-31769-9 | Thomas Schenk  | Caldera OpenLinux System Administration Unleashed | 49.99 |
+---------------+----------------+---------------------------------------------------+-------+
4 rows in set (0.00 sec)

mysql> select * from order_items;
+---------+---------------+----------+
| orderid | isbn          | quantity |
+---------+---------------+----------+
|       1 | 0-672-31697-8 |        2 |
|       2 | 0-672-31769-9 |        1 |
|       3 | 0-672-31509-2 |        1 |
|       3 | 0-672-31769-9 |        1 |
|       4 | 0-672-31745-1 |        3 |
+---------+---------------+----------+
5 rows in set (0.00 sec)

mysql> select * from orders;
+---------+------------+--------+------------+
| orderid | customerid | amount | date       |
+---------+------------+--------+------------+
|       1 |          5 |  69.98 | 2000-04-02 |
|       2 |          3 |  49.99 | 2000-04-15 |
|       3 |          4 |  74.98 | 2000-04-19 |
|       4 |          5 |  24.99 | 2000-05-01 |
+---------+------------+--------+------------+
4 rows in set (0.00 sec)

mysql> select * from customers;
+------------+-----------------+--------------------+--------------+
| customerid | name            | address            | city         |
+------------+-----------------+--------------------+--------------+
|          3 | Julie Smith     | 25 Oak Street      | Airport West |
|          4 | Alan Wong       | 1/47 Haines Avenue | Box Hill     |
|          5 | Michelle Arthur | 357 North Road     | Yarraville   |
+------------+-----------------+--------------------+--------------+
3 rows in set (0.00 sec)





select c.name, c.city
from books b, order_items oi, orders o, customers c
where b.title like '%Linux%'
and b.isbn=oi.isbn
and oi.orderid=o.orderid
and o.customerid=c.customerid;









==============================================================================
Question
- Linux 문구가 들어간 책의 이름과 도시명을 검색하시오.

mysql> select b.title, c.city
    -> from books b, order_items oi, orders o, customers c
    -> where b.title like '%Linux%'
    -> and b.isbn=oi.isbn
    -> and oi.orderid=o.orderid
    -> and o.customerid=c.customerid;
+---------------------------------------------------+--------------+
| title                                             | city         |
+---------------------------------------------------+--------------+
| Caldera OpenLinux System Administration Unleashed | Airport West |
| Caldera OpenLinux System Administration Unleashed | Box Hill     |
| Installing Debian GNU/Linux                       | Yarraville   |
+---------------------------------------------------+--------------+
3 rows in set (0.00 sec)


==============================================================================
Question
- Linux 문구가 들어간 책의 고객 이름과 도시명을 검색하시오.

mysql> select c.name, c.city
    -> from books b, order_items oi, orders o, customers c
    -> where b.title like '%Linux%'
    -> and b.isbn=oi.isbn
    -> and oi.orderid=o.orderid
    -> and o.customerid=c.customerid;
+-----------------+--------------+
| name            | city         |
+-----------------+--------------+
| Julie Smith     | Airport West |
| Alan Wong       | Box Hill     |
| Michelle Arthur | Yarraville   |
+-----------------+--------------+
3 rows in set (0.00 sec)








Comment 0 Trackback 0
Top

MySQL : 중간테스트

########### 데이타베이스 중간 테스트! ###########


alter table 테이블명1 rename 테이블명2;
alter table 테이블명 add 컬럼명 varchar(20);
alter table 테이블명 drop 컬럼명;
alter table 테이블명 change cname cname varchar(20);
필드명과 자료형을 변경 가능.
alter table 테이블명 change outlet outlet1 varchar(30);

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


################# 초기 데이타 #################

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


mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


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


mysql> select * from sale;
+------+-----+------+
| sno  | cno | qty  |
+------+-----+------+
| s123 | c1  |   12 |
| s123 | c2  |   20 |
| s123 | c3  |   42 |
| s123 | c4  |   18 |
| s123 | c5  |   10 |
| s123 | c6  |   20 |
| s202 | c1  |   34 |
| s202 | c2  |   14 |
| s134 | c2  |   21 |
| s241 | c2  |   30 |
| s241 | c4  |   31 |
| s241 | c5  |   13 |
+------+-----+------+
12 rows in set (0.00 sec)


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)












################# 문제 풀이 #################


1. salesman 테이블의 명칭을 employee 변경한다.
mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


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


mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| employee          |
| sale              |
+-------------------+
3 rows in set (0.00 sec)

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

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


2. car 테이블에 vendor varchar(20) 컬럼을  추가한다.
mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql> alter table car add vendor varchar(20);
Query OK, 7 rows affected (0.09 sec)
레코드: 7개  중복: 0개  경고: 0개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
| vendor | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


3. car 테이블에 vendor 컬럼을 삭제해 본다.
mysql> alter table car drop vendor;
Query OK, 7 rows affected (0.06 sec)
레코드: 7개  중복: 0개  경고: 0개


mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


4. car 테이블의 cname 의 데이터 타입을 varchar(20)로 변경한다.
mysql>alter table car change cname cname int(10);
Query OK, 7 rows affected (0.05 sec)
레코드: 7개  중복: 0개  경고: 7개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | int(10)     | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table car change cname cname varchar(20);
Query OK, 7 rows affected (0.06 sec)
레코드: 7개  중복: 0개  경고: 0개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


5. salesman 테이블에 '사번 s346, 이름:강길동, 입사일 :2004-12-12, 실적:200  지점명:부산'으로 레코드를 삽입하시오.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)


mysql> insert into salesman values('s346', '강길동', '2004-12-12', 200, '부산');
Query OK, 1 row affected (0.00 sec)


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


6. salesman의 전체 레코드를 검색하시오.
mysql> desc salesman;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| sno    | char(4)     |      | PRI |         |       |
| sname  | char(10)    |      |     |         |       |
| hire   | date        | YES  |     | NULL    |       |
| point  | smallint(6) | YES  |     | NULL    |       |
| branch | char(10)    | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


7. salesman 테이블에서 실적이 300점 이상의 사원의 이름과 지점명을 검색하시오.
mysql> select sname, branch from salesman where point>=300;
+--------+--------+
| sname  | branch |
+--------+--------+
| 김두환 | 경기   |
| 임흥석 | 부산   |
+--------+--------+
2 rows in set (0.03 sec)


8. 판매된 승용차의 차량 번호를 검색하라
mysql> select cno from sale;
+-----+
| cno |
+-----+
| c1  |
| c2  |
| c3  |
| c4  |
| c5  |
| c6  |
| c1  |
| c2  |
| c2  |
| c2  |
| c4  |
| c5  |
+-----+
12 rows in set (0.00 sec)


9. 판매된 승용차의 차량번호를 중복 없이 검색하라.
(select 필드명 from 테이블명 group by 그룹화하고자 하는 필드명)

mysql>select cno from sale group by cno;
+-----+
| cno |
+-----+
| c1  |
| c2  |
| c3  |
| c4  |
| c5  |
| c6  |
+-----+
6 rows in set (0.03 sec)


10. 서울이 출고지인 차량의 차량번호, 중량, 차량번호를 검색하라
mysql> select cname, weight, cno from car where outlet='서울';
+--------+--------+-----+
| cname  | weight | cno |
+--------+--------+-----+
| 소나타 |   1200 | c1  |
| 소나타 |   1300 | c2  |
+--------+--------+-----+
2 rows in set (0.00 sec)


11. 출고지가 부산이고 배기량이 2000cc 이상인 차량의 차랑명과 배기량을 검색하라
mysql> select cname, cc from car where outlet='부산' and cc>=2000;
+-------+------+
| cname | cc   |
+-------+------+
| SM5   | 2000 |
| SM5   | 2500 |
+-------+------+
2 rows in set (0.00 sec)


12. 영업사원의 모든 정보를 실적이 높은 순으로 검색하라.
mysql> select * from salesman order by point asc;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


13. 영업사원의 모든 정보를 실적순으로 오름차순 실적이 같은 경우 입사일로 내림차순하라.
mysql> select * from salesman order by point, hire desc;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


14. 실적이 높은 영업사원 5명의 영업사원의 모든 정보를 (실적 순으로) 검색하라
mysql> select * from salesman order by point desc limit 0,5;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
5 rows in set (0.00 sec)


15. 실적이 3등, 4등, 5등이 영업사원의 모든 정보를 검색하라.
mysql> select * from salesman order by point desc limit 2,3;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
3 rows in set (0.00 sec)


16. 전체 팔린 차량의 대수를 구하라
mysql> select sum(qty) from sale;
+----------+
| sum(qty) |
+----------+
|      265 |
+----------+
1 row in set (0.01 sec)


17. 영업사원들의 실적 점수의 평균을 구하라.
mysql> select avg(point) from salesman;
+------------+
| avg(point) |
+------------+
|   233.3333 |
+------------+
1 row in set (0.00 sec)


18. 영업 사원별로 판매한 전체 차량의 대수를 구하라.
mysql> select s.sname, sum(s1.qty) from salesman s, sale s1
where s.sno=s1.sno group by s.sname;

+--------+-------------+
| sname  | sum(s1.qty) |
+--------+-------------+
| 임흥석 |          74 |
| 기필호 |         122 |
| 김두환 |          48 |
| 박성식 |          21 |
+--------+-------------+
4 rows in set (0.00 sec)


19. 두 종류 이상의 차량을 판매한 영업사원의 사번을 구하라.
mysql> select sno from sale group by sno having count(cno)>=2;
+------+
| sno  |
+------+
| s123 |
| s202 |
| s241 |
+------+
3 rows in set (0.00 sec)


20. 차량명이 ‘레’로 시작되는 차량의 모든 정보를 검색하라.
mysql> select * from car where cname like '레%';
+-----+-------+------+--------+--------+
| cno | cname | cc   | weight | outlet |
+-----+-------+------+--------+--------+
| c3  | 레조  | 1500 |   1100 | 인천   |
| c4  | 레조  | 2000 |   1200 | 인천   |
+-----+-------+------+--------+--------+
2 rows in set (0.00 sec)


21. 차량명이 한글로 두 글자인 차량의 차량번호와 차량명을 검색하라
mysql> select cno, cname from car where cname like '____';
+-----+-------+
| cno | cname |
+-----+-------+
| c3  | 레조  |
| c4  | 레조  |
+-----+-------+
2 rows in set (0.00 sec)


22. 박씨가 아닌 영업사원의 사번과 이름을 검색하라.
mysql> select sno, sname from salesman where sname not like '박%';
+------+--------+
| sno  | sname  |
+------+--------+
| s123 | 기필호 |
| s202 | 김두환 |
| s241 | 임흥석 |
| s345 | 최재형 |
| s444 | 정종호 |
| s555 | 홍길동 |
| s346 | 강길동 |
+------+--------+
7 rows in set (0.00 sec)


23. 배기량이 널 값인 차량의 차량번호와 차량명을 검색하라.
mysql> select cno, cname from car where cc=null;
Empty set (0.00 sec)

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)


24. 입사일이 2000부터 2003년 사이의 입사자들의 모든 정보를 검색하라.
mysql> select * from salesman where year(hire) between 2000 and 2003;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
+------+--------+------------+-------+--------+
3 rows in set (0.00 sec)


25. 입사년도가 2002년 사원의 모든 정보를 검색하라.
mysql> select * from salesman where year(hire)=2002;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
+------+--------+------------+-------+--------+
1 row in set (0.00 sec)


26. 판매 실적이 없는 사원들의 모든 정보를 검색하라.
mysql> select * from salesman where point is null;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
+------+--------+------------+-------+--------+
2 rows in set (0.00 sec)


27. 배기량이  2000cc 이상이면서 차의 중량이 1000 이상이면서 출고지가 인천인 차량번호와  차량명을 검색하시오.
mysql> select cno, cname from car where cc>=2000 and weight>=1000 and outlet='인천';
+-----+-------+
| cno | cname |
+-----+-------+
| c4  | 레조  |
+-----+-------+
1 row in set (0.00 sec)


28. 사번이 's123' 이고 판매량이 20 이상인 차량번호를 모두 검색하시오.
mysql> select cno from sale where sno='s123' and qty>=20;
+-----+
| cno |
+-----+
| c2  |
| c3  |
| c6  |
+-----+
3 rows in set (0.00 sec)


29. 영업사원들 중에서 실적 포인트가 300 이상 400 이하의 사원들의 모든 정보를 검색하시오.
mysql> select * from salesman where point between 300 and 400;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
+------+--------+------------+-------+--------+
2 rows in set (0.00 sec)


30. 차량의 출고지가 ‘부’로 시작하면서 배기량이 2000cc의 차량명을 검색하시오.
mysql> select cname from car where outlet like '부%' and cc=2000;
+-------+
| cname |
+-------+
| SM5   |
+-------+
1 row in set (0.00 sec)


31. 차량번호 'c1'을 판매한 영업사원의 이름과 입사년월일을 검색하시오.
mysql> select s.sname, s.hire from salesman s, sale s1, car c where c.cno=s1.cno

and s.sno=s1.sno and c.cno='c1';
+--------+------------+
| sname  | hire       |
+--------+------------+
| 기필호 | 1998-10-12 |
| 김두환 | 2000-05-03 |
+--------+------------+
2 rows in set (0.02 sec)


32. 자동차 판매량이 30 이상인 영업사원의 이름과 실적점수를 검색하시오.
mysql> select s.sname, s.point from salesman s, sale s1 where s.sno=s1.sno group by s1.sno having sum(s1.qty)>=30;
+--------+-------+
| sname  | point |
+--------+-------+
| 기필호 |   200 |
| 김두환 |   400 |
| 임흥석 |   300 |
+--------+-------+
3 rows in set (0.00 sec)


33. 사번이 's241' 사원의 실적점수를 150점 증가 시켜라
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql> update salesman set point=point+150 where sno='s241';
Query OK, 1 row affected (0.01 sec)
일치하는 Rows : 1개 변경됨: 1개  경고: 0개

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


34. 출고지가 ‘인천’인 차량의 배기량을 100cc 증가 시켜라.
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> update car set cc=cc+100 where outlet='인천';
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 2개 변경됨: 2개  경고: 0개

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


35. 모드 사원의 실적을 50점 감소 시켜라
mysql> update salesman set point=point-50;
Query OK, 6 rows affected (0.00 sec)
일치하는 Rows : 8개 변경됨: 6개  경고: 0개

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


36. 출고지가 ‘서울’인 차량의 차량명을 소나타2로 변경하라.
mysql> update car set cname='소나타2' where outlet='서울';
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 2개 변경됨: 2개  경고: 0개

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


37. 입사년도가 2004년 사원들의 실적점수를 100점 증가 시키시오.
mysql> update salesman set point=point+100 where year(hire)=2004;
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 4개 변경됨: 2개  경고: 0개

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


38. 사번이 's202' 인 사원의 레코드를 삭제하라.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s202 | 김두환 | 2000-05-03 |   350 | 경기   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


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


mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)


39. 부산에서 출고되는 모든 차량의 레코드를 삭제하라
mysql> select * from car;
+-----+---------+------+--------+--------+
| cno | cname   | cc   | weight | outlet |
+-----+---------+------+--------+--------+
| c1  | 소나타2 | 1800 |   1200 | 서울   |
| c2  | 소나타2 | 2000 |   1300 | 서울   |
| c3  | 레조    | 1600 |   1100 | 인천   |
| c4  | 레조    | 2100 |   1200 | 인천   |
| 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, 2 rows affected (0.00 sec)

mysql> select * from car;
+-----+---------+------+--------+--------+
| cno | cname   | cc   | weight | outlet |
+-----+---------+------+--------+--------+
| c1  | 소나타2 | 1800 |   1200 | 서울   |
| c2  | 소나타2 | 2000 |   1300 | 서울   |
| c3  | 레조    | 1600 |   1100 | 인천   |
| c4  | 레조    | 2100 |   1200 | 인천   |
| c5  | 카니발  | 3000 |   1800 | 광주   |
+-----+---------+------+--------+--------+
5 rows in set (0.00 sec)


40. 영업사원의 모든 테이블을 삭제하라.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)

mysql> delete from salesman;
Query OK, 7 rows affected (0.00 sec)

mysql> select * from salesman;
Empty set (0.00 sec)

Comment 0 Trackback 0
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

PHP : define, confirm,

define
<?php

    define("PI", 3.14159);
    $sqr = 10 * PI;
    echo "10 * PI = $sqr <br>";

    define("PI", 8.7272);
    // 한번 정의한 상수는 재설정이 불가

    echo PI;
    echo "<br>";
    echo "<br>";
?>


이런 것도 있다.
<?
   echo "PHP의 버전 : ";
   echo PHP_VERSION;
   echo "<br>";

   echo "서버의 운영체제 : ";
   echo PHP_OS;
   echo "<br>";
?>



확인창 띄워서 선택하게 하는 방법

con = confirm (" ");
예 -> true 값 반환.
아니오 -> false 값 반환.

<script>
con = confirm("회원가입을 하시겠습니까? 정말??");

/* yes는 네이버, no는 엠파스 */

if (con==true)
{
    location.href="http://www.naver.com";
}
else
{
    location.href="http://www.empas.com";
}
</script>




window.open
1-1. [confirm.html] - onLoad
<script>
function winopen()
{
    window.open("notice.html", "win1", "width=300, height=200");
}
</script>

<body onLoad="winopen();">   // 페이지가 열리자마자 불러오기
윈도우 오픈 연습
</body>



1-2. [confirm.html] - onClick
<script>
function winopen()
{
    window.open("notice.html", "win1", "width=300, height=200");
}
</script>

<body>
윈도우 오픈 연습
<br><br>
<form>
<input type=button onClick="winopen();" value="공지띄우기"> //클릭하면 공지창 띄우기
</form>
</body>



2. [notice.html]
<HTML>
<HEAD>
<TITLE> 공지합니다! </TITLE>
</HEAD>

<BODY>
<center>
<table><tr><td>
신년 모임합니다.<br>
장소 : 현대직업전문학교<br>
회비 : 1만원</br>
모임 목적 : 친목 도모
</td></tr></table>
</center>
</BODY>
</HTML>







일단은 요까지..



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

PHP : do while 연습

1. while 문을 이용해 합 구하기.
 - 1부터 100까지 합.
 - 1부터 100까지 홀수의 합.
 - 1부터 100까지 짝수의 합.



2. do while 문으로 구현하기.
- 1부터 100까지의 합 구하기.
- 1부터 100까지의 3의 배수의 합 구하기.


Comment 0 Trackback 0
Top

PHP : JavaScript - prompt() 함수 연습

JavaScript -> prompt() 함수 연습

이름, 국어 점수, 영어 점수, 수학 점수를 입력 받아,
서버로 같은 값을 넘긴 뒤,

------------------------------------
record();
폼이름 : s1
소스(prompt() 4개, hidden 객체 4개, 변수 4개)
파일 이름 : s_input.php
------------------------------------

서버측 s_result.php 파일에서 서버 변수의 값을 받아
총점, 평균을 구한 후,

90점 이상이면 A학점,
80점 이상이면 B학점,
70점 이상이면 C학점,
60점 이상이면 D학점,
그 이하는 F학점으로 처리(IF 문으로 처리하시오.)



--------------출력 양식--------------
html 테이블 태그를 이용해서 성적 처리

응시자 : 홍길동
국어 점수 : 80
영어 점수 : 90
수학 점수 : 90
총점 :
평균 :
등급 :
-------------------------------------



----------------답안..----------------
-------------------------------------

Comment 2 Trackback 0
  1. Favicon of http://omomo.tistory.com omomo 2008.01.08 17:48 신고 address edit & delete reply

    헐...
    아주 옛날에 잠시 들여다봤던 php의 악몽이 떠오르네요. ㅋㅋㅋ

    • Favicon of https://blog.openuri.net 하늘치 2008.01.08 19:16 신고 address edit & delete

      ^^;
      아직까지는 할만해요.
      대신 딱 하루만 지나면 기억이 가물가물.. ㅋ

Top

prev 1 next