令和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 (共通のカラム名)で一発結合。ただしカラム名が同じじゃないとダメ。