sql >> データベース >  >> RDS >> SQLite

SQLite-データの選択

    SQLiteデータベースからデータを選択するには、SELECTを使用します ステートメント。

    このステートメントを使用するときは、データを選択するテーブルと、クエリから返す列を指定します。

    返されるデータをさらに絞り込むための追加の基準を提供することもできます。

    シンプルなSELECT ステートメント

    すでにSELECTを使用しています 以前、データを挿入したときのステートメント。

    私たちが使用したステートメントは次のとおりです。

    SELECT * FROM Artists;

    これは非常に自明です— Artists からすべての列を選択するようにSQLiteに指示しています テーブル。アスタリスク(* )は「すべての列」の省略形です。すべての列の名前を書き出す手間が省けます。

    したがって、このクエリはすべてのレコードとすべての列を返します。このように:

    1|Joe Satriani
    2|Steve Vai
    3|The Tea Party
    4|Noiseworks
    5|Wayne Jury
    6|Mr Percival
    7|Iron Maiden
    8|Atmasphere
    9|Ian Moss
    10|Magnum
    11|Strapping Young Lad
    12|Slayer
    13|Primus
    14|Pat Metheny
    15|Frank Gambale
    16|Frank Zappa
    17|The Wiggles
    

    フォーマット

    結果が少し読みやすくなるように、出力をフォーマットしてみましょう。

    列を使用する

    .modeを使用できます 出力モードを変更します。上記の例では、.mode listを使用しています 、結果をリストとして表示します。

    列を使用するようにモードを変更しましょう。

    .mode column

    これを行うときは、列の幅を調整する必要がある場合があります(列に対して幅が広すぎるデータは切り捨てられます)。

    列幅の調整

    列幅を調整するには、.widthを使用します コマンドの後に、各列の幅が続きます。

    次の例では、最初の列を12に設定します 2番目の列は20

    .width 12 20

    ヘッダーの追加

    .headersを使用することもできます 列ヘッダーを表示するかどうかを指定します。

    ヘッダーを表示するには、次を使用します:

    .headers on

    .headers offで削除できます 。

    設定を表示

    .showと入力すると、これらの設定やその他の設定をいつでも確認できます。

    sqlite> .show
         echo: off
          eqp: off
      explain: off
      headers: on
         mode: column
    nullvalue: ""
       output: stdout
    separator: "|"
        stats: off
        width: 12 20 
    

    新しいフォーマット

    列とヘッダーモードを使用した前の例は次のようになります。

    ArtistId    ArtistName  
    ----------  ------------
    1           Joe Satriani
    2           Steve Vai   
    3           The Tea Part
    4           Noiseworks  
    5           Wayne Jury  
    6           Mr Percival 
    7           Iron Maiden 
    8           Atmasphere  
    9           Ian Moss    
    10          Magnum      
    11          Strapping Yo
    12          Slayer      
    13          Primus      
    14          Pat Metheny 
    15          Frank Gambal
    16          Frank Zappa 
    17          The Wiggles 
    

    WHERE 条項

    WHEREを使用できます 結果を絞り込むための句。この句を使用すると、クエリに適用する特定の基準を指定できます。

    たとえば、特定のフィールドに特定の値が含まれているレコードのみを返すように指定できます。

    これは非常に具体的な例です。 ArtistId を持つレコードのみを指定します 6 に等しい 返送する必要があります:

    SELECT * FROM Artists
    WHERE ArtistId = 6;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    6             Mr Percival   
    

    名前が「S」で始まるすべてのアーティストを検索するには、次のようにします。

    SELECT * FROM Artists
    WHERE ArtistName LIKE 'S%';

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    2             Steve Vai           
    11            Strapping Young Lad 
    12            Slayer     
    

    パーセント記号(% )は、任意の文字を指定するために使用できるワイルドカード文字です。したがって、この例では、アーティストの名前がこのパターン(つまり、文字 S で始まるパターン)のようでなければならないことを指定しています。 そして他のキャラクターをフォローします)。

    WHEREを使用する別の例 句は、値の範囲を取得することです。たとえば、値が数値よりも小さい、数値よりも大きい、または特定の範囲内にあるレコードを探すことができます。

    ArtistId を持つレコードのみを選択する例を次に示します。 数未満:

    SELECT * FROM Artists
    WHERE ArtistId < 6;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    1             Joe Satriani        
    2             Steve Vai           
    3             The Tea Party       
    4             Noiseworks          
    5             Wayne Jury 
    

    ArtistId を持つレコードのみを選択する例を次に示します。 特定の範囲内:

    SELECT * FROM Artists
    WHERE ArtistId BETWEEN 5 AND 10;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    5             Wayne Jury          
    6             Mr Percival         
    7             Iron Maiden         
    8             Atmasphere          
    9             Ian Moss            
    10            Magnum   
    

    列の選択

    結果セットで特定の列のみが返されるように指定できます。クエリに列名を入力するだけです。複数の列名はコンマで区切る必要があります。

    必要な列を選択することをお勧めします。 *を使用する 、便利ですが、必要以上の列を返す場合、余分なオーバーヘッドが発生する可能性があります。

    それでは、同じクエリをもう一度実行してみましょう。ただし、今回は ArtistName のみを選択します。 列:

    SELECT ArtistName FROM Artists
    WHERE ArtistId BETWEEN 5 AND 10;

    結果:

    ArtistName  
    ------------
    Wayne Jury  
    Mr Percival 
    Iron Maiden 
    Atmasphere  
    Ian Moss    
    Magnum 
    

    ORDER BY 条項

    ORDER BYを使用できます 返されるレコードの数を制限する句。

    ASCを追加できます 昇順、またはDESC 降順。何も追加しない場合は、昇順で使用されます。

    ここでは、 ArtistName で注文します 昇順のフィールド:

    SELECT * FROM Artists
    ORDER BY ArtistName;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    8             Atmasphere          
    15            Frank Gambale       
    16            Frank Zappa         
    9             Ian Moss            
    7             Iron Maiden         
    1             Joe Satriani        
    10            Magnum              
    6             Mr Percival         
    4             Noiseworks          
    14            Pat Metheny         
    13            Primus              
    12            Slayer              
    2             Steve Vai           
    11            Strapping Young Lad 
    3             The Tea Party       
    17            The Wiggles         
    5             Wayne Jury  
    

    そして、降順に切り替えると:

    SELECT * FROM Artists
    ORDER BY ArtistName DESC;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    5             Wayne Jury          
    17            The Wiggles         
    3             The Tea Party       
    11            Strapping Young Lad 
    2             Steve Vai           
    12            Slayer              
    13            Primus              
    14            Pat Metheny         
    4             Noiseworks          
    6             Mr Percival         
    10            Magnum              
    1             Joe Satriani        
    7             Iron Maiden         
    9             Ian Moss            
    16            Frank Zappa         
    15            Frank Gambale       
    8             Atmasphere  
    

    LIMIT 条項

    LIMITを使用できます 返されるレコードの数を制限する句。これは、テーブルに多数のレコードが含まれているが、ほんの一握りしか表示したくない場合に便利です。

    ここでは、レコードセットを5つのレコードのみに制限します。

    SELECT * FROM Artists LIMIT 5;

    結果:

    ArtistId      ArtistName          
    ------------  --------------------
    1             Joe Satriani        
    2             Steve Vai           
    3             The Tea Party       
    4             Noiseworks          
    5             Wayne Jury 
    

    1. SQL Server 2005で列としてランダムな数値を返すにはどうすればよいですか?

    2. SQLServerのデータベースチェックポイント

    3. PDOにLIKEクエリを実装する

    4. MariaDBサーバー10.0.33が利用可能になりました