Home » 2014 » Октомври » 12 » Урок №10 Клаузата WHERE в MySQL
0:29 AM
Урок №10 Клаузата WHERE в MySQL

Вече разгледахме SQL командата SELECT за извличане на данни от MySQL

таблици. Можем да използваме и една клауза наречена WHERE за да

филтрираме резултатите. Като използваме клаузата WHERE, можем да

зададем критерии по който да изберем нужните записи от таблицата.

Синтаксис:

Това е генералния SQL синтаксис на SELECT командата комбинирана с

клаузата WHERE за извличане на данни от MySQL таблица:

SELECT поле1, поле2,...полеN таблица1, таблица2...
[WHERE условие1 [AND [OR]] условие2.....

 

  • Можете да използвате една или повете таблици разделени със запетая (,) за да включите няколко условия като използвате клаузата WHERE, но клаузата WHERE е незадължителна част от командата SELECT

  • Можете да зададете каквото и да е условие използвайки клаузата WHERE

  • Можете да зададете повече от едно условие използвайки операторите : AND и ОR

  • Клаузата WHERE може да бъде използвана с SQL командите DELETE или UPDATE SQL като също така можем да зададем условие.

Клаузата WHERE работи като условие във всички езици за програмиране. Тази

клауза се използва за да сравни дадена стойност с полето със стойности в

MySQL таблица. Ако дадената стойност "отвън" съвпада със стойността в

MySQL таблицата, тя връща този ред.

Ето списък с операторите които можем да използваме с клаузата WHERE.

Като заключим, че поле А съдържа 10 и поле B съдържа 20

Оператор Описание Пример
=

Проверява дали стойностите на

две операнди съвпадат, и ако е

така условието връща TRUE
 

(A = B) is not true.
!=

Проверява дали стойностите на

две операнди съвпадат, ако те не

съвпадат условието връща TRUE
 

(A != B) is true.
>

Проверява дали стойността на

лявата операнда е по-голяма от

тази на дясната  и ако е така

условието връща TRUE
 

(A > B) is not true.
<

Проверява дали стойността на

дясната операнда е по-голяма от

тази на лявата и ако е така

условието връща TRUE
 

(A < B) is true.
>=

Проверява дали стойността на

лявата операнда е по-голяма или

равна на тази на дясната и ако

това е така условието връща

TRUE
 

(A >= B) is not true.
<=

Проверява дали стойността на 

лявата операнда е по-малка или

равна на тази на дясната и ако

това е така условието връща

TRUE
 

(A <= B) is true.

Клаузата WHERE е много полезна когато искате да извлечете селекция от

редове от таблица, особено когато ползвате MySQL Join. Но за това ще

говорим в друга глава от поредицата.

Практичен начин за търсене е като използвате Primary Key (Първичен ключ)

за да направите търсенето по-бързо.

Ако даденото условие не съвпада с нито един ред от таблицата, командата

няма да върне нито един ред.

Извличане на данни от Command Prompt:

В този пример ще използваме SQL командата SELECT комбинирана с клаузата WHERE за да

извлечем селекция от данни от MySQL таблицата tutorials_tbl.

Пример:

В този пример ще извлечем всички записи от таблицата tutorials_tbl името на автора на тази

таблица е knif3r:

 

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE 
tutorial_author='knif3r';
+-------------+----------------+-----------------+
-----------------+
| tutorial_id | tutorial_title | tutorial_author 
| submission_date |
+-------------+----------------+-----------------+
-----------------+
| 3 | JAVA Tutorial | knif3r 
| 2007-05-21 |
+-------------+----------------+-----------------+
-----------------+
1 rows in set (0.01 sec)

mysql>

Освен ако не извършвате LIKE сравнение на низ, сравненията не са

чувствителни. За да направите търсенето чувствително използвайте BINARY

ключовите думи които следват:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
 WHERE BINARY tutorial_author='knif3r';
Empty set (0.02 sec)

mysql>

Извличане на данни използвайки PHP Скрипт:

Можете да използвате същата SQL команда SELECT в комбинация с клаузата

WHERE в PHP функцията mysql_query(). Тази функция се използва за

изпълнение на SQL команди. След това можем да използваме PHP функцията

mysql_fetch_array() за да извлечем всички зададени данни. Тази функция

връща ред под формата на асоциативен масив, числов масив или и двете.

Тази функция връща FALSE ако няма повече редове.

Пример:

В този пример ще извлечем всички записи от таблицата tutorials_tbl чиито

автор е knif3r:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, 
 tutorial_author, submission_date
 FROM tutorials_tbl
 WHERE tutorial_author="knif3r"';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
 die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
 echo "Tutorial ID :{$row['tutorial_id']} 
<br> ".
 "Title: {$row['tutorial_title']} <br> ".
 "Author: {$row['tutorial_author']} <br> 
".
 "Submission Date : 
{$row['submission_date']} <br> ".
 "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

Ако имате въпроси или искате да допълните нещо моля направете го в

коментарите след урока..

Категория: MySQL | Преглеждания: 796 | Довавено от: knif3r | Оценка: 5.0 | Гласували :1 | Tags: урок, the clause, Начинаещ, Where, mysql, Клаузата, Clause, клауза, Select

Ако урокът ви е харесал можете да го споделите с вашите приятели във фейсбук :
Всички коментари: 0
avatar
Социални Мрежи

PC-Tools.inc | Copyright © 2014-2015
DMCA.com Protection Status Mozilla Firefox+4.0 Chrome+13.2 Opera+5.6 IE+7.9 Safari+2.0