SQLチュートリアル

SQL HOME SQLイントロ SQL構文 SQL Select SQL Select Distinct SQL Where SQL And、Or、Not SQLの順序 SQL Insert Into SQLNull値 SQLアップデート SQL削除 SQL Select Top SQLの最小値と最大値 SQLカウント、平均、合計 SQL Like SQLワイルドカード SQL入力 SQLの間 SQLエイリアス SQL結合 SQL内部結合 SQL左結合 SQL右結合 SQL完全結合 SQL自己結合 SQLユニオン SQL Group By SQLを持っている SQLが存在する SQL Any、All SQL Select Into SQL Insert Into Select SQLケース SQLNull関数 SQLストアドプロシージャ SQLコメント SQL演算子

SQLデータベース

SQL Create DB SQLドロップDB SQLバックアップDB SQLテーブルの作成 SQLドロップテーブル SQL ALTER TABLE SQLの制約 SQLはNullではありません SQL独自 SQL主キー SQL外部キー SQLチェック SQLのデフォルト SQLインデックス SQL自動インクリメント SQLの日付 SQLビュー SQLインジェクション SQLホスティング SQLデータ型

SQLリファレンス

SQLキーワード MySQL関数 SQLServerの機能 MSAccess関数 SQLクイック参照

SQLの

SQLの例 SQLクイズ SQL演習 SQL証明書

SQL TOP、LIMIT、FETCHFIRSTまたはROWNUM


SQL SELECTTOP句

このSELECT TOP句は、返すレコードの数を指定するために使用されます。

このSELECT TOP句は、数千のレコードがある大きなテーブルで役立ちます。多数のレコードを返すと、パフォーマンスに影響を与える可能性があります。

注:すべてのデータベースシステムがこの SELECT TOP句をサポートしているわけではありません。MySQLはLIMIT、限られた数のレコードを選択する句をサポートしていますが、Oracleはとを使用しています。 FETCH FIRST n ROWS ONLYROWNUM

SQL Server / MS Accessの構文:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL構文:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12の構文:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

古いOracle構文:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

古いOracle構文(ORDER BYを使用):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;

デモデータベース

以下は、Northwindサンプルデータベースの「Customers」テーブルからの抜粋です。

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


SQL TOP、LIMIT、およびFETCHFIRSTの例

次のSQLステートメントは、「Customers」テーブルから最初の3つのレコードを選択します(SQL Server / MS Accessの場合)。

SELECT TOP 3 * FROM Customers;

次のSQLステートメントは、MySQLの同等の例を示しています。

SELECT * FROM Customers
LIMIT 3;

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

SQL TOPPERCENTの例

次のSQLステートメントは、「Customers」テーブル(SQL Server / MS Accessの場合)からレコードの最初の50%を選択します。

SELECT TOP 50 PERCENT * FROM Customers;

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

WHERE句を追加する

次のSQLステートメントは、「Customers」テーブルから最初の3つのレコードを選択します。ここで、国は「Germany」(SQL Server / MS Accessの場合)です。

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

次のSQLステートメントは、MySQLの同等の例を示しています。

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;