【SQL Server】SELECT 句 と FROM 句 を用いた検索
SELECT 句 と FROM 句 を用いた検索の説明です。
基本構文
SELECT 取得対象 FROM テーブル名
事前準備
事前準備でテーブルを用意します。
--テーブル作成
CREATE TABLE [dbo].[T_SEITO](
[ID] INT,
[NAME] NVARCHAR(20) ,
[AGE] TINYINT ,
[SEIBETSU_KBN] char(1) NULL ,
[DEL_FLG] [bit] NOT NULL DEFAULT (0)
)
-- 初期データ登録
insert into T_SEITO select 1,N'犬塚太郎',20,'M','FALSE';
insert into T_SEITO select 1,N'犬塚太郎',20,'M','FALSE';
insert into T_SEITO select 2,N'犬塚次郎',18,'M','FALSE';
insert into T_SEITO select 3,N'猫塚花子',20,'F','FALSE';
insert into T_SEITO select 4,N'猫塚桃子',19,'F','TRUE';
insert into T_SEITO select 5,N'熊塚たけし',38,'M','FALSE';
insert into T_SEITO select 6,N'猿塚かおる',36,null,'FALSE';
全カラム・全レコード取得
全カラムを取得する場合「*」が使えます。「*」は「アスタリスク」と読みます。または少数派ですが、「ワイルドカード」という人も居ます。意味は、「なんにでも使えます」的な意味で、トランプでいうとジョーカーみたいな役割です。
クエリ
--全カラム・全レコード取得 SELECT * FROM T_SEITO
アスタリスクを使わない場合、全てのカラム名を書く必要があります。
クエリ
--全カラム・全レコード取得 SELECT ID, NAME, AGE, SEIBETSU_KBN, DEL_FLG, SYS_ETY_DATE, SYS_UPD_DATE FROM T_SEITO
ID | NAME | AGE | SEIBETSU_KBN | DEL_FLG |
1 | 犬塚太郎 | 20 | M | 0 |
1 | 犬塚太郎 | 20 | M | 0 |
2 | 犬塚次郎 | 18 | M | 0 |
3 | 猫塚花子 | 20 | F | 0 |
4 | 猫塚桃子 | 19 | F | 0 |
5 | 熊塚たけし | 38 | M | 0 |
6 | 猿塚かおる | 36 | NULL | 0 |
指定のカラム・全レコード取得
取得したいカラムだけ、記載します。
クエリ
--指定カラム・全レコード取得 SELECT ID, NAME, AGE FROM T_SEITO
ID | NAME | AGE |
1 | 犬塚太郎 | 20 |
1 | 犬塚太郎 | 20 |
2 | 犬塚次郎 | 18 |
3 | 猫塚花子 | 20 |
4 | 猫塚桃子 | 19 |
5 | 熊塚たけし | 38 |
6 | 猿塚かおる | 36 |
DISTINCT で 重複していない 結果を取得する
DISTINCT は、英語で、意味は「他とまったく別な」とかいう意味で、DISTINCT キーワードを指定すると、全てのカラムが異なるレコードが取得出来ます。
クエリ
--全カラム・全レコード(重複は1件にして)取得 SELECT DISTINCT * FROM T_SEITO
ID | NAME | AGE | SEIBETSU_KBN | DEL_FLG |
1 | 犬塚太郎 | 20 | M | 0 |
2 | 犬塚次郎 | 18 | M | 0 |
3 | 猫塚花子 | 20 | F | 0 |
4 | 猫塚桃子 | 19 | F | 0 |
5 | 熊塚たけし | 38 | M | 0 |
6 | 猿塚かおる | 36 | NULL | 0 |
犬塚太郎のレコードが2件あるのですが、1件分しか取得されなくなりました。
コメント