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 쿼리상에서 지정한 컬럼명 순서대로 출력됩니다.