sql >> Databáze >  >> RDS >> Mysql

Ustanovení kde filtrovat řádky v MySQL

Tento tutoriál je součástí série Naučte se základní SQL dotazy pomocí MySQL. V předchozím tutoriálu jsme diskutovali o SQL dotazech pro načítání řádků nebo čtení dat z tabulky v MySQL. Příkaz SELECT vrátí všechny řádky v tabulce, pokud neurčíme limit, jak je ukázáno v předchozích příkladech výukového programu. V několika situacích musíme výsledné řádky filtrovat, abychom získali omezené řádky splňující určité podmínky. Řádky můžeme filtrovat pomocí klauzule WHERE zadáním podmínky filtru. Můžeme také zadat více podmínek pomocí klíčových slov AND, OR.

Klauzule kde

KDE klauzuli lze použít ke čtení filtrovaných řádků z tabulky na základě daných podmínek. V případě, že jste vzdáleně přihlášeni do databáze, budete také potřebovat oprávnění SELECT pro tabulku, abyste mohli číst řádky z tabulky.

# SELECT - Syntax - WHERE
SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

Vysvětlení dotazu

Příkaz MySQL SELECT lze použít ke čtení řádků nebo dat z daného názvu tabulky, kde je povinný výraz select a název tabulky.

Výslednou sadu dotazů vrácenou výběrovým dotazem můžeme filtrovat pomocí klauzule WHERE. Pro filtrování výsledků můžeme zadat jednu nebo více podmínek. Klíčová slova A a NEBO lze použít k aplikaci více podmínek. Můžeme použít i klíčová slova IN a NENÍ V pro omezení hodnot sloupců na sadu hodnot.

Operátoři

Můžeme použít níže uvedené operátory k provádění srovnání při aplikaci podmínek filtru. Porovnání bude provedeno pomocí dané hodnoty a hodnot uložených ve sloupci tabulky.

= Lze jej použít ke kontrole, zda jsou hodnoty dvou operandů stejné nebo ne.


!= Kontroluje, zda se hodnoty dvou operandů nerovnají.


> Kontroluje, zda je hodnota levého operandu větší než hodnota pravého operandu.


< Kontroluje, zda je hodnota levého operandu menší než hodnota pravého operandu.


>= Kontroluje, zda je hodnota levého operandu větší nebo rovna hodnotě pravého operandu.


<= Kontroluje, zda je hodnota levého operandu menší nebo rovna hodnotě pravého operandu.

Příklady

Tato část obsahuje příklady čtení filtrovaných dat z tabulky pomocí SELECT pomocí příkazu WHERE doložka. Pomocí níže uvedeného dotazu vytvořte uživatelskou tabulku se sloupci id, jméno a příjmení pro uložení uživatelských dat.

# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);

K vložení dat do uživatelské tabulky lze použít níže uvedený dotaz.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' ),
( 6, 'Leo', NULL ),
( 7, 'Leo', 'Murphy' ),
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL ),
( 10, 'Ram', 'Choudhary' );

Výše zmíněný dotaz vloží do tabulky 10 řádků s id, křestním jménem a příjmením, které představují 10 různých uživatelů.

Nyní si přečteme námi vložená filtrovaná data v uživatelské tabulce. To lze provést pomocí příkazu SELECT, jak je ukázáno níže.

# Filter - WHERE - Read all rows having first name set to Leo
SELECT * FROM `user` WHERE `first_name` = 'Leo';

# Result
6 Leo
7 Leo Murphy


# Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

# Result
7 Leo Murphy


# Filter - WHERE - IS NOT - Read all rows having last name without NULL values
SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
7 Leo Murphy
8 Ram Choudhary
10 Ram Choudhary


# Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

# Result
1 John Smith
4 Harsh Upadhyay

Výše uvedené dotazy provádějí různé operace filtrování na string hodnoty pomocí jedné nebo více podmínek. Ujistěte se, že používáte jednoduché uvozovky při použití filtrů pro sloupce s datovým typem řetězec.

# Filter - WHERE - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay


# Filter - WHERE - LIMIT - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

# Result
1 John Smith
2 Rick Jones


# Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay
5 Tajwinder Singh

Výše uvedené dotazy aplikují podmínky pro číselné datové typy. Můžeme také kombinovat různé typy hodnot, jak je uvedeno níže.

# Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay

Takto můžeme číst filtrovaná data uložená v tabulkách MySQL pomocí klauzule WHERE.


  1. Jak získat přístup k databázi Oracle přes síť?

  2. T-SQL úterý #106:MÍSTO spouštěčů

  3. Automatizované testování procesu upgradu pro PostgreSQL

  4. PLS-00103:Setkal se se symbolem CREATE