SELECT 쿼리 명령은 테이블에서 데이터를 읽어와 출력합니다. 이때 읽어올 테이블명과 컬럼명을 지정해야 합니다.

SELECT 쿼리는 기본적으로 2개의 키워드 명령을 가지고 있습니다. 첫 번째는 명령의 시 작 키워드 select입니다. 테이블을 선택하는 from 키워드로 기본 구성됩니다.

| 쿼리 문법 |

SELECT 컬럼명1, 컬럼명2, 컬럼명3,  from 테이블명; 

select와 from 키워드 사이에 읽어오고자 하는 테이블의 컬럼명을 콤마 (,)로 구분하여 나열합니다. from 키워드 다음에는 조회할 테이블명을 입력하면 됩니다.

11.1.1 쿼리 실습

테이블에서 원하는 컬럼의 데이터를 읽어와 목록으로 출력합니다.

| 예제 쿼리 |

SELECT FirstName, LastName, Country from members; 

| 콘솔 실습 화면 |

mysql> SELECT FirstName, LastName, Country from members;
+-----------+------------+---------+
| FirstName | LastName | Country |
+-----------+-----------+---------+
| lee          | hojin       | korea   |
| NULL       | jiny         | korea   |
| kim         | james      | korea   |
| jung        | eric         | korea   |
+-----------+-----------+---------+
4 rows in set (0.00 sec)

위의 예제를 보면 선택한 컬럼만 선택하여 결과를 출력합니다.

11.1.2 PHP 실습

PHP 코드를 통하여 테이블의 데이터를 출력합니다. 관련 메서드를 추가하여 소스에 사용합니다.

| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.

public function select($tbname,$field,$where)
{
            if ($tbname) {
                $queryString = "SELECT ";
                
                if ($field) {
                    $queryString .= "".$field . " FROM $tbname";
                } else {
                    $queryString .= "* FROM $tbname";
                }

                if ($where) {
                    $queryString .= " where ".$where.";";
                } else {
                    $queryString .= ";";
                }

                if ($result = mysqli_query($this->dbcon, $queryString)) {
                    $this->msgEcho("쿼리성공] ".$queryString);
                    $rowss = "";
                    $row_cnt = mysqli_num_rows($result);
                    for ($i=0; $i<$row_cnt; $i++) {
                        $rowss[$i] = mysqli_fetch_object($result);
                    }

                    $result->free();
                    return $rowss;
                } else {
                    $this->msgEcho("Error] ".$queryString);
                }

            } else {
                $this->msgEcho("Error] 테이블 이름이 없습니다."); 
            }  
}

예제 파일 | select-01.php

<?php

	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();

	$tbname = "members";

	// 컬럼 지정조회 
	echo "===== 컬럼조회 =====<br>";
	if ($rowss = $db->select($tbname,"FirstName, LastName")) {
		echo "tables fields = ". count($rowss) . "<br>";
 
		for ($i=0;$i<count($rowss);$i++) {
			echo $i."=";            
			 print_r($rowss[$i]);
			echo "<br>";
		}
	}

	// 컬럼, 조건 지정조회 
	echo "===== 컬럼조회 =====<br>";
	if ($rowss = $db->select($tbname,"FirstName, LastName","Id<=3")) {
		echo "tables fields = ". count($rowss) . "<br>";
 
		for ($i=0;$i<count($rowss);$i++) {
			echo $i."=";            
			print_r($rowss[$i]);
			echo "<br>";
		}
	}

?>

화면 출력

mysql connected!
===== 컬럼조회 =====
쿼리성공] SELECT FirstName, LastName FROM members;
tables fields = 6
0=stdClass Object ( [FirstName] => lee [LastName] => hojin )
1=stdClass Object ( [FirstName] => [LastName] => jiny )
2=stdClass Object ( [FirstName] => kim [LastName] => james )
3=stdClass Object ( [FirstName] => jiny [LastName] => 1234 )
4=stdClass Object ( [FirstName] => jiny [LastName] => 1234 )
5=stdClass Object ( [FirstName] => jiny [LastName] => 123400 )
===== 컬럼조회 =====
쿼리성공] SELECT FirstName, LastName FROM members where Id<=3;
tables fields = 3
0=stdClass Object ( [FirstName] => lee [LastName] => hojin )
1=stdClass Object ( [FirstName] => [LastName] => jiny )
2=stdClass Object ( [FirstName] => kim [LastName] => james ) 

11.1.3 컬럼 순서

선택적으로 컬럼을 출력 조회는 출력하고자 하는 컬럼의 순서를 변경할 수도 있습니다. SQL 쿼리상에서 지정한 컬럼명 순서대로 출력됩니다.