Skip to content

Instantly share code, notes, and snippets.

@axjack
Created July 16, 2018 12:53
Show Gist options
  • Save axjack/5ec93bbfb014adcea457221d5bcb6da7 to your computer and use it in GitHub Desktop.
Save axjack/5ec93bbfb014adcea457221d5bcb6da7 to your computer and use it in GitHub Desktop.
lecture of sql(WIP)
presentation
width height theme slideNumber
100%
100%
white.css
true

SQL:基本4ステートメント

動詞 意味
SELECT 検索
UPDATE 更新
DELETE 削除
INSERT 追加

�SQLファーストステップ

架空のイベント満足度調査データを使って
SQLの基礎を学びます

�イベント満足度調査(ES1)

- 会員番号
- 名前
- 年齢
- 住所
- Q1: �このイベントに参加するのは初めてですか?
  - (y/n)
- Q2: 次回もこのイベントに参加したいですか?
  - (y/n)
- Q3: このイベントの満足度を教えてください。
  - 1:大変満足 2:満足 3:普通 4:微妙 5:不満足 

�イベント満足度調査�テーブル

テーブルの項目と内容

テーブル名:ES1

項目名 内容
会員番号 文字:4桁
名前 文字:最大25文字
年齢 数字:任意
住所 文字:最大25文字
Q1 文字�:yかnの1桁
Q2 文字�:yかnの1桁
Q3 数字:1から5

ES1に格納したデータ

会員番号 名前 年齢 住所 Q1 Q2 Q3
1001 藤谷 30 埼玉県 y n 4
2095 中居 22 東京 n n 1
1108 竹内 29 神奈川 n y 3
1302 高沢 千葉 y y 1
1106 若林 群馬 y n 2
1033 園田 17 群馬県 n n 5
1437 三沢 25 埼玉 n y 5

SELECT文

SELECT文

テーブルからレコードを検索する

SELECT文

基本構文

SELECT 列名[,列名]...[,列名]
FROM [DB名.]テーブル名
WHERE 抽出条件
;

例:1-1

ES1テーブルから名前と年齢の列を 抽出する

SQL文:1-1

SELECT 名前, 年齢
FROM ES1
;

実行結果:1-1

例:1-2

ES1テーブルから名前と年齢と会員番号の列を 抽出する

SQL文:1-2

SELECT 名前, 年齢, 会員番号
FROM ES1
;

実行結果:1-2

例:1-3

ES1テーブルからQ1とQ2とQ3の列を 抽出する

SQL文:1-3

SELECT Q1,Q2,Q3
FROM ES1
;

実行結果:1-3

例:1-4

ES1テーブルから全ての列を 抽出する

SQL文:1-4

SELECT 会員番号,名前, 年齢, 住所, Q1, Q2, Q3
FROM ES1
;

SQL文:1-4(別解)

SELECT *
FROM ES1
;

実行結果:1-4

比較演算子

記号 読み方 英語
= 等しい equals�
<> 等しくない not equals
> より大きい greater than
>= 以上 greater equals
< より小さい less than
<= 以下 less equals

比較演算子(具体例)

意味
A = 3 Aは3に等しい
B <> '東京都' Bは'東京都'ではない
年齢 > 30 年齢が30より大きい
個数 >= 10 10以上の個数
長さ < 3 長さは3より小さい
得点 <= 60 得点が60以下

論理演算子

記号 読み方
AND かつ
OR または
NOT でない

述語

記号 読み方
IN いずれか1つに一致する
LIKE パターンに一致する
BETWEEN x AND y xからyの範囲内にある
IS NULL NULLである
IS NOT NULL NULLでない

Q1が3�より大きくて、かつ年齢が20才以下

SELECT ...
FROM ...
WHERE ( Q1 > 3 ) AND (年齢 <= 20)

住所が'埼玉県'または'東京都'

SELECT ...
FROM ...
WHERE (住所 = '埼玉県') OR (住所 = '東京都')

住所が'埼玉県'または'東京都'

SELECT ...
FROM ...
WHERE 住所 in ('埼玉県','東京都')

群馬県在住の年齢が20才以上でQ3が3以下

SELECT ...
FROM ...
WHERE (住所 = '群馬県') AND (�年齢 <= 20) AND (Q3 <= 3)

年齢が未記入(年齢がNULL)、ではない

SELECT ...
FROM ...
WHERE 年齢 IS NOT NULL

CREATE TABLE文

CREATE TABLE ES1(
  会員番号 char(4) not null unique
  ,名前 varchar(50) not null
  ,年齢 int null
  ,住所 varchar(50) not null
  ,Q1 char(1) null
  ,Q2 char(1) null
  ,Q3 int null
)

INSERT文

INSERT INTO ES1 VALUES ('1001','藤谷',30,'埼玉県','y','n',4);
INSERT INTO ES1 VALUES ('2095','中居',22,'東京','n','n',1);
INSERT INTO ES1 VALUES ('1108','竹内',29,'神奈川','n','y',3);
INSERT INTO ES1 VALUES ('1302','高沢',null,'千葉','y','y',1);
INSERT INTO ES1 VALUES ('1106','若林',null,'群馬','y','n',2);
INSERT INTO ES1 VALUES ('1033','園田',17,'群馬県','n','n',5);
INSERT INTO ES1 VALUES ('1437','三沢',25,'埼玉','n','y',5);

links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment