こんぶにのブログ

エンジニアという職業を通して学んだことを発信するブログです。

【応用情報】午後試験対策・データベースメモ

令和4年秋期問6(データベース)

CREATE文

CREATE TABLE名 (

PRIMARY KEY key名

GRANT

GRANT 操作 ON TABLE TO USER

DEFAULT

CHAR(4) DEFAULT '初期値' NOT NULL )

以上

=左に記号

COUNT

COUNT(列名)とすればその列の数を返す
つまり、指定する意味は特にない。
かと思いきや、実はある。
NULLのときでも関係ねえ!すべてだ!っていうのが*
指定された列の値がNULLの時はカウントしないよ・・・と控えめなのがCOUNT(列名)

BETWEEN

WHERE 今日 BETWEEN 在社開始日 AND 在社終了日
てことは今日の時点で在社期間になっているかを問うている。

ALTER TABLE

成約を付ける時。
ALTER TABLE テーブル名 CONSTRAINT

WITH

サブクエリに名前を付ける. with 別名 as (select 文)   とすることで、そのテーブル名が変数に保存される。

UPDATE

UPDATE テーブル SET カラム = SETする値 = where 条件
whereで条件をくっつけるんだったら、updateするテーブル側を条件に絶対含めなきゃダメ

where

where カラム in

EXIST

条件にfrom table1 where EXISTS サブクエリってやると思うが、このサブクエリの中でwhere table1.カラムってやらないと意味ない。
このレコードに紐づいてきたテーブルがあるかないか、っていうのを判断したい。だから、元となるテーブルと紐づく情報が絶対に必要。

複合キー

主キーが日付だと、同じ日付があり得て、主キー制約エラーになる。
ただ単に、他に日時のカラム持ってるなら、そっちを複合キーにしちゃえばいいって話。

using

inner join したあと、where で同じカラム名指定するのめんどくさい。ときにusing (共通のカラム名)で一発結合。ただしカラム名が同じじゃないとダメ。